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

FreeBSD Manual Pages

  
 
  

home | help
BOOT(8)		     FreeBSD/amd64 System Manager's Manual	       BOOT(8)

NAME
     boot, boot.conf --	amd64-specific second-stage bootstrap

DESCRIPTION
     The main purpose of this program is to load the system kernel while deal-
     ing with the pitfalls of the PC BIOS architecture.

     As	described in boot_amd64(8), this program is loaded by the biosboot(8)
     primary bootstrap loader and provides a convenient	way to load the	ker-
     nel.  This	program	acts as	an enhanced boot monitor for PC	systems, pro-
     viding a common interface for the kernel to start from.

     Basic operations include:

     +o	 Detecting and switching between multiple consoles.
     +o	 Loading kernels from any device supported by your system BIOS.
     +o	 Loading kernels compressed by gzip(1).
     +o	 Passing system	parameters queried from	the BIOS to the	kernel.
     +o	 Providing an interactive command line.

     The sequence of its operation is as follows: initialization, parsing the
     configuration file, then an interactive command line.  While at the com-
     mand line you have	5 seconds to type any commands,	if needed.  If time
     expires, the kernel will be loaded	according to the current variable set-
     tings (see	the set	command).  Each	time a kernel load fails, the timeout
     is	increased by one second.  The sequence of boot operations is as	fol-
     lows:

     1.	  Set up a protected mode environment which catches and	reports	pro-
	  cessor exceptions and	provides a simple protected-mode BIOS inter-
	  face.

     2.	  Probe	for console devices, which includes the	(default) PC VGA+Key-
	  board	console	(pc0) and up to	four serial consoles (com0 through
	  com3)	connected to the serial	ports.	Display	messages to the	de-
	  fault	console	about the devices found.

     3.	  Detect memory.  Conventional memory is detected by querying the
	  BIOS.	 Extended memory is detected by	probing	page-by-page through
	  the address space, rather than asking	the BIOS; many BIOS's cannot
	  report larger	than 64M of memory.  All memory	found is reported to
	  the default console device.

     4.	  Probe	for APM	support	in the BIOS.  Display a	message	if support is
	  present.

     5.	  If the file /etc/boot.conf exists on the filesystem boot was loaded
	  from,	open and parse it.  Lines beginning with the `#' character, as
	  well as whitespace at	the beginning of lines,	are ignored.  The file
	  may contain any commands boot	accepts	at the interactive prompt.
	  Though default settings usually suffice, they	can be changed here.

	  boot.conf processing can be skipped, and the automatic boot can-
	  celled, by holding down either Control key as	boot starts.

     6.	  The header line

		>> OpenBSD/amd64 BOOT [x.xx]

	  is displayed to the active console, where x.xx is the	version	number
	  of the boot program, followed	by the

		boot>

	  prompt, which	means you are in interactive mode and may enter	com-
	  mands.  If you do not, boot will proceed to load the kernel with the
	  current parameters after the timeout period has expired.

     By	default, boot attempts to load the kernel executable /bsd.  If it
     fails to find the kernel and no alternative kernel	image has been speci-
     fied, the system will be unable to	boot.

     boot supports booting from	softraid(4) RAID 1 and CRYPTO volumes.

COMMANDS
     The following commands are	accepted at the	boot prompt:

     boot [[device:]image] [-acds]
	      Boots the	specified kernel image with any	options	given.	If
	      device or	image are omitted, values from boot variables will be
	      used.

	      When selecting the device	to boot	from, boot makes no distinc-
	      tion between SCSI	and IDE	type drives; they are detected as `hd'
	      devices.	Therefore, to boot kernel /bsd from slice `a' on the
	      first hard drive (irrespective of	device type), specify "boot
	      hd0a:/bsd".

	      -a   Causes the kernel to	ask for	the root device	to use.

	      -c   Causes the kernel to	go into	boot_config(8) before perform-
		   ing autoconf(4) procedures.

	      -d   Causes the kernel to	drop into ddb(4) at the	earliest con-
		   venient point.

	      -s   Causes the kernel to	boot single-user.

     echo [args]
	      Displays args on the console device.

     help     Prints a list of available commands and machine dependent	com-
	      mands, if	any.

     hexdump addr size
	      Show size	bytes of memory	at address addr.

     ls	[directory]
	      Prints contents of the specified directory in long format	in-
	      cluding: attributes and file type, owner,	group, size, filename.

     machine [command]
	      Issues machine-dependent commands.  These	are defined for	amd64
	      architecture:

	      boot	Boots the specified partition boot block in place of
			the original (MBR) boot	block:

			      machine boot hd0a

			Where a	is the first MBR partition table entry,	and d
			the last.

	      comaddr	Set the	I/O base address for the serial	port to	be
			used as	serial console.

	      diskinfo	Prints a list of hard disks installed on your system
			including: BIOS	device number, and the BIOS geometry.

	      gop [mode]
			On efifb(4) systems, sets the video resolution in pix-
			els to mode.  If mode is not given, a list of avail-
			able modes is shown.

	      memory	If used	without	any arguments, this command will print
			out the	memory configuration as	determined through
			BIOS routines.	Otherwise the arguments	specify	how to
			modify the memory configuration.  They take the	form
			of:

			      =size[KMG]
			      [+-]size@address

			Meaning	to add(+), exempt(-) or	limit(=) the amount of
			memory specified by size at the	location specified by
			address.  Both size and	base address can be specified
			as octal, decimal, or hexadecimal numbers, as accepted
			by the strtoul(3) routine.  Memory size	may be suf-
			fixed by K or k, for kilobytes;	M or m,	for megabytes;
			and G or g, for	gigabytes.

			The limit(=) option simply ignores any memory above
			the given memory limit.	 This is useful	for testing
			kernels	in an artificially constrained memory situa-
			tion.  For example, the	following limits the kernel to
			using only memory below	64MB:

			      machine mem =64M

			Memory segments	are not	required to be adjacent	to
			each other; the	only requirement is that there is real
			physical memory	under the range	added.	The following
			example	adds 32MB of memory right after	the first
			16MB:

			      machine mem +0x2000000@0x1000000

			Another	useful command is to withdraw a	range of mem-
			ory from OS usage (it may have been wrongfully re-
			ported as useful by the	BIOS).	This example effec-
			tively excludes	the 15-16MB range from the map of use-
			ful memory:

			      machine mem -0x100000@0xf00000

	      regs	Prints contents	of processor registers if compiled
			with DEBUG.

	      video [mode]
			On EFI systems,	sets the video resolution in columns
			and rows to mode.  If mode is not given, a list	of
			available modes	is shown.

     reboot   Reboots the machine by initiating	a warm boot procedure.

     set [varname [value]]
	      If invoked without arguments, prints a list of variables and
	      their values.  If	only varname is	specified, displays contents
	      of that variable.	 If varname and	value are both specified, sets
	      that variable to the given value.	 Variables include:

	      addr	  Address at which to load the kernel.
	      db_console  Boolean (0 or	1) to permit entry into	the kernel de-
			  bugger before	the ddb.console	sysctl gets effective.
	      debug	  Debug	flag if	boot was compiled with DEBUG defined.
	      device	  Boot device name (e.g., fd0a,	hd0a).
	      howto	  Options to pass to the loaded	kernel.
	      image	  File name containing the kernel image.
	      timeout	  Number of seconds boot will wait for human interven-
			  tion before booting the default kernel image.
	      tty	  Active console device	name (e.g., com0, com1,	pc0).

     stty [device [speed]]
	      Displays or sets the speed for a console device.	If changing
	      the baudrate for the currently active console, boot offers you
	      five seconds of grace time before	committing the change to allow
	      you to change your terminal's speed to match.  If	changing speed
	      not for the active console, the baudrate is set for the next
	      time you switch to a serial console.  The	baudrate value is not
	      used for the pc0 console.

	      The default baudrate is 9600bps.

     time     Displays system time and date.

FILES
     /usr/mdec/biosboot	   first stage bootstrap
     /usr/mdec/pxeboot	   PXE bootstrap
     /boot		   system bootstrap
     /etc/boot.conf	   system bootstrap's startup file
     /bsd		   kernel image
     /bsd.sp		   kernel image	for single processor machines
     /bsd.mp		   kernel image	for multiprocessor machines
     /bsd.rd		   kernel image	for installation/recovery

EXAMPLES
     Boot the default kernel:

	   boot> boot

     Remove the	5 second pause at boot-time permanently, causing boot to load
     the kernel	immediately without prompting:

	   # echo "boot" > /etc/boot.conf

     Use serial	console.  A null modem cable should connect the	specified se-
     rial port to a terminal.  Useful for debugging.

	   boot> set tty com0

     Invoke the	serial console at every	boot:

	   # echo "set tty com0" > /etc/boot.conf

     Boot the kernel named /bsd	from the second	hard disk in "User Kernel
     Configuration" mode (see boot_config(8)).	This mechanism allows for the
     explicit enabling and disabling of	devices	during the current boot	se-
     quence, as	well as	the modification of device parameters.	Once booted,
     such changes can be made permanent	by using config(8)'s -e	option.

	   boot> boot hd1a:/bsd	-c

SEE ALSO
     gzip(1), autoconf(4), ddb(4), softraid(4),	biosboot(8), boot_amd64(8),
     boot_config(8), fdisk(8), installboot(8), pxeboot(8), reboot(8)

HISTORY
     This program was written by Michael Shalayeff for OpenBSD 2.1 on the i386
     platform, and was later ported to the amd64 platform.

FreeBSD	13.0		       December	23, 2019		  FreeBSD 13.0

NAME | DESCRIPTION | COMMANDS | FILES | EXAMPLES | SEE ALSO | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=boot&sektion=8&manpath=OpenBSD+6.9>

home | help