From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: [Fwd: Installing from distribution CDs] Date: Wed, 02 Feb 2005 20:16:36 -0600 Message-ID: <42018984.8020309@codemonkey.ws> References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------040103030705020107030306" In-Reply-To: Sender: xen-devel-admin@lists.sourceforge.net Errors-To: xen-devel-admin@lists.sourceforge.net List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , List-Archive: To: Ian Pratt Cc: Anthony Liguori , Jared Rhine , xen-devel@lists.sourceforge.net List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------040103030705020107030306 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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 --------------040103030705020107030306 Content-Type: text/x-patch; name="initrd.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="initrd.diff" --- 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; --------------040103030705020107030306-- ------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl