Re: waiting 10s before mounting root filesystem?

From: Marcelo Tosatti
Date: Thu Dec 30 2004 - 13:14:00 EST


On Tue, Dec 28, 2004 at 07:59:22PM -0500, 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");
>
> +#if 0 /* original code */
> panic("VFS: Unable to mount root fs on %s", b);
> +#else
> + printk ("Waiting 5 seconds to try again...\n");
> + set_current_state(TASK_INTERRUPTIBLE);
> + schedule_timeout(5 * HZ);
> + goto retry;
> +#endif
> }
> panic("VFS: Unable to mount root fs on %s", __bdevname(ROOT_DEV, b));
> out:

William,

Solar version which is now merged in v2.4 looks better (5s sleep is too long and only one try) IMO.

It sleeps 1s each time, 10 times. More reliable and faster.

http://linux.bkbits.net:8080/linux-2.4/patch@xxxxxxxxxxx?nav=index.html|ChangeSet@-3w|cset@xxxxxxxxxxx
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/