#!/bin/bash # Spiegelt /boot des laufenden (eMMC-)Systems auf die SD-Karte. # # Warum: U-Boot liest boot.scr, Kernel und initrd von der SD-Karte, das Root # liegt aber auf der eMMC. Ein Kernel-Update schreibt nur nach /boot der eMMC — # ohne diese Spiegelung wuerde der alte Kernel von der SD mit den neuen Modulen # auf der eMMC starten, und das Ergebnis waere ein halb funktionierendes System. # # Laeuft beim Start UND beim Herunterfahren: nach einem Kernel-Update ist die # SD damit schon vor dem naechsten Start aktuell. set -u SD=/dev/mmcblk1p1 MP=/mnt/sdroot [ -b $SD ] || exit 0 mountpoint -q $MP && umount $MP mkdir -p $MP mount $SD $MP 2>/dev/null || exit 0 rsync -a --delete --exclude='*.bak*' /boot/ $MP/boot/ sync umount $MP logger -t aime-bootsync "/boot auf die SD gespiegelt"