Hi again
Finally I had time to diagnose more of this bug.
I upgraded initrd-tools and initrd-netboot-tools to the latest
versions available on unstable as of today. That'd be 0.1.77
and 0.5.3cvs20040906-11.
What I found again is that up until when 90_mount_nfs_root is
called, everything is ok. If I have at the same time installed
e2fsprogs, ext3-add-journal.sh will umount /mnt and thus the
NFS root.
Removed e2fsprogs, regenerated, tried again. This time I get
until the code where it decides (in init) if it has to call
mount_root and pivot_root
if [ $rootdev != 256]; then
....
fi
Before executing this everthing is mounted, $rootdev is 255,
so it enters and mount_root again umounts /mnt and everything
goes more or less to hell because mount_root tries to mount
different things on top of /mnt what should be *already*
mounted.
Here is a log--I have added some echo's around to guess what
is going on [XXX are my notes to the log]:
*** done executing script /scripts/10_load_modules ***
--- executing script /scripts/70_dhcp ---
/etc/lessdisks/mkinitrd/network_script: eth0: bound to 192.168.1.253
e100: eth0: e100_watchdog: link up, 100Mbps, full-duplex
*** done executing script /scripts/70_dhcp ***
--- executing script /scripts/90_mount_nfs_root ---
attempting to mount NFS filesystem...
server 192.168.1.1
nfsroot /home/nfs-roots/image-1
fs_type nfs
fs_options ro,asynfs warning: mount version older than kernel
nc,nolock
mount -nt nfs -o ro,async,nolock 192.168.1.1:/home/nfs-roots/image-1
/mnt
--- mount done ---
mount: only root can do that
*** done executing script /scripts/90_mount_nfs_root ***
mount: proc already mounted or proc busy
Debug:
rootdev 255
cmdline initrd=boot/initrd.img-2.6.8-2-686 root=/dev/nfs
nfsroot=192.168.
Mount info:
rootfs / rootfs rw 0 0
/dev/root.old / cramfs ro 0 0
proc /proc proc rw,nodiratime 0 0
192.168.1.1:/home/nfs-roots/image-1 /mnt nfs
ro,v3,rsize=32768,wsize=32768,hard,udp,noloc0
unmounting proc
--- calling mount_root
+ major=0
+ minor=255
+ [ 255 -eq 0 ]
+ [ 0 -eq 58 ]
+ [ 0 -eq 254 ]
+ mknod dev2/root2 b 0 255
+ device=/dev2/root2
+ set +x
+ unset flags fstype
+ set -f
+ set +f initrd=boot/initrd.img-2.6.8-2-686 root=/dev/nfs
nfsroot=192.168.1.1:/home/nfs-r0
+ [ -n ]
+ IFS=,
+ set -f
+ set +f -- reiserfs cramfs auto
+ unset IFS
+ mount -nrt reiserfs /dev2/root2 /mnt
+ mount -nrt cramfs /dev2/root2 /mnt
+ mount -nrt auto /dev2/root2 /mnt
XXX This seems to be overwriting the NFS /mnt mount point and
at the end gets /dev/sda2 mounted--I don't know how.
+ set +x
*** done mount_root
--- calling pivot_root
*** done pivot_root
/sbin/init: 457: cannot create /dev/null: Read-only file system
INIT: version 2.86 booting
/etc/rcS.d/S02mountvirtfs: line 40: /dev/null: Read-only file system
mount: only root can do that
/etc/rcS.d/S02mountvirtfs: line 40: /dev/null: Read-only file system
/etc/init.d/rcS: line 11: /dev/null: Read-only file system
/etc/init.d/rcS: line 1: /dev/null: Read-only file system
/etc/init.d/rcS: line 13: /dev/null: Read-only file system
Activating swap.
/etc/init.d/rcS: line 125: /dev/null: Read-only file system
/etc/init.d/rcS: line 17: /dev/null: Read-only file system
The device node /dev/sda2 for the root filesystem is missing,
incorrect, or there is no entry for the root filesystem
listed in /etc/fstab.
The system is also unable to create a temporary node in
/dev/shm to use as a work-around.
This means you have to fix this manually.
CONTROL-D will exit from this shell and REBOOT the system.
Give root password for maintenance
(or type Control-D to continue):
-- Inaky