BOOTHOWTO(9) BSD Kernel Developer's Manual BOOTHOWTO(9)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 inter‐
preted 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) vari‐
able 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 ker‐
nel 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:
· Disks will not be synced (see
sync(2) and cpu_reboot(9)).
· Devices will not be detached (see
autoconf(9)).
· File systems will not be
unmounted (see cpu_reboot(9), and
vfs_shutdown(9)).
· The time of day clock will not be
set (see resettodr(9)).
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 previ‐
ously 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 previ‐
ously 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 possi‐
ble.
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 sup‐
ported, 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 ker‐
nel. 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 mes‐
sages 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 mes‐
sages 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 ALSOreboot(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.
BSD September 11, 2009 BSD