summaryrefslogtreecommitdiffstats
path: root/source/installer/sources/initrd
diff options
context:
space:
mode:
Diffstat (limited to 'source/installer/sources/initrd')
-rwxr-xr-xsource/installer/sources/initrd/sbin/mkbindmounts10
-rwxr-xr-xsource/installer/sources/initrd/usr/lib/setup/setup13
2 files changed, 21 insertions, 2 deletions
diff --git a/source/installer/sources/initrd/sbin/mkbindmounts b/source/installer/sources/initrd/sbin/mkbindmounts
new file mode 100755
index 000000000..40a9d7313
--- /dev/null
+++ b/source/installer/sources/initrd/sbin/mkbindmounts
@@ -0,0 +1,10 @@
+#!/bin/bash
+# Create bind mounts from / to /mnt for /dev/, /proc, and /sys.
+# This may be useful for chrooting to a system partition mounted
+# on /mnt (for example to run mkinitrd_command_generator.sh or to
+# reinstall boot loaders).
+
+mkdir -p /mnt/{dev,proc,sys}
+mount -o bind /dev /mnt/dev
+mount -o bind /proc /mnt/proc
+mount -o bind /sys /mnt/sys
diff --git a/source/installer/sources/initrd/usr/lib/setup/setup b/source/installer/sources/initrd/usr/lib/setup/setup
index 7932fecae..543344771 100755
--- a/source/installer/sources/initrd/usr/lib/setup/setup
+++ b/source/installer/sources/initrd/usr/lib/setup/setup
@@ -74,8 +74,13 @@ T_PX="/mnt"
echo "$T_PX" > $TMP/SeTT_PX
ROOT_DEVICE="`mount | grep "on / " | cut -f 1 -d ' '`"
echo "$ROOT_DEVICE" > $TMP/SeTrootdev
-if mount | grep /var/log/mount 1> /dev/null 2> /dev/null ; then # clear source
- umount /var/log/mount # location
+if mount | grep /var/log/mount 1> /dev/null 2> /dev/null ; then # clear source location:
+ # In case of bind mounts, try to unmount them first:
+ umount /var/log/mount/dev 2> /dev/null
+ umount /var/log/mount/proc 2> /dev/null
+ umount /var/log/mount/sys 2> /dev/null
+ # Unmount target partition:
+ umount /var/log/mount
fi
# Anything mounted on /var/log/mount now is a fatal error:
if mount | grep /var/log/mount 1> /dev/null 2> /dev/null ; then
@@ -326,6 +331,10 @@ to choose packages individually." 4 60
fi
if [ "$MAINSELECT" = "CONFIGURE" ]; then
+ # Make bind mounts for /dev, /proc, and /sys:
+ mount -o bind /dev $T_PX/dev 2> /dev/null
+ mount -o bind /proc $T_PX/proc 2> /dev/null
+ mount -o bind /sys $T_PX/sys 2> /dev/null
SeTconfig
REPLACE_FSTAB=Y
if [ -r $TMP/SeTnative ]; then