xref: /dflybsd-src/stand/boot/common/loader.8 (revision 479ab7f0492f2a51b48e8537e4f1dc686fc6014b)
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