From: William Park <opengeometry@yahoo.ca>
To: Marcelo Tosatti <marcelo.tosatti@cyclades.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: waiting 10s before mounting root filesystem?
Date: Thu, 30 Dec 2004 19:22:10 -0500 [thread overview]
Message-ID: <20041231002210.GA2418@node1.opengeometry.net> (raw)
In-Reply-To: <20041230152531.GB5058@logos.cnet>
On Thu, Dec 30, 2004 at 01:25:32PM -0200, Marcelo Tosatti wrote:
> 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:
> > > [1] http://www.xenotime.net/linux/usb/usbboot-2422.patch
> >
> > 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@1.1527.1.20?nav=index.html|ChangeSet@-3w|cset@1.1527.1.20
Hi Marcelo,
1. Actually, my patch above loops every 5s to reduce screen clutter,
whereas the original 2.4 patch (cited by Andreas Unterkircher) loops
every 1s. Both loops forever.
But, if a limit of 10 tries is what you want, then here is a patch
for 2.6.10:
====================
--- ./init/do_mounts.c--orig 2004-12-27 17:36:35.000000000 -0500
+++ ./init/do_mounts.c 2004-12-30 18:57:46.000000000 -0500
@@ -278,6 +278,7 @@
char *fs_names = __getname();
char *p;
char b[BDEVNAME_SIZE];
+ int tryagain = 10;
get_fs_names(fs_names);
retry:
@@ -297,11 +298,16 @@
* and bad superblock on root device.
*/
__bdevname(ROOT_DEV, b);
+ if (--tryagain) {
+ printk ("VFS: Waiting %dsec for root device...\n", tryagain);
+ set_current_state (TASK_INTERRUPTIBLE);
+ schedule_timeout (HZ);
+ goto retry;
+ }
printk("VFS: Cannot open root device \"%s\" or %s\n",
root_device_name, b);
printk("Please append a correct \"root=\" boot option\n");
-
- panic("VFS: Unable to mount root fs on %s", b);
+ break;
}
panic("VFS: Unable to mount root fs on %s", __bdevname(ROOT_DEV, b));
out:
====================
The only difference are
- using 'tryagain' instead of 'tries' as counter
- printing countdown of seconds like
VFS: Waiting 9sec for root device...
VFS: Waiting 8sec for root device...
...
VFS: Waiting 1sec for root device...
before printing the final error.
2. I sincerely hope that this patch get included in the main kernel.
USB boot is very important feature, and will become the standard way
of booting Linux thin-client as well as other Linux system, embedded
or not. It will make Netboot, Etherboot, PXE boot, CF-to-IDE
adapter, and initrd all obsolete.
--
William Park <opengeometry@yahoo.ca>
Open Geometry Consulting, Toronto, Canada
Linux solution for data processing.
next prev parent reply other threads:[~2004-12-31 0:22 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-27 19:56 waiting 10s before mounting root filesystem? William Park
2004-12-27 20:10 ` Trent Lloyd
2004-12-27 21:23 ` Andreas Unterkircher
2004-12-28 1:54 ` Eric Lammerts
2004-12-29 0:59 ` William Park
2004-12-29 1:38 ` Jesper Juhl
2004-12-29 1:56 ` William Park
2004-12-29 12:49 ` Paulo Marques
2004-12-29 19:15 ` William Park
2004-12-29 19:34 ` Paulo Marques
2004-12-29 20:59 ` William Park
2004-12-29 21:26 ` Andreas Steinmetz
2004-12-31 19:32 ` Willy Tarreau
2004-12-29 21:53 ` Bernd Eckenfels
2004-12-29 22:56 ` Jesper Juhl
2004-12-30 15:25 ` Marcelo Tosatti
2004-12-30 23:45 ` Jesper Juhl
2004-12-31 1:45 ` Jesper Juhl
2004-12-31 3:58 ` William Park
2004-12-31 4:41 ` Jesper Juhl
2004-12-31 11:31 ` Paulo Marques
2004-12-31 9:49 ` Andrew Morton
2004-12-31 8:28 ` Marcelo Tosatti
2004-12-31 11:40 ` Andrew Morton
2004-12-31 11:26 ` Paulo Marques
2004-12-31 8:58 ` Marcelo Tosatti
2004-12-31 11:42 ` Andrew Morton
2004-12-31 12:04 ` Paulo Marques
2004-12-31 17:36 ` William Park
2004-12-31 17:48 ` Tomasz Torcz
2004-12-31 18:18 ` William Park
2004-12-31 0:22 ` William Park [this message]
[not found] <fa.nc4oh06.1j1872e@ifi.uio.no>
[not found] ` <fa.nalafoa.1ih25aa@ifi.uio.no>
2004-12-31 12:33 ` Bodo Eggert
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20041231002210.GA2418@node1.opengeometry.net \
--to=opengeometry@yahoo.ca \
--cc=linux-kernel@vger.kernel.org \
--cc=marcelo.tosatti@cyclades.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox