On Thu, Feb 24, 2005 at 02:37:54PM +0100, Gildas Bayard wrote: > Ok. Now I clearly see the advantages of using cpio instead of an ext2 > filesystem. > > It seems like when initrd is a cpio archive then "init" is executed > instead of "linuxrc". So I converted my FC3 initrd cpio archive into an > ext2 (just to test, I understand I should switch to the cpio way). I > changed "init" into "linuxrc" and though it would do it. > But it did not. > The ext2 (linuxrc) version jumps to the new root fs but init complains > about missing parameter (runlevel) and quits. > Do you know what's happening? Yes. You're exec'ing the new init with pid != 1. In initrds, the linuxrc doesn't run as init. You may have the effect you want booting the kernel with init=/linuxrc root=/dev/ram0 Also, the state of the kernel when running the cpio's init is very different than when running initrd's linuxrc/init. http://www.ubuntulinux.org/wiki/Initramfs and Documentation/early-userspace have more information about initramfs (the new process). > echo 0x0100 > /proc/sys/kernel/real-root-dev > pivot_root /sysroot /sysroot/initrd > It now works fine but I don't really understand why... > I'm booting on usual /dev/hda# so why should I report the kernel that > the real-root-dev is 0x0100 (which corresponds to the first ram disk)? Because you've already mounted the root partition. Why 0x0100 is special, in that the kernel uses the current root partition, I don't know. Regards, Luciano Rocha