Messages in this thread | | | Date | Wed, 29 Dec 2004 02:38:25 +0100 (CET) | From | Jesper Juhl <> | Subject | Re: waiting 10s before mounting root filesystem? |
| |
On Tue, 28 Dec 2004, William Park wrote:
> On Mon, Dec 27, 2004 at 10:23:34PM +0100, Andreas Unterkircher wrote: > > >>How do I make the kernel to wait about 10s before attempting to > > >>mount root filesystem? Is there obscure kernel parameter? > > >> > > >>I can load the kernel from /dev/fd0, then mount /dev/hda2 as root > > >>filesystem. But, I can't seem to mount /dev/sda1 (USB key drive) as > > >>root filesystem. All relevant USB and SCSI modules are compiled > > >>into the kernel. I think kernel is too fast in panicking. I would > > >>like the kernel to wait about 10s until 'usb-storage' and 'sd_mod' > > >>work out all the details. > > > > > >This is really suited to the task of an initrd, then you can spin > > >until the usb storage device comes up in a bash script or something > > >similar. > > > > Or you could try a patch from Randy Dunlap & Eric Lammerts [1] which > > loops around in do_mounts.c > > until the root filesystem can be mounted.... not that beautiful - but it > > works :) > > > > [1] http://www.xenotime.net/linux/usb/usbboot-2422.patch > > > > Cheers, > > Andreas > > > > PS: In the same manner you can do it with 2.6 > > Thanks Andreas. I can now boot from my el-cheapo USB key drive (256MB > SanDisk Cruzer Mini). Since mine takes about 5sec to show up, I decided > to wait 5sec instead of 1sec. Here is diff for 2.6.10: > > --- ./init/do_mounts.c--orig 2004-12-27 17:36:35.000000000 -0500 > +++ ./init/do_mounts.c 2004-12-28 17:27:26.000000000 -0500 > @@ -301,7 +301,14 @@ retry: > root_device_name, b); > printk("Please append a correct \"root=\" boot option\n"); > How about adding a loglevel to this printk() while you are at it? like this for instance: printk(KERN_ERR "Please append a correct \"root=\" boot option\n");
or maybe that should be KERN_CRIT ...
> +#if 0 /* original code */ > panic("VFS: Unable to mount root fs on %s", b); > +#else > + printk ("Waiting 5 seconds to try again...\n");
^^^ And here I think a loglevel of KERN_INFO would be resonable : printk (KERN_INFO "Waiting 5 seconds to try mounting root fs again...\n");
> + set_current_state(TASK_INTERRUPTIBLE); > + schedule_timeout(5 * HZ);
I could be mistaken, but I would have said that msleep would have been better here.???
> + goto retry; > +#endif > } > panic("VFS: Unable to mount root fs on %s", __bdevname(ROOT_DEV, b));
^^^ and this one : panic(KERN_CRIT "VFS: Unable to mount root fs on %s", __bdevname(ROOT_DEV, b));
-- Jesper Juhl
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |