Index: sys/kern/vfs_mountroot.c =================================================================== --- sys/kern/vfs_mountroot.c (revision 274644) +++ sys/kern/vfs_mountroot.c (working copy) @@ -479,28 +479,36 @@ printf(" . Yield 1 second (for background tasks)\n"); printf(" Abort manual input\n"); - do { + if (kern_getenv("debug.rootfs_mount_fail_dontask") != NULL) { + printf("\ndebug.rootfs_mount_fail_dontask found - panic / reboot in 3 seconds\n"); + DELAY(3000000); error = EINVAL; - printf("\nmountroot> "); - cngets(name, sizeof(name), GETS_ECHO); - if (name[0] == '\0') - break; - if (name[0] == '?' && name[1] == '\0') { - printf("\nList of GEOM managed disk devices:\n "); - g_dev_print(); - continue; - } - if (name[0] == '.' && name[1] == '\0') { - pause("rmask", hz); - continue; - } - mnt = name; - error = parse_mount(&mnt); - if (error == -1) - printf("Invalid file system specification.\n"); - } while (error != 0); + return (error); + } + else { + do { + error = EINVAL; + printf("\nmountroot> "); + cngets(name, sizeof(name), GETS_ECHO); + if (name[0] == '\0') + break; + if (name[0] == '?' && name[1] == '\0') { + printf("\nList of GEOM managed disk devices:\n "); + g_dev_print(); + continue; + } + if (name[0] == '.' && name[1] == '\0') { + pause("rmask", hz); + continue; + } + mnt = name; + error = parse_mount(&mnt); + if (error == -1) + printf("Invalid file system specification.\n"); + } while (error != 0); - return (error); + return (error); + } } static int