1*479ab7f0SSascha Wildner.\" 2*479ab7f0SSascha Wildner.\" Copyright (c) 1999 Daniel C. Sobral 3*479ab7f0SSascha Wildner.\" All rights reserved. 4*479ab7f0SSascha Wildner.\" 5*479ab7f0SSascha Wildner.\" Redistribution and use in source and binary forms, with or without 6*479ab7f0SSascha Wildner.\" modification, are permitted provided that the following conditions 7*479ab7f0SSascha Wildner.\" are met: 8*479ab7f0SSascha Wildner.\" 1. Redistributions of source code must retain the above copyright 9*479ab7f0SSascha Wildner.\" notice, this list of conditions and the following disclaimer. 10*479ab7f0SSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright 11*479ab7f0SSascha Wildner.\" notice, this list of conditions and the following disclaimer in the 12*479ab7f0SSascha Wildner.\" documentation and/or other materials provided with the distribution. 13*479ab7f0SSascha Wildner.\" 14*479ab7f0SSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15*479ab7f0SSascha Wildner.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16*479ab7f0SSascha Wildner.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17*479ab7f0SSascha Wildner.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18*479ab7f0SSascha Wildner.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19*479ab7f0SSascha Wildner.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20*479ab7f0SSascha Wildner.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21*479ab7f0SSascha Wildner.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22*479ab7f0SSascha Wildner.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23*479ab7f0SSascha Wildner.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24*479ab7f0SSascha Wildner.\" SUCH DAMAGE. 25*479ab7f0SSascha Wildner.\" 26*479ab7f0SSascha Wildner.\" $FreeBSD: src/sys/boot/common/loader.8,v 1.57 2003/06/29 20:57:55 brueffer Exp $ 27*479ab7f0SSascha Wildner.\" 28*479ab7f0SSascha Wildner.Dd May 20, 2019 29*479ab7f0SSascha Wildner.Dt LOADER 8 30*479ab7f0SSascha Wildner.Os 31*479ab7f0SSascha Wildner.Sh NAME 32*479ab7f0SSascha Wildner.Nm loader 33*479ab7f0SSascha Wildner.Nd kernel bootstrapping final stage 34*479ab7f0SSascha Wildner.Sh DESCRIPTION 35*479ab7f0SSascha WildnerThe program called 36*479ab7f0SSascha Wildner.Nm 37*479ab7f0SSascha Wildneris the final stage of 38*479ab7f0SSascha Wildner.Dx Ns 's 39*479ab7f0SSascha Wildnerkernel bootstrapping process. 40*479ab7f0SSascha WildnerIt is implemented as a 41*479ab7f0SSascha Wildner.Tn BTX 42*479ab7f0SSascha Wildnerclient and is linked statically to 43*479ab7f0SSascha Wildner.Xr libstand 3 44*479ab7f0SSascha Wildnerand located in the 45*479ab7f0SSascha Wildner.Pa /boot 46*479ab7f0SSascha Wildneror 47*479ab7f0SSascha Wildner.Pa / 48*479ab7f0SSascha Wildnerdirectory. 49*479ab7f0SSascha Wildner.Pp 50*479ab7f0SSascha WildnerIf a 51*479ab7f0SSascha Wildner.Pa /boot 52*479ab7f0SSascha Wildnerdirectory exist on the boot file system, then 53*479ab7f0SSascha Wildner.Dq /boot/ 54*479ab7f0SSascha Wildneris prepended to all relative file names used by 55*479ab7f0SSascha Wildner.Nm . 56*479ab7f0SSascha WildnerThis makes it possible to locate all files used by 57*479ab7f0SSascha Wildner.Nm 58*479ab7f0SSascha Wildnerin either 59*479ab7f0SSascha Wildner.Pa / 60*479ab7f0SSascha Wildneror 61*479ab7f0SSascha Wildner.Pa /boot 62*479ab7f0SSascha Wildnerdirectory on the boot file system. 63*479ab7f0SSascha WildnerIf boot and root are the same file system, then files used by 64*479ab7f0SSascha Wildner.Nm 65*479ab7f0SSascha Wildnerare located in 66*479ab7f0SSascha Wildner.Pa /boot . 67*479ab7f0SSascha WildnerIf boot and root are different file systems, then files used by 68*479ab7f0SSascha Wildner.Nm 69*479ab7f0SSascha Wildnerare located in 70*479ab7f0SSascha Wildner.Pa / 71*479ab7f0SSascha Wildneron the boot file system, which is mounted as 72*479ab7f0SSascha Wildner.Pa /boot 73*479ab7f0SSascha Wildneron the root file system when the kernel is running. 74*479ab7f0SSascha Wildner.Pp 75*479ab7f0SSascha WildnerDuring initialization, 76*479ab7f0SSascha Wildner.Nm 77*479ab7f0SSascha Wildnerwill probe for a console and set the 78*479ab7f0SSascha Wildner.Va console 79*479ab7f0SSascha Wildnervariable, or set it to serial console 80*479ab7f0SSascha Wildner.Pq Dq comconsole 81*479ab7f0SSascha Wildnerif the previous boot stage used that. 82*479ab7f0SSascha WildnerThen, devices are probed, 83*479ab7f0SSascha Wildner.Va currdev 84*479ab7f0SSascha Wildnerand 85*479ab7f0SSascha Wildner.Va loaddev 86*479ab7f0SSascha Wildnerare set, and 87*479ab7f0SSascha Wildner.Va LINES 88*479ab7f0SSascha Wildneris set to 24. 89*479ab7f0SSascha WildnerAfter that, 90*479ab7f0SSascha Wildner.Pa dloader.rc 91*479ab7f0SSascha Wildneris processed if available, and, failing that, 92*479ab7f0SSascha Wildner.Pa boot.conf 93*479ab7f0SSascha Wildneris read for historical reasons. 94*479ab7f0SSascha WildnerThese files are processed through the 95*479ab7f0SSascha Wildner.Ic include 96*479ab7f0SSascha Wildnercommand, which reads all of them into memory before processing them, 97*479ab7f0SSascha Wildnermaking disk changes possible. 98*479ab7f0SSascha Wildner.Pp 99*479ab7f0SSascha WildnerAt this point, if an 100*479ab7f0SSascha Wildner.Ic autoboot 101*479ab7f0SSascha Wildnerhas not been tried, and if 102*479ab7f0SSascha Wildner.Va autoboot_delay 103*479ab7f0SSascha Wildneris not set to 104*479ab7f0SSascha Wildner.Dq NO 105*479ab7f0SSascha Wildner(not case sensitive), then an 106*479ab7f0SSascha Wildner.Ic autoboot 107*479ab7f0SSascha Wildnerwill be tried. 108*479ab7f0SSascha WildnerIf the system gets past this point, 109*479ab7f0SSascha Wildner.Va prompt 110*479ab7f0SSascha Wildnerwill be set and 111*479ab7f0SSascha Wildner.Nm 112*479ab7f0SSascha Wildnerwill engage interactive mode. 113*479ab7f0SSascha Wildner.Sh BUILTIN COMMANDS 114*479ab7f0SSascha WildnerIn 115*479ab7f0SSascha Wildner.Nm , 116*479ab7f0SSascha Wildnerbuiltin commands take parameters from the command line. 117*479ab7f0SSascha Wildner.Pp 118*479ab7f0SSascha WildnerThe builtin commands available are: 119*479ab7f0SSascha Wildner.Pp 120*479ab7f0SSascha Wildner.Bl -tag -width indent -compact 121*479ab7f0SSascha Wildner.It Ar variable Ns = Ns Ar value 122*479ab7f0SSascha WildnerAssign 123*479ab7f0SSascha Wildner.Ar value 124*479ab7f0SSascha Wildnerto 125*479ab7f0SSascha Wildner.Ar variable . 126*479ab7f0SSascha WildnerThe value is always assigned to a local variable 127*479ab7f0SSascha Wildner.Ar variable . 128*479ab7f0SSascha WildnerIf 129*479ab7f0SSascha Wildner.Ar variable 130*479ab7f0SSascha Wildneris in the list of known kernel environment variables or is a kernel tunable, 131*479ab7f0SSascha Wildnerthe value is also assigned to the kernel environment variable of the 132*479ab7f0SSascha Wildnergiven name. 133*479ab7f0SSascha WildnerIf the variable name contains a 134*479ab7f0SSascha Wildner.Ql .\& 135*479ab7f0SSascha Wildnerit is considered a kernel tunable. 136*479ab7f0SSascha WildnerLocal variables are unset if 137*479ab7f0SSascha Wildner.Ar value 138*479ab7f0SSascha Wildneris empty. 139*479ab7f0SSascha WildnerKernel environment variable will have empty value. 140*479ab7f0SSascha Wildner.Pp 141*479ab7f0SSascha WildnerIn other words, the assignment above will set a local variable and 142*479ab7f0SSascha Wildnerif applicable, also assign 143*479ab7f0SSascha Wildner.Ar value 144*479ab7f0SSascha Wildnerto the kernel environment variable, even if 145*479ab7f0SSascha Wildner.Ar value 146*479ab7f0SSascha Wildneris empty. 147*479ab7f0SSascha WildnerSee also 148*479ab7f0SSascha Wildner.Sx KERNEL ENVIRONMENT VARIABLES AND LOCAL VARIABLES . 149*479ab7f0SSascha Wildner.Pp 150*479ab7f0SSascha Wildner.Ar Value 151*479ab7f0SSascha Wildnercan be a string or a string expression containing literal text and 152*479ab7f0SSascha Wildnerkernel environment variables, like 153*479ab7f0SSascha Wildner.Dq $VAR 154*479ab7f0SSascha Wildneror 155*479ab7f0SSascha Wildner.Dq ${VAR} . 156*479ab7f0SSascha WildnerEscape sequences like 157*479ab7f0SSascha Wildner.Ql \en 158*479ab7f0SSascha Wildner(newline), 159*479ab7f0SSascha Wildner.Ql \et 160*479ab7f0SSascha Wildner(TAB) and 161*479ab7f0SSascha Wildner.Ql \eOOO 162*479ab7f0SSascha Wildner(character with number given in octal) 163*479ab7f0SSascha Wildnercan also be used. 164*479ab7f0SSascha WildnerThis is actually a general facility of 165*479ab7f0SSascha Wildner.Nm 166*479ab7f0SSascha Wildnerwhich can be used for arguments of all commands. 167*479ab7f0SSascha Wildner.Pp 168*479ab7f0SSascha Wildner.It Ic autoboot Op Ar delay Op Ar prompt 169*479ab7f0SSascha WildnerProceeds to bootstrap the system after a number of seconds, if not 170*479ab7f0SSascha Wildnerinterrupted by the user. 171*479ab7f0SSascha WildnerDisplays a countdown prompt 172*479ab7f0SSascha Wildnerwarning the user the system is about to be booted, 173*479ab7f0SSascha Wildnerunless interrupted by a key press. 174*479ab7f0SSascha WildnerThe kernel will be loaded first if necessary. 175*479ab7f0SSascha WildnerDefaults to 10 seconds. 176*479ab7f0SSascha Wildner.Pp 177*479ab7f0SSascha Wildner.It Ic bcachestat 178*479ab7f0SSascha WildnerDisplays statistics about disk cache usage. 179*479ab7f0SSascha WildnerFor depuration only. 180*479ab7f0SSascha Wildner.Pp 181*479ab7f0SSascha Wildner.It Ic boot Oo Fl Ns Ar flag ... Oc Op Ar kernelname 182*479ab7f0SSascha WildnerImmediately proceeds to bootstrap the system, loading the kernel 183*479ab7f0SSascha Wildnerif necessary. 184*479ab7f0SSascha WildnerAny flags or arguments are passed to the kernel, but they 185*479ab7f0SSascha Wildnermust precede the kernel name, if a kernel name is provided. 186*479ab7f0SSascha WildnerFlags are described in 187*479ab7f0SSascha Wildner.Xr boot 8 . 188*479ab7f0SSascha WildnerSee also 189*479ab7f0SSascha Wildner.Va boot_* 190*479ab7f0SSascha Wildnerand 191*479ab7f0SSascha Wildner.Va kernel_options 192*479ab7f0SSascha Wildnervariables. 193*479ab7f0SSascha Wildner.Pp 194*479ab7f0SSascha Wildner.It Ic cd Op Ar directory 195*479ab7f0SSascha WildnerChange working directory to 196*479ab7f0SSascha Wildner.Ar directory . 197*479ab7f0SSascha WildnerDefault is $base. 198*479ab7f0SSascha Wildner.Pp 199*479ab7f0SSascha Wildner.It Ic echo Oo Fl n Oc Op Ar message 200*479ab7f0SSascha WildnerDisplays text on the screen. 201*479ab7f0SSascha WildnerA new line will be printed unless 202*479ab7f0SSascha Wildner.Fl n 203*479ab7f0SSascha Wildneris specified. 204*479ab7f0SSascha WildnerSee description of assignment 205*479ab7f0SSascha Wildner.Pq Ar variable Ns = Ns Ar value 206*479ab7f0SSascha Wildner.Ar value 207*479ab7f0SSascha Wildnerfor use of kernel environment variables and escape sequences in 208*479ab7f0SSascha Wildner.Ar message . 209*479ab7f0SSascha Wildner.Pp 210*479ab7f0SSascha Wildner.It Ic else 211*479ab7f0SSascha WildnerConditional if/else/endif. 212*479ab7f0SSascha Wildner.Pp 213*479ab7f0SSascha Wildner.It Ic elseifexists Ar path 214*479ab7f0SSascha WildnerConditional 215*479ab7f0SSascha Wildner.Ar path 216*479ab7f0SSascha Wildnerexists, i.e.\& file/dir present. 217*479ab7f0SSascha Wildner.Pp 218*479ab7f0SSascha Wildner.It Ic endif 219*479ab7f0SSascha WildnerConditional if/else/endif. 220*479ab7f0SSascha Wildner.Pp 221*479ab7f0SSascha Wildner.It Ic heap 222*479ab7f0SSascha WildnerDisplays memory usage statistics. 223*479ab7f0SSascha WildnerFor debugging purposes only. 224*479ab7f0SSascha Wildner.Pp 225*479ab7f0SSascha Wildner.It Ic help Op Ar topic Op Ar subtopic 226*479ab7f0SSascha WildnerShows help messages read from 227*479ab7f0SSascha Wildner.Pa loader.help . 228*479ab7f0SSascha WildnerThe special 229*479ab7f0SSascha Wildner.Ar topic 230*479ab7f0SSascha Wildner.Cm index 231*479ab7f0SSascha Wildnerwill list all topics available. 232*479ab7f0SSascha Wildner.Pp 233*479ab7f0SSascha Wildner.It Ic ifexists Ar path 234*479ab7f0SSascha WildnerConditional 235*479ab7f0SSascha Wildner.Ar path 236*479ab7f0SSascha Wildnerexists, i.e.\& file/dir present. 237*479ab7f0SSascha Wildner.Pp 238*479ab7f0SSascha Wildner.It Ic ifset Ar kenv_variable 239*479ab7f0SSascha WildnerConditional kernel environment variable 240*479ab7f0SSascha Wildner.Ar kenv_variable 241*479ab7f0SSascha Wildnerexists. 242*479ab7f0SSascha Wildner.Pp 243*479ab7f0SSascha Wildner.It Ic include Ar 244*479ab7f0SSascha WildnerProcess script files. 245*479ab7f0SSascha WildnerEach file, in turn, is completely read into memory, 246*479ab7f0SSascha Wildnerand then each of its lines is passed to the command line interpreter. 247*479ab7f0SSascha WildnerIf any error is returned by the interpreter, the include 248*479ab7f0SSascha Wildnercommand aborts immediately, without reading any other files, and 249*479ab7f0SSascha Wildnerreturns an error itself. 250*479ab7f0SSascha Wildner.Pp 251*479ab7f0SSascha Wildner.It Ic load Oo Fl t Ar type Oc Ar file Op Ar argument ... 252*479ab7f0SSascha WildnerLoads a kernel, kernel loadable module (kld), or file of opaque 253*479ab7f0SSascha Wildnercontents tagged as being of the type 254*479ab7f0SSascha Wildner.Ar type . 255*479ab7f0SSascha WildnerKernel and modules can be either in a.out or 256*479ab7f0SSascha Wildner.Tn ELF 257*479ab7f0SSascha Wildnerformat. 258*479ab7f0SSascha WildnerAny arguments passed after the name of the file to be loaded 259*479ab7f0SSascha Wildnerwill be passed as arguments to that file. 260*479ab7f0SSascha Wildner.Pp 261*479ab7f0SSascha Wildner.It Ic loadall 262*479ab7f0SSascha WildnerLoad the kernel and all modules specified by MODULE_load variables. 263*479ab7f0SSascha Wildner.Pp 264*479ab7f0SSascha Wildner.It Ic local Op Ar local_variable ... 265*479ab7f0SSascha WildnerDisplays the specified variable's value, or all local variables and their 266*479ab7f0SSascha Wildnervalues if 267*479ab7f0SSascha Wildner.Ar local_variable 268*479ab7f0SSascha Wildneris not specified. 269*479ab7f0SSascha Wildner.Pp 270*479ab7f0SSascha Wildner.It Ic ls Oo Fl l Oc Op Ar path 271*479ab7f0SSascha WildnerDisplays a listing of files in the directory 272*479ab7f0SSascha Wildner.Ar path , 273*479ab7f0SSascha Wildneror the current directory if 274*479ab7f0SSascha Wildner.Ar path 275*479ab7f0SSascha Wildneris not specified. 276*479ab7f0SSascha WildnerIf 277*479ab7f0SSascha Wildner.Fl l 278*479ab7f0SSascha Wildneris specified, file sizes will be shown too. 279*479ab7f0SSascha Wildner.Pp 280*479ab7f0SSascha Wildner.It Ic lsdev Op Fl v 281*479ab7f0SSascha WildnerLists all devices. 282*479ab7f0SSascha WildnerA 283*479ab7f0SSascha Wildner.Sq * 284*479ab7f0SSascha Wildnerprefix indicates a disk slice or partition from which it may be 285*479ab7f0SSascha Wildnerpossible to load modules. 286*479ab7f0SSascha WildnerIf 287*479ab7f0SSascha Wildner.Fl v 288*479ab7f0SSascha Wildneris specified, more details, 289*479ab7f0SSascha Wildnerlike disk slice or partition size and position, are printed. 290*479ab7f0SSascha Wildner.Pp 291*479ab7f0SSascha Wildner.It Ic lsmod Op Fl v 292*479ab7f0SSascha WildnerDisplays loaded modules. 293*479ab7f0SSascha WildnerIf 294*479ab7f0SSascha Wildner.Fl v 295*479ab7f0SSascha Wildneris specified, more details are shown. 296*479ab7f0SSascha Wildner.Pp 297*479ab7f0SSascha Wildner.It Ic lunset Ar local_variable 298*479ab7f0SSascha WildnerUnset a local variable. 299*479ab7f0SSascha WildnerDiscards the value and removes the variable. 300*479ab7f0SSascha Wildner.Pp 301*479ab7f0SSascha Wildner.It Ic lunsetif Ar local_variable kenv_variable 302*479ab7f0SSascha WildnerUnset local variable 303*479ab7f0SSascha Wildner.Ar local_variable 304*479ab7f0SSascha Wildnerif kernel environment variable 305*479ab7f0SSascha Wildner.Ar kenv_variable 306*479ab7f0SSascha Wildneris true, i.e.\& set to 1 or 307*479ab7f0SSascha Wildner.Ql YES . 308*479ab7f0SSascha Wildner.Pp 309*479ab7f0SSascha Wildner.It Ic menu 310*479ab7f0SSascha WildnerRun menu system. 311*479ab7f0SSascha Wildner.Pp 312*479ab7f0SSascha Wildner.It Ic menuadd Ar command_line 313*479ab7f0SSascha WildnerAdd script line for the current menu item. 314*479ab7f0SSascha Wildner.Pp 315*479ab7f0SSascha Wildner.It Ic menuclear 316*479ab7f0SSascha WildnerClear all menu items. 317*479ab7f0SSascha Wildner.Pp 318*479ab7f0SSascha Wildner.It Ic menuitem Ar key description 319*479ab7f0SSascha WildnerStart a new menu item. 320*479ab7f0SSascha WildnerWhen running the menu system, a line with 321*479ab7f0SSascha Wildner.Ar key 322*479ab7f0SSascha Wildnerand 323*479ab7f0SSascha Wildner.Ar description 324*479ab7f0SSascha Wildneris displayed, and an item is chosen by pressing 325*479ab7f0SSascha Wildner.Ar key . 326*479ab7f0SSascha Wildner.Pp 327*479ab7f0SSascha Wildner.It Ic more Ar 328*479ab7f0SSascha WildnerDisplay the files specified, with a pause at each 329*479ab7f0SSascha Wildner.Va LINES 330*479ab7f0SSascha Wildnerdisplayed. 331*479ab7f0SSascha Wildner.Pp 332*479ab7f0SSascha Wildner.It Ic optcd Op Ar directory 333*479ab7f0SSascha WildnerChange the working directory to 334*479ab7f0SSascha Wildner.Ar directory . 335*479ab7f0SSascha WildnerDefault is $base. 336*479ab7f0SSascha WildnerIgnore errors. 337*479ab7f0SSascha WildnerThis command is like 338*479ab7f0SSascha Wildner.Ic cd , 339*479ab7f0SSascha Wildnerbut ignores errors when changing the directory. 340*479ab7f0SSascha Wildner.Pp 341*479ab7f0SSascha Wildner.It Ic optinclude Ar 342*479ab7f0SSascha WildnerProcess script files. 343*479ab7f0SSascha WildnerIgnore errors. 344*479ab7f0SSascha WildnerThis command is like 345*479ab7f0SSascha Wildner.Ic include , 346*479ab7f0SSascha Wildnerbut ignores errors while executing commands in included files. 347*479ab7f0SSascha Wildner.Pp 348*479ab7f0SSascha Wildner.It Ic pnpscan Op Fl v 349*479ab7f0SSascha WildnerScans for Plug-and-Play devices. 350*479ab7f0SSascha WildnerThis is not functional at present. 351*479ab7f0SSascha Wildner.Pp 352*479ab7f0SSascha Wildner.It Ic pwd 353*479ab7f0SSascha WildnerPrints the working directory. 354*479ab7f0SSascha Wildner.Pp 355*479ab7f0SSascha Wildner.It Ic read Oo Fl p Ar prompt Oc Oo Fl t Ar seconds Oc Op Ar kenv_variable 356*479ab7f0SSascha WildnerReads a line of input from the terminal, 357*479ab7f0SSascha Wildnerstoring it in kernel environment variable 358*479ab7f0SSascha Wildner.Ar kenv_variable 359*479ab7f0SSascha Wildnerif specified. 360*479ab7f0SSascha WildnerA prompt may be displayed through the 361*479ab7f0SSascha Wildner.Fl p 362*479ab7f0SSascha Wildnerflag. 363*479ab7f0SSascha WildnerA timeout can be specified with 364*479ab7f0SSascha Wildner.Fl t , 365*479ab7f0SSascha Wildnerthough it will be canceled at the first key pressed. 366*479ab7f0SSascha Wildner.Pp 367*479ab7f0SSascha Wildner.It Ic reboot 368*479ab7f0SSascha WildnerImmediately reboots the system. 369*479ab7f0SSascha Wildner.Pp 370*479ab7f0SSascha Wildner.It Ic set Ar kenv_variable 371*479ab7f0SSascha Wildner.It Ic set Ar kenv_variable Ns = Ns Ar value 372*479ab7f0SSascha WildnerSet kernel environment variable 373*479ab7f0SSascha Wildner.Ar kenv_variable 374*479ab7f0SSascha Wildnerto the given value, 375*479ab7f0SSascha Wildnerif no 376*479ab7f0SSascha Wildner.Ar value 377*479ab7f0SSascha Wildneris given, the empty string is the value. 378*479ab7f0SSascha Wildner.Pp 379*479ab7f0SSascha Wildner.It Ic show Op Ar kenv_variable 380*479ab7f0SSascha WildnerDisplays the specified kernel environment variable's value, 381*479ab7f0SSascha Wildneror all variables and their values if 382*479ab7f0SSascha Wildner.Ar kenv_variable 383*479ab7f0SSascha Wildneris not specified. 384*479ab7f0SSascha Wildner.Pp 385*479ab7f0SSascha Wildner.It Ic unload 386*479ab7f0SSascha WildnerRemoves all modules from memory. 387*479ab7f0SSascha Wildner.Pp 388*479ab7f0SSascha Wildner.It Ic unset Ar kenv_variable 389*479ab7f0SSascha WildnerRemoves 390*479ab7f0SSascha Wildner.Ar kenv_variable 391*479ab7f0SSascha Wildnerfrom the kernel environment. 392*479ab7f0SSascha Wildner.Pp 393*479ab7f0SSascha Wildner.It Ic \&? 394*479ab7f0SSascha WildnerLists most available commands with a short help text for each. 395*479ab7f0SSascha Wildner.El 396*479ab7f0SSascha Wildner.Ss KERNEL ENVIRONMENT VARIABLES AND LOCAL VARIABLES 397*479ab7f0SSascha WildnerThe 398*479ab7f0SSascha Wildner.Nm 399*479ab7f0SSascha Wildneractually has two different kinds of variables. 400*479ab7f0SSascha WildnerThese are 401*479ab7f0SSascha Wildnerkernel environment variables, 402*479ab7f0SSascha Wildnerwhich are visible to the kernel when it is started, 403*479ab7f0SSascha Wildnerand a separate space of local variables used by 404*479ab7f0SSascha Wildner.Nm , 405*479ab7f0SSascha Wildnerwhich are not available to the kernel. 406*479ab7f0SSascha Wildner.Pp 407*479ab7f0SSascha WildnerBoth local variable and kernel environment variable 408*479ab7f0SSascha Wildnerof the same name are changed by assignment 409*479ab7f0SSascha Wildner.Pq Ar variable Ns = Ns Ar value . 410*479ab7f0SSascha Wildner.Pp 411*479ab7f0SSascha WildnerKernel environment variables can be set and unset through the 412*479ab7f0SSascha Wildner.Ic set 413*479ab7f0SSascha Wildnerand 414*479ab7f0SSascha Wildner.Ic unset 415*479ab7f0SSascha Wildnerbuiltins, and can have their values examined through the 416*479ab7f0SSascha Wildner.Ic show 417*479ab7f0SSascha Wildnerand 418*479ab7f0SSascha Wildner.Ic ifset 419*479ab7f0SSascha Wildnerbuiltins. 420*479ab7f0SSascha WildnerVariables in command arguments or 421*479ab7f0SSascha Wildner.Ar value 422*479ab7f0SSascha Wildnerin assignments 423*479ab7f0SSascha Wildner.Dq ( $VAR 424*479ab7f0SSascha Wildnerand 425*479ab7f0SSascha Wildner.Dq ${VAR} ) 426*479ab7f0SSascha Wildnerrefers to kernel environment variables. 427*479ab7f0SSascha Wildner.Pp 428*479ab7f0SSascha WildnerLocal variables can be unset with 429*479ab7f0SSascha Wildner.Ic lunset 430*479ab7f0SSascha Wildnerand 431*479ab7f0SSascha Wildner.Ic lunsetif 432*479ab7f0SSascha Wildnerbuiltin, and can have their values examined through the 433*479ab7f0SSascha Wildner.Ic local 434*479ab7f0SSascha Wildnerbuiltin. 435*479ab7f0SSascha Wildner.Pp 436*479ab7f0SSascha WildnerNotice that these environment variables are not inherited by any shell 437*479ab7f0SSascha Wildnerafter the system has been booted, but can be examined by 438*479ab7f0SSascha Wildner.Xr kenv 1 . 439*479ab7f0SSascha Wildner.Pp 440*479ab7f0SSascha WildnerNote that a variable can have two instances with differnet values: 441*479ab7f0SSascha Wildnerboth a local variable instance and a kernel environment variable instance 442*479ab7f0SSascha Wildnercan exist for the same name and with different values. 443*479ab7f0SSascha WildnerThis can cause confusion and is seldom done on purpose. 444*479ab7f0SSascha Wildner.Pp 445*479ab7f0SSascha WildnerA few variables are set automatically by 446*479ab7f0SSascha Wildner.Nm . 447*479ab7f0SSascha WildnerOthers can affect the behavior of either 448*479ab7f0SSascha Wildner.Nm 449*479ab7f0SSascha Wildneror the kernel at boot. 450*479ab7f0SSascha WildnerSome options may require a value, 451*479ab7f0SSascha Wildnerwhile others define behavior just by being set. 452*479ab7f0SSascha WildnerBoth types of variables are described below. 453*479ab7f0SSascha Wildner.Bl -tag -width indent 454*479ab7f0SSascha Wildner.It Va acpi_load 455*479ab7f0SSascha WildnerUsed for handling automatic loading of the 456*479ab7f0SSascha Wildner.Xr acpi 4 457*479ab7f0SSascha Wildnermodule. 458*479ab7f0SSascha WildnerTo disable automatic loading of the ACPI module use: 459*479ab7f0SSascha Wildner.Pp 460*479ab7f0SSascha Wildner.Dl lunset acpi_load 461*479ab7f0SSascha Wildner.Dl set hint.acpi.0.disabled=1 462*479ab7f0SSascha Wildner.It Va autoboot_delay 463*479ab7f0SSascha WildnerNumber of seconds 464*479ab7f0SSascha Wildner.Ic autoboot 465*479ab7f0SSascha Wildnerand 466*479ab7f0SSascha Wildner.Ic menu 467*479ab7f0SSascha Wildnerwill wait before booting. 468*479ab7f0SSascha WildnerDefault value is 10 seconds. 469*479ab7f0SSascha Wildner.Pp 470*479ab7f0SSascha WildnerIf set to 471*479ab7f0SSascha Wildner.Dq NO , 472*479ab7f0SSascha Wildnerno 473*479ab7f0SSascha Wildner.Ic autoboot 474*479ab7f0SSascha Wildnerwill be automatically attempted after processing 475*479ab7f0SSascha Wildner.Pa dloader.rc , 476*479ab7f0SSascha Wildnerthough explicit 477*479ab7f0SSascha Wildner.Ic autoboot Ns 's 478*479ab7f0SSascha Wildnerwill be processed normally, defaulting to 10 seconds delay. 479*479ab7f0SSascha Wildner.It Va boot_askname 480*479ab7f0SSascha WildnerInstructs the kernel to prompt the user for the name of the root device 481*479ab7f0SSascha Wildnerwhen the kernel is booted. 482*479ab7f0SSascha Wildner.It Va boot_ddb 483*479ab7f0SSascha WildnerInstructs the kernel to start in the DDB debugger, rather than 484*479ab7f0SSascha Wildnerproceeding to initialize when booted. 485*479ab7f0SSascha Wildner.It Va boot_gdb 486*479ab7f0SSascha WildnerSelects gdb-remote mode for the kernel debugger by default. 487*479ab7f0SSascha Wildner.It Va boot_single 488*479ab7f0SSascha WildnerPrevents the kernel from initiating a multi-user startup; instead single-user 489*479ab7f0SSascha Wildnermode will be entered when the kernel has finished device probing. 490*479ab7f0SSascha Wildner.It Va boot_verbose 491*479ab7f0SSascha WildnerSetting this variable causes extra debugging information to be printed 492*479ab7f0SSascha Wildnerby the kernel during and after the boot phase. 493*479ab7f0SSascha Wildner.It Va bootfile 494*479ab7f0SSascha WildnerList of semicolon-separated search path for bootable kernels. 495*479ab7f0SSascha WildnerThe default is 496*479ab7f0SSascha Wildner.Dq Li kernel . 497*479ab7f0SSascha Wildner.It Va console 498*479ab7f0SSascha WildnerDefines the current console. 499*479ab7f0SSascha Wildner.It Va currdev 500*479ab7f0SSascha WildnerSelects the default device. 501*479ab7f0SSascha WildnerSyntax for devices is odd. 502*479ab7f0SSascha Wildner.It Va default_kernel 503*479ab7f0SSascha WildnerSelects default kernel loaded by 504*479ab7f0SSascha Wildner.Ic menu 505*479ab7f0SSascha Wildnercommand. 506*479ab7f0SSascha WildnerDefaults to 507*479ab7f0SSascha Wildner.Pa kernel . 508*479ab7f0SSascha Wildner.It Va dumpdev 509*479ab7f0SSascha WildnerThe name of a device where the kernel can save a crash dump in case 510*479ab7f0SSascha Wildnerof a panic. 511*479ab7f0SSascha WildnerThis automatically sets the 512*479ab7f0SSascha Wildner.Va kern.dumpdev 513*479ab7f0SSascha Wildner.Xr sysctl 3 514*479ab7f0SSascha Wildner.Tn MIB 515*479ab7f0SSascha Wildnervariable. 516*479ab7f0SSascha Wildner.It Va ehci_load 517*479ab7f0SSascha WildnerUsed for handling automatic loading of the 518*479ab7f0SSascha Wildner.Xr ehci 4 519*479ab7f0SSascha Wildnermodule. 520*479ab7f0SSascha WildnerTo disable automatic loading of the EHCI module use: 521*479ab7f0SSascha Wildner.Pp 522*479ab7f0SSascha Wildner.Dl lunset ehci_load 523*479ab7f0SSascha Wildner.Dl set hint.ehci.0.disabled=1 524*479ab7f0SSascha Wildner.It Va xhci_load 525*479ab7f0SSascha WildnerUsed for handling automatic loading of the 526*479ab7f0SSascha Wildner.Xr xhci 4 527*479ab7f0SSascha Wildnermodule. 528*479ab7f0SSascha WildnerTo disable automatic loading of the XHCI module use: 529*479ab7f0SSascha Wildner.Pp 530*479ab7f0SSascha Wildner.Dl lunset xhci_load 531*479ab7f0SSascha Wildner.Dl set hint.xhci.0.disabled=1 532*479ab7f0SSascha Wildner.It Va init_chroot 533*479ab7f0SSascha WildnerDirectory 534*479ab7f0SSascha Wildner.Xr init 8 535*479ab7f0SSascha Wildnerwill 536*479ab7f0SSascha Wildner.Fn chroot 537*479ab7f0SSascha Wildnerto on startup. 538*479ab7f0SSascha WildnerBy setting this variable 539*479ab7f0SSascha Wildner.Dx 540*479ab7f0SSascha Wildnercan be run from a subdirectory of the root file system. 541*479ab7f0SSascha Wildner.It Va init_path 542*479ab7f0SSascha WildnerSets the list of binaries which the kernel will try to run as the initial 543*479ab7f0SSascha Wildnerprocess. 544*479ab7f0SSascha WildnerThe first matching binary is used. 545*479ab7f0SSascha WildnerThe default list is 546*479ab7f0SSascha Wildner.Dq Li /sbin/init:/sbin/oinit:/sbin/init.bak . 547*479ab7f0SSascha Wildner.It Va kernel_options 548*479ab7f0SSascha WildnerSet kernel boot flags. 549*479ab7f0SSascha WildnerSee also 550*479ab7f0SSascha Wildner.Ic boot 551*479ab7f0SSascha Wildnercommand. 552*479ab7f0SSascha Wildner.It Va LINES 553*479ab7f0SSascha WildnerDefine the number of lines on the screen, to be used by the pager. 554*479ab7f0SSascha Wildner.It Va local_modules 555*479ab7f0SSascha WildnerSetting this variable to 556*479ab7f0SSascha Wildner.Dq Li YES 557*479ab7f0SSascha Wildnercauses 558*479ab7f0SSascha Wildner.Pa /boot/modules.local 559*479ab7f0SSascha Wildnerto be included after 560*479ab7f0SSascha Wildner.Va modules_path 561*479ab7f0SSascha Wildnerdirectories list and passed to kernel for 562*479ab7f0SSascha Wildner.Xr kldload 8 . 563*479ab7f0SSascha Wildner.It Va module_path 564*479ab7f0SSascha WildnerSets the list of directories which will be searched for modules named in a 565*479ab7f0SSascha Wildner.Nm load 566*479ab7f0SSascha Wildnercommand or implicitly required by a dependency. 567*479ab7f0SSascha WildnerThe default value for this variable is 568*479ab7f0SSascha Wildner.Dq Li ;modules , 569*479ab7f0SSascha Wildnerwhich first searches the current working directory and then 570*479ab7f0SSascha Wildner.Pa modules . 571*479ab7f0SSascha Wildner.It Va num_ide_disks 572*479ab7f0SSascha WildnerSets the number of IDE disks as a workaround for some problems in 573*479ab7f0SSascha Wildnerfinding the root disk at boot. 574*479ab7f0SSascha WildnerThis has been deprecated in favor of 575*479ab7f0SSascha Wildner.Va root_disk_unit . 576*479ab7f0SSascha Wildner.It Va prompt 577*479ab7f0SSascha WildnerValue of 578*479ab7f0SSascha Wildner.Nm Ns 's 579*479ab7f0SSascha Wildnerprompt. 580*479ab7f0SSascha WildnerDefaults to 581*479ab7f0SSascha Wildner.Dq Li OK . 582*479ab7f0SSascha WildnerKernel environment variables can be used in 583*479ab7f0SSascha Wildner.Va prompt 584*479ab7f0SSascha Wildnerby including 585*479ab7f0SSascha Wildner.Dq Li ${VAR} . 586*479ab7f0SSascha WildnerE.g. (note that 587*479ab7f0SSascha Wildner.Ql $ 588*479ab7f0SSascha Wildnermust be escaped with 589*479ab7f0SSascha Wildner.Ql \e 590*479ab7f0SSascha Wildnerto be included in 591*479ab7f0SSascha Wildner.Va prompt ) : 592*479ab7f0SSascha Wildner.Pp 593*479ab7f0SSascha Wildner.Dl "set prompt=\*q\e${currdev} OK\*q" 594*479ab7f0SSascha Wildner.It Va root_disk_unit 595*479ab7f0SSascha WildnerIf the code which detects the disk unit number for the root disk is 596*479ab7f0SSascha Wildnerconfused, e.g.\& by a mix of 597*479ab7f0SSascha Wildner.Tn SCSI 598*479ab7f0SSascha Wildnerand 599*479ab7f0SSascha Wildner.Tn IDE 600*479ab7f0SSascha Wildnerdisks, or 601*479ab7f0SSascha Wildner.Tn IDE 602*479ab7f0SSascha Wildnerdisks with 603*479ab7f0SSascha Wildnergaps in the sequence (e.g.\& no primary slave), the unit number can 604*479ab7f0SSascha Wildnerbe forced by setting this variable. 605*479ab7f0SSascha Wildner.Pp 606*479ab7f0SSascha WildnerSee also 607*479ab7f0SSascha Wildner.Va vfs.root.mountfrom 608*479ab7f0SSascha Wildnervariable. 609*479ab7f0SSascha Wildner.It Va rootdev 610*479ab7f0SSascha WildnerBy default the value of 611*479ab7f0SSascha Wildner.Va currdev 612*479ab7f0SSascha Wildneris used to set the root file system 613*479ab7f0SSascha Wildnerwhen the kernel is booted. 614*479ab7f0SSascha WildnerThis can be overridden by setting 615*479ab7f0SSascha Wildner.Va rootdev 616*479ab7f0SSascha Wildnerexplicitly. 617*479ab7f0SSascha Wildner.Pp 618*479ab7f0SSascha WildnerSee also 619*479ab7f0SSascha Wildner.Va vfs.root.mountfrom 620*479ab7f0SSascha Wildnervariable. 621*479ab7f0SSascha Wildner.El 622*479ab7f0SSascha Wildner.Pp 623*479ab7f0SSascha WildnerOther variables are used to override kernel tunable parameters. 624*479ab7f0SSascha WildnerThe following 625*479ab7f0SSascha Wildner.Nm 626*479ab7f0SSascha Wildnertunables are available: 627*479ab7f0SSascha Wildner.Bl -tag -width indent 628*479ab7f0SSascha Wildner.It Va hw.ioapic_enable 629*479ab7f0SSascha WildnerControl use of 630*479ab7f0SSascha Wildner.Tn I/O APIC . 631*479ab7f0SSascha WildnerSet to 1 to enable, 0 to disable. 632*479ab7f0SSascha WildnerDefault is 1. 633*479ab7f0SSascha Wildner.It Va hw.irq.X.dest 634*479ab7f0SSascha WildnerSet irqX's destination to the given 635*479ab7f0SSascha Wildner.Tn CPUID , 636*479ab7f0SSascha Wildnerwhich starts from 0. 637*479ab7f0SSascha WildnerIf the specified value is larger than the last 638*479ab7f0SSascha Wildner.Tn CPUID , 639*479ab7f0SSascha Wildnerthen the first 640*479ab7f0SSascha Wildner.Tn CPUID 641*479ab7f0SSascha Wildnerwill be used. 642*479ab7f0SSascha WildnerThis variable should not be used if 643*479ab7f0SSascha Wildner.Tn I/O APIC 644*479ab7f0SSascha Wildneruse is disabled. 645*479ab7f0SSascha Wildner.It Va hw.physmem 646*479ab7f0SSascha WildnerLimit the amount of physical memory the system will use. 647*479ab7f0SSascha WildnerBy default the size is in bytes, but the 648*479ab7f0SSascha Wildner.Cm k , K , m , M , g 649*479ab7f0SSascha Wildnerand 650*479ab7f0SSascha Wildner.Cm G 651*479ab7f0SSascha Wildnersuffixes 652*479ab7f0SSascha Wildnerare also accepted and indicate kilobytes, megabytes and gigabytes 653*479ab7f0SSascha Wildnerrespectively. 654*479ab7f0SSascha WildnerAn invalid suffix will result in the variable being ignored by the 655*479ab7f0SSascha Wildnerkernel. 656*479ab7f0SSascha Wildner.It Va hw.usb.hack_defer_exploration 657*479ab7f0SSascha WildnerThe USB keyboard will sometimes not attach properly unless you set this 658*479ab7f0SSascha Wildnervariable to 0. 659*479ab7f0SSascha Wildner.It Va kern.emergency_intr_enable 660*479ab7f0SSascha WildnerSetting this to 1 enables emergency interrupt polling. 661*479ab7f0SSascha WildnerAll interrupt handlers are executed periodically. 662*479ab7f0SSascha WildnerThis mode is very expensive and should 663*479ab7f0SSascha Wildneronly be used to get a system accessible when interrupt routing is 664*479ab7f0SSascha Wildnerotherwise broken. 665*479ab7f0SSascha WildnerIt is primarily used by kernel developers to debug new systems. 666*479ab7f0SSascha Wildner.It Va kern.emergency_intr_freq 667*479ab7f0SSascha WildnerSet the polling rate for the emergency interrupt polling code. 668*479ab7f0SSascha WildnerThe default is 10 (hz) to dissuade casual use. 669*479ab7f0SSascha WildnerIf you are doing real work 670*479ab7f0SSascha Wildnerwith emergency interrupt polling mode enabled, it is recommended 671*479ab7f0SSascha Wildnerthat you use a frequency between 100hz and 300hz. 672*479ab7f0SSascha Wildner.It Va kern.maxusers 673*479ab7f0SSascha WildnerSet the size of a number of statically allocated system tables; see 674*479ab7f0SSascha Wildner.Xr tuning 7 675*479ab7f0SSascha Wildnerfor a description of how to select an appropriate value for this tunable. 676*479ab7f0SSascha WildnerWhen set, this tunable replaces the value declared in the kernel 677*479ab7f0SSascha Wildnercompile-time configuration file. 678*479ab7f0SSascha Wildner.It Va kern.ipc.nmbclusters 679*479ab7f0SSascha WildnerSet the number of mbuf clusters to be allocated. 680*479ab7f0SSascha WildnerThe value cannot be set below the default 681*479ab7f0SSascha Wildnerdetermined when the kernel was compiled. 682*479ab7f0SSascha WildnerModifies 683*479ab7f0SSascha Wildner.Va NMBCLUSTERS . 684*479ab7f0SSascha Wildner.It Va kern.mmxopt 685*479ab7f0SSascha WildnerToggles the mmx optimizations for the bcopy/copyin/copyout routines 686*479ab7f0SSascha Wildner.It Va kern.user_scheduler 687*479ab7f0SSascha WildnerDefault userland scheduler (usched). 688*479ab7f0SSascha WildnerIf set, values can be 689*479ab7f0SSascha Wildner.Dq bsd4 690*479ab7f0SSascha Wildneror 691*479ab7f0SSascha Wildner.Dq dfly . 692*479ab7f0SSascha WildnerDefault is 693*479ab7f0SSascha Wildner.Dq dfly . 694*479ab7f0SSascha Wildner.It Va kern.vm.kmem.size 695*479ab7f0SSascha WildnerSets the size of kernel memory (bytes). 696*479ab7f0SSascha WildnerThis overrides the value determined when the kernel was compiled. 697*479ab7f0SSascha Wildner.It Va kern.maxswzone 698*479ab7f0SSascha WildnerLimits the amount of 699*479ab7f0SSascha Wildner.Tn KVM 700*479ab7f0SSascha Wildnerto be used to hold swap 701*479ab7f0SSascha Wildnermeta information, which directly governs the 702*479ab7f0SSascha Wildnermaximum amount of swap the system can support. 703*479ab7f0SSascha WildnerThis value is specified in bytes of KVA space 704*479ab7f0SSascha Wildnerand defaults to around 70MBytes. 705*479ab7f0SSascha WildnerCare should be taken 706*479ab7f0SSascha Wildnerto not reduce this value such that the actual 707*479ab7f0SSascha Wildneramount of configured swap exceeds \(12 the 708*479ab7f0SSascha Wildnerkernel-supported swap. 709*479ab7f0SSascha WildnerThe default 70MB allows 710*479ab7f0SSascha Wildnerthe kernel to support a maximum of (approximately) 711*479ab7f0SSascha Wildner14GB of configured swap. 712*479ab7f0SSascha WildnerOnly mess around with 713*479ab7f0SSascha Wildnerthis parameter if you need to greatly extend the 714*479ab7f0SSascha Wildner.Tn KVM 715*479ab7f0SSascha Wildnerreservation for other resources such as the 716*479ab7f0SSascha Wildnerbuffer cache or 717*479ab7f0SSascha Wildner.Va NMBCLUSTERS . 718*479ab7f0SSascha WildnerModifies 719*479ab7f0SSascha Wildner.Va VM_SWZONE_SIZE_MAX . 720*479ab7f0SSascha Wildner.It Va kern.maxbcache 721*479ab7f0SSascha WildnerLimits the amount of KVM reserved for use by the 722*479ab7f0SSascha Wildnerbuffer cache, specified in bytes. 723*479ab7f0SSascha WildnerThe default maximum is 200MB on 32-bit and 724*479ab7f0SSascha Wildnerunspecified on 64-bit. 725*479ab7f0SSascha WildnerThis parameter is used to 726*479ab7f0SSascha Wildnerprevent the buffer cache from eating too much 727*479ab7f0SSascha Wildner.Tn KVM 728*479ab7f0SSascha Wildnerin large-memory machine configurations. 729*479ab7f0SSascha WildnerOnly mess around with this parameter if you need to 730*479ab7f0SSascha Wildnergreatly extend the 731*479ab7f0SSascha Wildner.Tn KVM 732*479ab7f0SSascha Wildnerreservation for other resources 733*479ab7f0SSascha Wildnersuch as the swap zone or 734*479ab7f0SSascha Wildner.Va NMBCLUSTERS . 735*479ab7f0SSascha WildnerNote that 736*479ab7f0SSascha Wildnerthe NBUF parameter will override this limit. 737*479ab7f0SSascha WildnerModifies 738*479ab7f0SSascha Wildner.Va VM_BCACHE_SIZE_MAX . 739*479ab7f0SSascha Wildner.It Va machdep.disable_mtrrs 740*479ab7f0SSascha WildnerDisable the use of 741*479ab7f0SSascha Wildner.Sy i686 742*479ab7f0SSascha Wildner.Tn MTRRs 743*479ab7f0SSascha Wildner(x86 only). 744*479ab7f0SSascha Wildner.It Va net.inet.tcp.tcbhashsize 745*479ab7f0SSascha WildnerOverrides the compile-time set value of 746*479ab7f0SSascha Wildner.Va TCBHASHSIZE 747*479ab7f0SSascha Wildneror the preset default of 512. 748*479ab7f0SSascha WildnerMust be a power of 2. 749*479ab7f0SSascha Wildner.It Va vfs.root.wakedelay 750*479ab7f0SSascha WildnerSpecify an additional delay (default is 2 seconds if unspecified) 751*479ab7f0SSascha Wildnerbefore trying to mount root. 752*479ab7f0SSascha Wildner.It Va vfs.root.mountfrom 753*479ab7f0SSascha WildnerSpecify root file system. 754*479ab7f0SSascha WildnerA semicolon separated list of file systems to try 755*479ab7f0SSascha Wildneras the kernel root file system. 756*479ab7f0SSascha WildnerFile system format is file system type and disk store, 757*479ab7f0SSascha Wildnerseparated by colon. 758*479ab7f0SSascha WildnerThis variable needs to be set when using a boot-only partition, which is 759*479ab7f0SSascha Wildnertypically mounted on root file system as 760*479ab7f0SSascha Wildner.Pa /boot . 761*479ab7f0SSascha Wildner.Pp 762*479ab7f0SSascha WildnerOne file system example: 763*479ab7f0SSascha Wildner.Dl hammer:da8s1a 764*479ab7f0SSascha Wildner.Pp 765*479ab7f0SSascha WildnerOne file system 766*479ab7f0SSascha Wildner.Nm HAMMER2 767*479ab7f0SSascha Wildnermulti volume example: 768*479ab7f0SSascha Wildner.Dl hammer2:da8s1a:da9s1a 769*479ab7f0SSascha Wildner.Pp 770*479ab7f0SSascha WildnerSeveral file systems, boot list, example: 771*479ab7f0SSascha Wildner.Dl ufs:da0s1a;hammer2:ad1s1d 772*479ab7f0SSascha Wildner.Pp 773*479ab7f0SSascha WildnerEach file system in the list will be tried in the order specified 774*479ab7f0SSascha Wildneruntil the mount succeeds. 775*479ab7f0SSascha WildnerIf all fail, the 776*479ab7f0SSascha Wildner.Ql mountroot> 777*479ab7f0SSascha Wildnerprompt is displayed for manual entry. 778*479ab7f0SSascha Wildner.Pp 779*479ab7f0SSascha WildnerYou may not specify devtab labels here but you can specify paths available to 780*479ab7f0SSascha Wildner.Xr devfs 5 781*479ab7f0SSascha Wildnersuch as: 782*479ab7f0SSascha Wildner.Dl hammer:serno/L41JYE0G.s1d 783*479ab7f0SSascha Wildner.It Va vfs.root.realroot 784*479ab7f0SSascha WildnerRoot file system and extra options for 785*479ab7f0SSascha Wildner.Nm initrd . 786*479ab7f0SSascha WildnerSee 787*479ab7f0SSascha Wildner.Xr initrd 7 . 788*479ab7f0SSascha Wildner.It Va nfsroot.iosize 789*479ab7f0SSascha WildnerOverride the default NFS netbooted root mount io block size. 790*479ab7f0SSascha WildnerThe default is 8192 which works with most servers. 791*479ab7f0SSascha Wildnersuggested values are 8192, 16384, or 32768. 792*479ab7f0SSascha Wildner.It Va nfsroot.rahead 793*479ab7f0SSascha WildnerOverride the default read-ahead used by netbooted root mounts. 794*479ab7f0SSascha WildnerThe default is 4 which is reasonable. Suggested values are 1 through 8. 795*479ab7f0SSascha Wildner.El 796*479ab7f0SSascha Wildner.Sh FILES 797*479ab7f0SSascha Wildner.Bl -tag -width /boot/defaults/dloader.menu -compact 798*479ab7f0SSascha Wildner.It Pa /boot/boot.conf 799*479ab7f0SSascha Wildner.Nm 800*479ab7f0SSascha Wildnerbootstrapping script. 801*479ab7f0SSascha WildnerDeprecated 802*479ab7f0SSascha Wildner.It Pa /boot/defaults/dloader.menu 803*479ab7f0SSascha Wildner.Nm 804*479ab7f0SSascha Wildnermenu setup commands -- do not change this file 805*479ab7f0SSascha Wildner.It Pa /boot/defaults/loader.conf 806*479ab7f0SSascha Wildner.Nm 807*479ab7f0SSascha Wildnerconfiguration file, see 808*479ab7f0SSascha Wildner.Xr loader.conf 5 809*479ab7f0SSascha Wildner-- do not change this file 810*479ab7f0SSascha Wildner.It Pa /boot/dloader.menu 811*479ab7f0SSascha Wildner.Nm 812*479ab7f0SSascha Wildnermenu setup commands 813*479ab7f0SSascha Wildner.It Pa /boot/dloader.rc 814*479ab7f0SSascha Wildner.Nm 815*479ab7f0SSascha Wildnerbootstrapping script 816*479ab7f0SSascha Wildner.It Pa /boot/loader 817*479ab7f0SSascha Wildner.Nm 818*479ab7f0SSascha Wildneritself 819*479ab7f0SSascha Wildner.It Pa /boot/loader.conf 820*479ab7f0SSascha Wildner.It Pa /boot/loader.conf.local 821*479ab7f0SSascha Wildner.Nm 822*479ab7f0SSascha Wildnerconfiguration files, see 823*479ab7f0SSascha Wildner.Xr loader.conf 5 824*479ab7f0SSascha Wildner.It Pa /boot/loader.help 825*479ab7f0SSascha Wildnerhelp messages, used by the 826*479ab7f0SSascha Wildner.Ic help 827*479ab7f0SSascha Wildnercommand 828*479ab7f0SSascha Wildner.El 829*479ab7f0SSascha Wildner.Sh EXAMPLES 830*479ab7f0SSascha WildnerBoot in single user mode: 831*479ab7f0SSascha Wildner.Pp 832*479ab7f0SSascha Wildner.Dl loadall 833*479ab7f0SSascha Wildner.Dl boot -s 834*479ab7f0SSascha Wildner.Pp 835*479ab7f0SSascha WildnerLoad the kernel, a splash screen, and then autoboot in five seconds. 836*479ab7f0SSascha Wildner.Bd -literal -offset indent 837*479ab7f0SSascha Wildnerload kernel 838*479ab7f0SSascha Wildnerload splash_bmp 839*479ab7f0SSascha Wildnerload -t splash_image_data chuckrulez.bmp 840*479ab7f0SSascha Wildnerautoboot 5 841*479ab7f0SSascha Wildner.Ed 842*479ab7f0SSascha Wildner.Pp 843*479ab7f0SSascha WildnerSet the disk unit of the root device to 2, and then boot. 844*479ab7f0SSascha WildnerThis would be needed in a system with two IDE disks, 845*479ab7f0SSascha Wildnerwith the second IDE disk hardwired to 846*479ab7f0SSascha Wildner.Pa ad2 847*479ab7f0SSascha Wildnerinstead of 848*479ab7f0SSascha Wildner.Pa ad1 . 849*479ab7f0SSascha Wildner.Bd -literal -offset indent 850*479ab7f0SSascha Wildnerset root_disk_unit=2 851*479ab7f0SSascha Wildnerboot kernel 852*479ab7f0SSascha Wildner.Ed 853*479ab7f0SSascha Wildner.Sh SEE ALSO 854*479ab7f0SSascha Wildner.Xr kenv 1 , 855*479ab7f0SSascha Wildner.Xr libstand 3 , 856*479ab7f0SSascha Wildner.Xr acpi 4 , 857*479ab7f0SSascha Wildner.Xr ehci 4 , 858*479ab7f0SSascha Wildner.Xr xhci 4 , 859*479ab7f0SSascha Wildner.Xr loader.conf 5 , 860*479ab7f0SSascha Wildner.Xr tuning 7 , 861*479ab7f0SSascha Wildner.Xr boot 8 , 862*479ab7f0SSascha Wildner.Xr cryptsetup 8 , 863*479ab7f0SSascha Wildner.Xr lvm 8 , 864*479ab7f0SSascha Wildner.Xr pxeboot 8 , 865*479ab7f0SSascha Wildner.Xr pxeboot_tftp 8 , 866*479ab7f0SSascha Wildner.Xr sysctl 8 867*479ab7f0SSascha Wildner.Sh HISTORY 868*479ab7f0SSascha WildnerThe 869*479ab7f0SSascha Wildner.Nm 870*479ab7f0SSascha Wildnerfirst appeared in 871*479ab7f0SSascha Wildner.Fx 3.1 . 872*479ab7f0SSascha Wildner.Nm dloader 873*479ab7f0SSascha Wildnerwas introduced and 874*479ab7f0SSascha Wildner.Tn FORTH 875*479ab7f0SSascha Wildnerremoved in 876*479ab7f0SSascha Wildner.Dx 2.7 . 877*479ab7f0SSascha Wildner.Sh AUTHORS 878*479ab7f0SSascha Wildner.An -nosplit 879*479ab7f0SSascha WildnerThe 880*479ab7f0SSascha Wildner.Nm 881*479ab7f0SSascha Wildnerwas written by 882*479ab7f0SSascha Wildner.An Michael Smith Aq Mt msmith@FreeBSD.org . 883*479ab7f0SSascha Wildner.Pp 884*479ab7f0SSascha Wildner.Nm dloader 885*479ab7f0SSascha Wildnerwas written by 886*479ab7f0SSascha Wildner.An Matthew Dillon Aq Mt dillon@backplane.com . 887*479ab7f0SSascha Wildner.Sh BUGS 888*479ab7f0SSascha WildnerA variable can have two instances: local & kernel environment, 889*479ab7f0SSascha Wildnerthis can cause confusion. 890