On Wed, 2005-02-02 at 12:39, Jared Rhine wrote:
> I don't think so; the bottom of my /linuxrc execs /sbin/init. This
> marks the end of the standard initrd process of doing a pivot-root and
> getting on with life. It doesn't have to be an either/or between
> linuxrc and init.
This is likely to support older kernels as initrd does a pivot for you.
> As mentioned, I can't speak to the innards, but I can offer solid
> proof that I need an init=/linuxrc on my boot line, and that this
> snippet would not be needed if I wasn't using a Xen'ed kernel. On a
> regular kernel, the /linuxrc is found and used automatically in
> preference to /sbin/init, if it is present.
Now here's something for you to do which should be confusing as the
solution. Add a root=/dev/hdc or whatever to your command line and I
bet it will work without the init=/linuxrc.
Apparently what's happening is that at some point during the domain boot
process, Xen decides that the root device is /dev/ram0 if there is no
root= command line on the kernel. In
init/do_mounts_rd.c:rd_load_image() if the ramdisk loads to what it
thinks is the root device, the initrd actions are never taken.
Of course, patching that function to remove that check results in the
same behavior. I've not yet tracked down what's going on but that's the
problem.
I've also included a new patch against a recent xen-unstable. It's
another proof-of-concept one. This time, I can actually start a rescue
CD properly (which means initrd is working with SLES-9). The distro
install doesn't work though. However, another 2.6-based distro might
have more luck.
Regards,
--
Anthony Liguori
Linux Technology Center (LTC) - IBM Austin
E-mail: aliguori@xxxxxxxxxx
Phone: (512) 838-1208
sles-install.diff
Description: Text Data
|