|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] [Fwd: Installing from distribution CDs]
Ian Pratt wrote:
Thanks for looking into this. I wander if it's something to do with the
way xen packages up the module as an initrd for dom0? Maybe there's some
difference between an initrd and a ramdisk?
Didn't have time this afternoon but I was able to look into it more this
evening and I found the culprit. In arch/i386/kernel/setup.c there was
the following line around L1363:
ROOT_DEV = MKDEV(RAMDISK_MAJOR,0);
/*old_decode_dev(ORIG_ROOT_DEV);*/
This defaults the root device to /dev/ram0 instead of trying to get it
from the boot loader. I'm not sure why this there (perhaps a part of
early development?). I've attached a patch that puts back the
old_decode_dev call and the behavior becomes exactly what you'd expect:
if no root= is specified, initrd still works but if /linuxrc exits you
get a VFS error because no root= is specified.
This is what Linux would normally do.
It's very important to note though that applying this patch means that
if people had ramdisk=... lines in their configs and didn't have
root=/dev/ram0, their machines won't boot anymore.
A solution would be to add an initrd option to the configuration file
and have the ramdisk= option default the root device to /dev/ram0.
I've tested this patch on a couple day old copy of xen-unstable. I'm
curious to know what the source of this was though because I don't feel
very comfortable with just restoring something that was obviously taken
out for a reason..
Regards,
Anthony Liguori
Signed-off-by: Anthony Liguori
--- linux-2.6.10-xen-sparse/arch/xen/i386/kernel/setup.c~ 2005-01-25
22:29:18.000000000 -0600
+++ linux-2.6.10-xen-sparse/arch/xen/i386/kernel/setup.c 2005-02-02
18:54:52.722236000 -0600
@@ -1360,7 +1360,7 @@
efi_enabled = 1;
#endif
- ROOT_DEV = MKDEV(RAMDISK_MAJOR,0); /*old_decode_dev(ORIG_ROOT_DEV);*/
+ old_decode_dev(ORIG_ROOT_DEV);
drive_info = DRIVE_INFO;
screen_info = SCREEN_INFO;
edid_info = EDID_INFO;
|
|
|
|
|