--- linux.old/init/do_mounts.c 2004-05-13 17:09:12.000000000 +0200 +++ linux/init/do_mounts.c 2004-04-23 23:25:37.000000000 +0200 @@ -488,6 +488,7 @@ { char *fs_names = __getname(); char *p; + int retries = 0; get_fs_names(fs_names); retry: @@ -510,6 +511,17 @@ root_device_name, kdevname (ROOT_DEV)); printk ("Please append a correct \"root=\" boot option\n"); + if (++retries > 5) + panic("VFS: Unable to mount root fs on %s", + kdevname(ROOT_DEV)); + else { + /* wait 1 second and try again */ + printk ("Retrying in 1 second, try #%d\n", retries); + current->state = TASK_INTERRUPTIBLE; + schedule_timeout(HZ); + goto retry; + } + #if defined(__i386__) && defined(CONFIG_ACPI) { extern void dmi_dump_system(void);