From 40cf91104f4e51f3f4c527fc09e9f87b86026224 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Mon, 3 Sep 2012 22:44:46 +0200 Subject: Make mounting and unmounting in chroot more robust. --- internet-kiosk-management/sbin/ik_create | 15 +++++++++------ internet-kiosk-management/sbin/ik_shell | 15 +++++++++------ internet-kiosk-management/sbin/ik_upgrade | 16 ++++++++++------ 3 files changed, 28 insertions(+), 18 deletions(-) (limited to 'internet-kiosk-management/sbin') 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 + -- cgit v1.2.3