[Bootcd-user] DEVFS=yes && mount: mount point /dev is a symbolic link to nowhere

Mark Clarkson markjclarkson@hotmail.com
Sat, 5 Jun 2004 18:45:30 +0100


I was getting the error:
  mount: mount point /dev is a symbolic link to nowhere
This was due to the command order in sbin/init if DEVFS is enabled.

My previous patch hurt bootcd2disk, but this seems to fix the problem, is
much simpler, will work regardless of sbin/init command order, and has
[hopefully] no side effects.

Best Regards
Mark.

Patch against bootcd version 2.41:

<--- SNIP --->
--- bootcdwrite.2.41    2004-06-05 18:43:11.000000000 +0100
+++ bootcdwrite 2004-06-05 18:51:15.000000000 +0100
@@ -474,7 +474,6 @@
   run mv $VAR/input_dir/etc $VAR/input_dir/etc.ro
   run mv $VAR/input_dir/dev $VAR/input_dir/dev.ro
   run "cd $CHANGES; find . | cpio --quiet -pdum $VAR/input_dir/"
-  [ "$DEVFS" = "yes" ] && run rm -r $VAR/input_dir/dev.ro

   echo "--- Compressing input_dir to compressed_dir ---" | tee -a $ERRLOG
   run "rm -rf $VAR/compressed_dir; mkzftree $VAR/input_dir
$VAR/compressed_dir"
@@ -678,11 +677,9 @@
 run mkdir -p $VAR/mnt $CHANGES/proc $CHANGES/ram1 $CHANGES/ram2

 # at Boottime /etc -> /ram1/etc -> /etc.ro
-DEVEX="etc tmp dev home root"
-[ "$DEVFS" = "yes" ] && DEVEX="etc tmp home root"
-for i in $DEVEX; do run ln -sf /$i.ro $CHANGES/ram1/$i; done
+for i in etc tmp dev home root; do run ln -sf ../$i.ro $CHANGES/ram1/$i;
done
 for i in var; do run ln -sf /$i.ro $CHANGES/ram2/$i; done
-for i in $DEVEX; do  run ln -sf /ram1/$i $CHANGES/$i; done
+for i in etc tmp dev home root; do  run ln -sf ram1/$i $CHANGES/$i; done
 for i in var; do  run ln -sf /ram2/$i $CHANGES/$i; done

 if [ "$CLEAN_VAR" = "yes" -a ! "$ONLY_FLOPPY" ]; then
@@ -694,10 +691,8 @@
 run chmod 777 $CHANGES/tmp.ro
 run mkdir $CHANGES/etc.ro
 run chmod 755 $CHANGES/etc.ro
-[ "$DEVFS" = "yes" ] && {
-  run mkdir $CHANGES/dev.ro
-  run chmod 755 $CHANGES/dev.ro
-}
+run mkdir $CHANGES/dev.ro
+run chmod 755 $CHANGES/dev.ro

 run ln -sf /proc/mounts $CHANGES/etc.ro/mtab
 mkdir -p $CHANGES/etc.ro/rcS.d
<--- SNIP --->