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.

HTH,

David

Reply via email to