diff options
| author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2012-09-03 22:44:46 +0200 |
|---|---|---|
| committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2012-09-03 22:44:46 +0200 |
| commit | 40cf91104f4e51f3f4c527fc09e9f87b86026224 (patch) | |
| tree | c951323fa302226b98868319452b73c55fe062f3 | |
| parent | f5107b21ed0ccc58c186bef8039b3c3fdcb7a7f5 (diff) | |
| download | internet-kiosk-40cf91104f4e51f3f4c527fc09e9f87b86026224.tar.gz internet-kiosk-40cf91104f4e51f3f4c527fc09e9f87b86026224.tar.bz2 internet-kiosk-40cf91104f4e51f3f4c527fc09e9f87b86026224.zip | |
Make mounting and unmounting in chroot more robust.
| -rw-r--r-- | debian/changelog | 1 | ||||
| -rwxr-xr-x | internet-kiosk-management/sbin/ik_create | 15 | ||||
| -rwxr-xr-x | internet-kiosk-management/sbin/ik_shell | 15 | ||||
| -rwxr-xr-x | internet-kiosk-management/sbin/ik_upgrade | 16 |
4 files changed, 29 insertions, 18 deletions
diff --git a/debian/changelog b/debian/changelog index f8c6e3f..9fba4f4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -25,6 +25,7 @@ internet-kiosk (0.0.2-0~edu1) UNRELEASED; urgency=low for chroot mounting. - Make sure xrandr is available inside chroot, recommend an SSH server for remote maintenance. + - Make mounting and unmounting in chroot more robust. -- Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Tue, 21 Aug 2012 18:14:02 +0200 diff --git a/internet-kiosk-management/sbin/ik_create b/internet-kiosk-management/sbin/ik_create index 5aca132..6649a1b 100755 --- a/internet-kiosk-management/sbin/ik_create +++ b/internet-kiosk-management/sbin/ik_create @@ -171,15 +171,18 @@ EOF chmod u+x $IK_CHROOT/ik_dte_install.sh -mount --bind /proc $IK_CHROOT/proc -mount --bind /dev $IK_CHROOT/dev -mount --bind /sys $IK_CHROOT/sys +mkdir -p $IK_CHROOT/{proc,dev/pts,sys} +mount -tproc proc $IK_CHROOT/proc || true +mount -tsysfs sys $IK_CHROOT/sys || true +mount -tdevts devts $IK_CHROOT/dev/pts || true chroot $IK_CHROOT /ik_dte_install.sh -umount $IK_CHROOT/proc -umount $IK_CHROOT/dev -umount $IK_CHROOT/sys +for mountpoint in proc dev/pts sys; do + while true; do + cat /proc/mounts | grep $IK_CHROOT/$mountpoint >/dev/null && umount $IK_CHROOT/$mountpoint || break + done +done rm -f $IK_CHROOT/etc/udev/rules.d/*-persistent-*.rules diff --git a/internet-kiosk-management/sbin/ik_shell b/internet-kiosk-management/sbin/ik_shell index c75dcd0..49038ec 100755 --- a/internet-kiosk-management/sbin/ik_shell +++ b/internet-kiosk-management/sbin/ik_shell @@ -81,12 +81,15 @@ echo EOF chmod u+x "$IK_CHROOT/ik_dte_shell.sh" -mount --bind /proc $IK_CHROOT/proc -mount --bind /dev $IK_CHROOT/dev -mount --bind /sys $IK_CHROOT/sys +mkdir -p $IK_CHROOT/{proc,dev/pts,sys} +mount -tproc proc $IK_CHROOT/proc || true +mount -tsysfs sys $IK_CHROOT/sys || true +mount -tdevts devts $IK_CHROOT/dev/pts || true chroot "$IK_CHROOT" /ik_dte_shell.sh -umount $IK_CHROOT/proc -umount $IK_CHROOT/dev -umount $IK_CHROOT/sys +for mountpoint in proc dev/pts sys; do + while true; do + cat /proc/mounts | grep $IK_CHROOT/$mountpoint >/dev/null && umount $IK_CHROOT/$mountpoint || break + done +done
\ No newline at end of file diff --git a/internet-kiosk-management/sbin/ik_upgrade b/internet-kiosk-management/sbin/ik_upgrade index 3f92fd9..afa1d22 100755 --- a/internet-kiosk-management/sbin/ik_upgrade +++ b/internet-kiosk-management/sbin/ik_upgrade @@ -80,12 +80,16 @@ EOF chmod u+x "$IK_CHROOT/ik_dte_upgrade.sh" -mount --bind /proc $IK_CHROOT/proc -mount --bind /dev $IK_CHROOT/dev -mount --bind /sys $IK_CHROOT/sys +mkdir -p $IK_CHROOT/{proc,dev/pts,sys} +mount -tproc proc $IK_CHROOT/proc || true +mount -tsysfs sys $IK_CHROOT/sys || true +mount -tdevts devts $IK_CHROOT/dev/pts || true chroot "$IK_CHROOT" /ik_dte_upgrade.sh -umount $IK_CHROOT/proc -umount $IK_CHROOT/dev -umount $IK_CHROOT/sys +for mountpoint in proc dev/pts sys; do + while true; do + cat /proc/mounts | grep $IK_CHROOT/$mountpoint >/dev/null && umount $IK_CHROOT/$mountpoint || break + done +done + |
