This patch allows mounting root on USB disk by retrying to mount root few times. This patch is based on the idea that has been floating around for few years, except it's updated for 2.6. This patch contains updates to the following files: b/init/do_mounts.c diff -Nru a/init/do_mounts.c b/init/do_mounts.c --- a/init/do_mounts.c Wed May 12 15:42:18 2004 +++ b/init/do_mounts.c Wed May 12 15:42:18 2004 @@ -277,6 +277,7 @@ char *fs_names = __getname(); char *p; char b[BDEVNAME_SIZE]; + int i = 0; get_fs_names(fs_names); retry: @@ -291,6 +292,14 @@ case -EINVAL: continue; } + + printk("VFS: No root yet, retrying to mount root on %s (%s)\n", + root_device_name, __bdevname(ROOT_DEV, b)); + current->state = TASK_INTERRUPTIBLE; + schedule_timeout(10 * HZ); + if (i++ < 5) + goto retry; + /* * Allow the user to distinguish between failed sys_open * and bad superblock on root device.