On Sat, Oct 11, 2008 at 8:01 AM, David Relson <[EMAIL PROTECTED]> wrote: > On Fri, 10 Oct 2008 23:06:09 -0400 > Andrey Vul wrote: > >> On Fri, Oct 10, 2008 at 10:33 PM, David Wei <[EMAIL PROTECTED]> >> wrote: >> > Sorry, I forgot that file . >> > the .config is in the attachment this time. >> > Thank you . >> > >> > On Fri, 10 Oct 2008 10:05:36 -0400 >> > "Andrey Vul" <[EMAIL PROTECTED]> wrote: >> > >> >> 2008/10/10 David Wei <[EMAIL PROTECTED]>: >> >> > Hi, >> >> > I am trying kexec with "kernel panic reboot" cause i have to >> >> > manage my server remotely. the "kernel panic >> >> > reboot" (http://gentoo-wiki.com/TIP_Kernel_Panic_Reboot) has >> >> > beening working so good so far for the regular kernel >> >> > panic.However,sometimes when i were missed some file system >> >> > items,the booking process would ask me: "VFS: Unable to mount >> >> > root fs via NFS,trying floppy Insert root floppy and Press >> >> > Enter." And the system hungup there waiting for my Enter. How >> >> > can I remove this item from the booting process and panic >> >> > directly so that it can reboot? Besides,I want to keep the NFS >> >> > service. Thank you in advance. >> >> I'm guessing that this is due to the floppy being compiled into the >> >> emergency kernel. >> >> In any case, can you post your .config for the emergency kernel? >> >> >> >> Nothing in the .config looks suspicious. >> It looks like it's inevitable that kernel patching will be needed, at >> least, using the preprocessor to "hide" the floppy code. >> Try this (it comments out floppy support which happens after NFS >> support): comment_floppy.patch >> --- init/do_mounts.c 2008-04-16 22:49:44.000000000 -0400 >> +++ init/do_mounts2.c 2008-10-10 23:03:06.867876561 -0400 >> @@ -308,7 +308,8 @@ >> ROOT_DEV = Root_FD0; >> } >> #endif >> -#ifdef CONFIG_BLK_DEV_FD >> +/* #ifdef CONFIG_BLK_DEV_FD */ >> +#if 0 >> if (MAJOR(ROOT_DEV) == FLOPPY_MAJOR) { >> /* rd_doload is 2 for a dual initrd/ramload setup */ >> if (rd_doload==2) { >> >> cd to your /usr/src/linux-... and run patch -p0 < comment_floppy.patch >> It should fix the _specific_ issue. It might not fix the root cause, >> however. >> >> -- >> Andrey Vul > > Looking in do_mounts.c, the code that generates the message is: > > #ifdef CONFIG_ROOT_NFS > if (MAJOR(ROOT_DEV) == UNNAMED_MAJOR) { > if (mount_nfs_root()) > return; > > printk(KERN_ERR "VFS: Unable to mount root fs via NFS, trying > floppy.\n"); > ROOT_DEV = Root_FD0; > } > #endif > > Looking at the .config file, I see "CONFIG_ROOT_NFS=y". Since the > message is being printed, we know that > > if (MAJOR(ROOT_DEV) == UNNAMED_MAJOR) > > is true which wmeans that the > > if (MAJOR(ROOT_DEV) == FLOPPY_MAJOR) > > is false, i.e. the change to "#if 0" looks to be incorrect. > > Perhaps "CONFIG_ROOT_NFS=y" in .config is the root cause. I'd suggest > changing the .config. He has explicity mentioned that his root device is NFS. You have misinterpreted the code. The floppy event only occurs *if* mount_nfs_root() failed. It's false from the start, but becomes true when NFS mount-root failed.
-- Andrey Vul A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing in e-mail?