diff --git a/stand/defaults/loader.conf b/stand/defaults/loader.conf --- a/stand/defaults/loader.conf +++ b/stand/defaults/loader.conf @@ -163,6 +163,8 @@ #kern.ipc.nsfbufs="" # Set the number of sendfile(2) bufs #net.inet.tcp.tcbhashsize="" # Set the value of TCBHASHSIZE #vfs.root.mountfrom="" # Specify root partition +#vfs.mountroot.onfail # Action to take on failure to mountroot: + # "continue", "panic", "reboot", or "retry" #vfs.mountroot.onfallback="ask" # Action to take if no root found: # "ask" (mountroot prompt), "reboot" #vm.kmem_size="" # Sets the size of kernel memory (bytes) diff --git a/sys/kern/vfs_mountroot.c b/sys/kern/vfs_mountroot.c --- a/sys/kern/vfs_mountroot.c +++ b/sys/kern/vfs_mountroot.c @@ -900,7 +900,13 @@ char *s, *tok, *mnt, *opt; int error; - sbuf_printf(sb, ".onfail panic\n"); + s = kern_getenv("vfs.mountroot.onfail"); + if (s != NULL) { + sbuf_printf(sb, ".onfail %s\n", s); + freeenv(s); + } else { + sbuf_printf(sb, ".onfail panic\n"); + } sbuf_printf(sb, ".timeout %d\n", root_mount_timeout); if (boothowto & RB_ASKNAME) sbuf_printf(sb, ".ask\n");