From 10fb89ad72418efab8eaee4e3bacf7d57d67ad20 Mon Sep 17 00:00:00 2001 From: Tim Eertmoed Date: Thu, 12 Dec 2024 20:24:52 +0100 Subject: [PATCH] sbin/overlayRoot.sh aktualisiert --- sbin/overlayRoot.sh | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/sbin/overlayRoot.sh b/sbin/overlayRoot.sh index 1fd261e..089e6a7 100644 --- a/sbin/overlayRoot.sh +++ b/sbin/overlayRoot.sh @@ -25,43 +25,43 @@ modprobe overlay || fail "ERROR: OverlayFS-Modul nicht geladen." mountpoint -q /proc || mount -t proc proc /proc # Temporäres Dateisystem für Overlay erstellen -mount -t tmpfs tmpfs /mnt || fail "ERROR: tmpfs konnte nicht gemountet werden." -mkdir -p /mnt/lower /mnt/rw/upper /mnt/rw/work /mnt/newroot +mount -t tmpfs tmpfs /overlay || fail "ERROR: tmpfs konnte nicht gemountet werden." +mkdir -p /overlay/lower /overlay/rw/upper /overlay/rw/work /overlay/newroot # Root-Dateisystem schreibgeschützt einbinden rootDev=$(awk '$2 == "/" {print $1}' /proc/mounts) rootMountOpt=$(awk '$2 == "/" {print $4}' /proc/mounts) rootFsType=$(awk '$2 == "/" {print $3}' /proc/mounts) -mount -t "${rootFsType}" -o "${rootMountOpt},ro" "${rootDev}" /mnt/lower || \ +mount -t "${rootFsType}" -o "${rootMountOpt},ro" "${rootDev}" /overlay/lower || \ fail "ERROR: Ursprüngliches Root-Dateisystem konnte nicht schreibgeschützt eingebunden werden." # OverlayFS einbinden mount -t overlay \ - -o lowerdir=/mnt/lower,upperdir=/mnt/rw/upper,workdir=/mnt/rw/work \ - overlay /mnt/newroot || fail "ERROR: OverlayFS konnte nicht gemountet werden." + -o lowerdir=/overlay/lower,upperdir=/overlay/rw/upper,workdir=/overlay/rw/work \ + overlay /overlay/newroot || fail "ERROR: OverlayFS konnte nicht gemountet werden." # Neue Root-Overlay-Verzeichnisse erstellen -mkdir -p /mnt/newroot/ro /mnt/newroot/rw +mkdir -p /overlay/newroot/ro /overlay/newroot/rw # Originale fstab modifizieren -grep -v "$rootDev" /mnt/lower/etc/fstab > /mnt/newroot/etc/fstab -cat <> /mnt/newroot/etc/fstab +grep -v "$rootDev" /overlay/lower/etc/fstab > /overlay/newroot/etc/fstab +cat <> /overlay/newroot/etc/fstab # Das originale Root-Dateisystem wurde durch overlayRoot.sh entfernt. # Diese Änderung ist temporär. Die originale fstab ist in /ro/etc/fstab verfügbar. EOF # Root wechseln und alte Root aufräumen -cd /mnt/newroot -pivot_root . mnt || fail "ERROR: pivot_root fehlgeschlagen." +cd /overlay/newroot +pivot_root . overlay || fail "ERROR: pivot_root fehlgeschlagen." exec chroot . /bin/bash -c " - mount --move /mnt/mnt/lower /ro || fail 'ERROR: /ro konnte nicht verschoben werden.' - mount --move /mnt/mnt/rw /rw || fail 'ERROR: /rw konnte nicht verschoben werden.' - umount /mnt/mnt || true - umount /mnt/proc || true - umount -l -f /mnt/dev || true - umount -l -f /mnt || true + mount --move /overlay/overlay/lower /ro || fail 'ERROR: /ro konnte nicht verschoben werden.' + mount --move /overlay/overlay/rw /rw || fail 'ERROR: /rw konnte nicht verschoben werden.' + umount /overlay/overlay || true + umount /overlay/proc || true + umount -l -f /overlay/dev || true + umount -l -f /overlay || true exec /sbin/init "