Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
BOOTHOWTO(9)		 BSD Kernel Developer's	Manual		  BOOTHOWTO(9)

     boothowto,	BOOT_FLAG -- flags passed to kernel during boot	or shutdown

     #include <sys/reboot.h>
     #include <sys/systm.h>

     extern int	boothowto;

     #include <sys/boot_flag.h>

     #define BOOT_FLAG(arg, retval) ...

     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 in-
     compatible	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:
					 +o   The boot loader may prompt	for
					     the name or location of the ker-
					     nel to be booted.
					 +o   The kernel	will prompt for	the
					     root file system device.
					 +o   The kernel	will prompt for	the
					     root file system type.
					 +o   The kernel	will prompt for	the
					     location of the dump device.
					 +o   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:
					 +o   Disks will	not be synced (see
					     sync(2) and cpu_reboot(9)).
					 +o   Devices will not be detached (see
					 +o   File systems will not be un-
					     mounted (see cpu_reboot(9), and
					 +o   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
     RB_MINIROOT     0x00000200	   -m	 This flag informs the kernel that a
					 mini-root file	system is present in
					 memory.  See md(4), and
     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-
     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
     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.

     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)

     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


Want to link to this manual page? Use this URL:

home | help