initrd and devfs
I am having problems with the combination of initrd and devfs.
mkinitrd 3.3.9, hacked to build an ia64 initrd on ia32. Kernel 2.4.18-ia64-020410, config extract.
CONFIG_DEVFS_FS=yCONFIG_DEVFS_MOUNT=yCONFIG_BLK_DEV_RAM=yCONFIG_BLK_DEV_RAM_SIZE=8192CONFIG_BLK_DEV_INITRD=y
linuxrc commands:
insmod /lib/qla1280.o
echo Mounting /proc filesystem
mount -t proc /proc /proc
echo Creating root device
mkrootdev /dev/root
fails "mkrootdev: mknod failed: 17". devfs has already created /dev/root as a symlink.
echo 0x0100 > /proc/sys/kernel/real-root-dev
echo Mounting root filesystem
mount --ro -t ext2 /dev/root /sysroot
fails "mount: error 16 mounting ext2" because /dev/root is wrong.pivot_root /sysroot /sysroot/initrd
fails "pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2"
By removing /dev/root immediately before mkrootdev /dev/root I can get past those errors, even pivot_root works. But then it gets nasty :-
INIT: version 2.78 booting
Welcome to Red Hat Linux
Press 'I' to enter interactive startup.
Mounting proc filesystem: [ OK ] Unmounting initrd: umount: /initrd: device is busy
Because of this mount - none /initrd/dev devfs rw 0 0
If I boot with initrd and devfs=nomount it goes through initrd processing and successfully umounts initrd, but then fails "Remounting root filesystem in read-write mode: mount: no such partition found". /proc/mounts contains
/dev/root / ext2 ro 0 0
What is the correct way of using initrd and devfs together?
devfsd.conf is not the answer, initrd does not run the devfsd daemon.
I'm not absolutely sure that this is what you want, but I think I have a similar case.
I boot from a CD a kernel which has cdrom support compiled as modules, and devfs compiled in:
syslinux starts kernel with this:
/boot/bzImage devfs=mount root=/dev/cdroms/cdrom0 initrd=/boot/initrd
Then the initrd loads the needed modules, and _exits_.
The kernel then mounts the given root, and the system boots successfully.
So all I needed to do is give the root partition as a parameter, and no mkrootdev or pivot_root was needed.
Signature · 1 line
Balazs Pozsar
Quoted 47 lines · Keith Owens
I am having problems with the combination of initrd and devfs.
mkinitrd 3.3.9, hacked to build an ia64 initrd on ia32. Kernel 2.4.18-ia64-020410, config extract.
CONFIG_DEVFS_FS=yCONFIG_DEVFS_MOUNT=yCONFIG_BLK_DEV_RAM=yCONFIG_BLK_DEV_RAM_SIZE=8192CONFIG_BLK_DEV_INITRD=ylinuxrc commands:
insmod
/lib/qla1280.o
echo Mounting /proc filesystem
mount -t proc /proc /proc
echo Creating root device
mkrootdev/dev/root
fails "mkrootdev: mknod failed: 17". devfs has already created/dev/rootas a symlink.
echo0x0100>/proc/sys/kernel/real-root-dev
echo Mounting root filesystem
mount --ro -t ext2/dev/root/sysroot
fails "mount: error 16 mounting ext2" because/dev/rootis wrong.pivot_root/sysroot /sysroot/initrd
fails "pivotroot:pivot_root(/sysroot,/sysroot/initrd)failed: 2"By removing
/dev/rootimmediately before mkrootdev/dev/rootI can get past those errors, evenpivot_rootworks. But then it gets nasty :-INIT: version 2.78 booting
Welcome to Red Hat Linux
Press 'I' to enter interactive startup.Mounting proc filesystem: [ OK ] Unmounting initrd: umount: /initrd: device is busyBecause of this mount - none /initrd/dev devfs rw 0 0
If I boot with initrd and devfs=nomount it goes through initrd processing and successfully umounts initrd, but then fails "Remounting root filesystem in read-write mode: mount: no such partition found".
/proc/mountscontains
/dev/root/ ext2 ro 0 0What is the correct way of using initrd and devfs together?
devfsd.conf is not the answer, initrd does not run the devfsd daemon.
Resend, no response from initrd/devfs maintainers the first time.
I am having problems with the combination of initrd and devfs.
mkinitrd 3.3.9, hacked to build an ia64 initrd on ia32. Kernel 2.4.18-ia64-020410, config extract.
CONFIG_DEVFS_FS=yCONFIG_DEVFS_MOUNT=yCONFIG_BLK_DEV_RAM=yCONFIG_BLK_DEV_RAM_SIZE=8192CONFIG_BLK_DEV_INITRD=y
linuxrc commands:
insmod /lib/qla1280.o
echo Mounting /proc filesystem
mount -t proc /proc /proc
echo Creating root device
mkrootdev /dev/root
fails "mkrootdev: mknod failed: 17". devfs has already created /dev/root as a symlink.
echo 0x0100 > /proc/sys/kernel/real-root-dev
echo Mounting root filesystem
mount --ro -t ext2 /dev/root /sysroot
fails "mount: error 16 mounting ext2" because /dev/root is wrong.pivot_root /sysroot /sysroot/initrd
fails "pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2"
By removing /dev/root immediately before mkrootdev /dev/root I can get past those errors, even pivot_root works. But then it gets nasty :-
INIT: version 2.78 booting
Welcome to Red Hat Linux
Press 'I' to enter interactive startup.
Mounting proc filesystem: [ OK ] Unmounting initrd: umount: /initrd: device is busy
Because of this mount - none /initrd/dev devfs rw 0 0
If I boot with initrd and devfs=nomount it goes through initrd processing and successfully umounts initrd, but then fails "Remounting root filesystem in read-write mode: mount: no such partition found". /proc/mounts contains
/dev/root / ext2 ro 0 0
What is the correct way of using initrd and devfs together?
devfsd.conf is not the answer, initrd does not run the devfsd daemon.