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?

Reply via email to