summaryrefslogtreecommitdiff
path: root/internet-kiosk-management
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2012-09-03 22:44:46 +0200
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2012-09-03 22:44:46 +0200
commit40cf91104f4e51f3f4c527fc09e9f87b86026224 (patch)
treec951323fa302226b98868319452b73c55fe062f3 /internet-kiosk-management
parentf5107b21ed0ccc58c186bef8039b3c3fdcb7a7f5 (diff)
downloadinternet-kiosk-40cf91104f4e51f3f4c527fc09e9f87b86026224.tar.gz
internet-kiosk-40cf91104f4e51f3f4c527fc09e9f87b86026224.tar.bz2
internet-kiosk-40cf91104f4e51f3f4c527fc09e9f87b86026224.zip
Make mounting and unmounting in chroot more robust.
Diffstat (limited to 'internet-kiosk-management')
-rwxr-xr-xinternet-kiosk-management/sbin/ik_create15
-rwxr-xr-xinternet-kiosk-management/sbin/ik_shell15
-rwxr-xr-xinternet-kiosk-management/sbin/ik_upgrade16
3 files changed, 28 insertions, 18 deletions
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
+