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:
|
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) and “options KGDB” in options(4). |
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.