Use tmpfs if devtmpfs is not available
authorPeter Hjalmarsson <xake@rymdraket.net>
Mon, 7 Feb 2011 15:02:41 +0000 (16:02 +0100)
committerSebastian Pipping <sebastian@pipping.org>
Mon, 7 Feb 2011 18:44:43 +0000 (19:44 +0100)
This makes the ramdisk always mount some kind of /dev,
and then try to move it to the new root.
This unbreaks handling of nodes created pre-udev likefor example lvm does.

defaults/initrd.scripts
defaults/linuxrc

index ee269188b69a00e8707590bfec704d311f5a607a..1fda57d2864ab2552b636266ee2a9499bbaf40ee 100755 (executable)
@@ -308,13 +308,15 @@ run_shell() {
 
 runmdev() {
        # Use devtmpfs if enabled in kernel,
-       # else busybox udev replacement
+       # else tmpfs. Always run mdev just in case
+       devfs=tmpfs
        if grep -qs devtmpfs /proc/filesystems ; then
-               # Options copied from /etc/init.d/udev-mount, should probably be kept in sync
-               mount -t devtmpfs -o "exec,nosuid,mode=0755,size=10M" udev /dev
-       else
-               mdev -s
+               devfs=devtmpfs
        fi
+
+       # Options copied from /etc/init.d/udev-mount, should probably be kept in sync
+       mount -t $devfs -o "exec,nosuid,mode=0755,size=10M" udev /dev
+       mdev -s
 }
 
 test_success() {
index b42070cb05c0c58a6dcd45648256adaeb61a65c4..f1e124b7cc3ba2c26d77d43a4dc0d707c3598feb 100755 (executable)
@@ -727,11 +727,11 @@ echo -ne "${BOLD}.${NORMAL}"
 
 # If devtmpfs is mounted, try move it to the new root
 # If that fails, try to unmount all possible mounts of devtmpfs as stuff breaks otherwise
-if grep -qs devtmpfs /proc/mounts
+if grep -qs "/dev " /proc/mounts
 then
        if ! mount --move /dev "${CHROOT}"/dev
        then
-               umount -t devtmpfs || echo '*: Failed to move and unmount the devtmpfs /dev!'
+               umount /dev || echo '*: Failed to move and unmount the ramdisk /dev!'
        fi
 fi