NAME
boothowto,
BOOT_FLAG —
flags passed to kernel during boot or shutdown
SYNOPSIS
#include <sys/reboot.h>
#include <sys/systm.h>
extern int boothowto;
#include <sys/boot_flag.h>
#define BOOT_FLAG(arg, retval) ...
DESCRIPTION
The
boothowto variable contains flags passed to the kernel
by the boot loader (see
boot(8)),
or the
reboot(2) system call.
The value is interpreted as a bit mask, with bits defined by the
“
RB_*” and
“
AB_*” symbols in
<sys/reboot.h>. The value is made
available via the
sysctl(7)
variable
kern.boothowto.
The
BOOT_FLAG
macro defined in
<sys/boot_flag.h> is used by many
boot loaders to convert command line options into
boothowto flags. Note that not all boot loaders use this
macro, and some boot loaders may have incompatible options.
Where possible, flags set by the
reboot(2) system call will be
passed to the new kernel after a reboot; the extent to which this is possible
is machine dependent.
In the following tables, each flag is listed with its symbolic name, the
corresponding numeric value defined in
<sys/reboot.h>, and the option
letter (if any) understood by the
BOOT_FLAG
macro.
Flags that affect
booting or shutting down
The following flags affect actions taken during system boot or shutdown.
RB_AUTOBOOT |
0 |
|
The default if no other flags are set. Causes the
system to boot in the normal way. |
RB_ASKNAME |
0x00000001 |
-a |
This flag causes various parts of the system to
prompt:
- The boot loader may
prompt for the name or location of the kernel to be booted.
- The kernel will prompt
for the root file system device.
- The kernel will prompt
for the root file system type.
- The kernel will prompt
for the location of the dump device.
- The kernel will prompt
for the path to the
init(8) program.
Some subsystems set this flag when they are unable to automatically make a
decision. |
RB_SINGLE |
0x00000002 |
-s |
Boot in single-user mode. If this flag is set, the
kernel passes the -s option to
init(8). |
RB_NOSYNC |
0x00000004 |
|
If this flag is set, then some parts of the shutdown
process will be less graceful than usual:
|
RB_HALT |
0x00000008 |
-b |
If this flag is set, then
reboot(2) will cause the
system to halt instead of rebooting. This flag may be set at boot time,
and cannot be cleared by
reboot(2). |
RB_INITNAME |
0x00000010 |
|
This flag is obsolete. It was previously used to cause
the kernel to prompt for the name of the
init(8) program, but that
function is now controlled by the RB_ASKNAME
flag. |
RB_KDB |
0x00000040 |
-d |
Gives control to a kernel debugger early in the boot
sequence. See ddb(4),
“options KGDB” in
options(4), and
ipkdb(9). |
RB_RDONLY |
0x00000080 |
|
This flag is deprecated. It previously caused the
kernel to mount the root file system in read-only mode, but now that is
the default, and this flag has no effect. |
RB_DUMP |
0x00000100 |
|
Causes the kernel to dump memory to the dump device
during shutdown. See
savecore(8),
cpu_reboot(9), and
dumpsys(9). |
RB_MINIROOT |
0x00000200 |
-m |
This flag informs the kernel that a mini-root file
system is present in memory. See
md(4), and
mdsetimage(8). |
RB_STRING |
0x00000400 |
|
This flag indicates that a boot string is present. The
string may be provided by
reboot(2) and will be passed
to the boot loader if possible. |
RB_POWERDOWN |
(RB_HALT|0x800) |
|
This flag is used in conjunction with
RB_HALT . If this flag is set, then then system
will be powered down if possible. If powerdown is not supported, then the
system will halt. |
RB_USERCONF |
0x00001000 |
-c |
This flag causes the kernel to invoke the
userconf(4) device
configuration manager early in the boot sequence. |
Flags that affect verbosity
The following flags affect the verbosity of messages printed by the kernel.
These flags are used by several functions described in
kprintf(9) to control whether
output is sent to the console, the system log, both, or neither. The use of
flags that increase verbosity simultaneously with the use of flags that
decrease verbosity, is not well defined.
AB_NORMAL |
0 |
|
The default, if none of the other
AB_* flags is set, is that ordinary kernel
messages are sent both to the console and to the system log. |
AB_QUIET |
0x00010000 |
-q |
Boot quietly. Ordinary kernel messages are sent to the
system log, but not to the console. Messages printed with
aprint_naive(9) are
sent to the console, but not to the system log. |
AB_VERBOSE |
0x00020000 |
-v |
Boot verbosely. Some messages will be printed that
would otherwise not be printed. Both ordinary kernel messages, and
messages printed with
aprint_verbose(9),
will be sent both to the console and to the system log. If this flag is
not set, then messages printed with
aprint_verbose(9)
will be sent only to the system log. |
AB_SILENT |
0x00040000 |
-z |
Boot silently. Most kernel messages will be sent only
to the system log, not to the console. The aprint_*()
functions display a spinning symbol on the console. |
AB_DEBUG |
0x00080000 |
-x |
Boot with debug messages. |
Machine-dependent flags
The following flags have machine-dependent meanings.
RB_MD1 |
0x10000000 |
-1 |
Some ports use this flag to disable multiprocessor
mode, making them use only a single CPU. The zaurus port uses this flag to
enable the serial console. |
RB_MD2 |
0x20000000 |
-2 |
The i386 and amd64 ports use this flag to disable
acpi(4). |
RB_MD3 |
0x40000000 |
-3 |
This flag is currently not used by any ports. |
RB_MD4 |
0x80000000 |
-4 |
This flag is currently not used by any ports. |
SEE ALSO
reboot(2),
ddb(4),
userconf(4),
sysctl(7),
boot(8),
crash(8),
init(8),
reboot(8),
savecore(8),
sync(8),
cpu_reboot(9),
kprintf(9)
HISTORY
The
boothowto variable appeared in
4.0BSD. The
BOOT_FLAG macro appeared
in
NetBSD 1.6.
The
RB_DFLTROOT
option is now
obsolete.