xref: /freebsd/sbin/reboot/boot_i386.8 (revision 6b3455a7665208c366849f0b2b3bc916fb97516e)
1.\" Copyright (c) 1991, 1993
2.\"	The Regents of the University of California.  All rights reserved.
3.\"
4.\" This code is derived from software written and contributed
5.\" to Berkeley by William Jolitz.
6.\"
7.\" Almost completely rewritten for FreeBSD 2.1 by Joerg Wunsch.
8.\"
9.\" Substantially revised for FreeBSD 3.1 by Robert Nordier.
10.\"
11.\" Redistribution and use in source and binary forms, with or without
12.\" modification, are permitted provided that the following conditions
13.\" are met:
14.\" 1. Redistributions of source code must retain the above copyright
15.\"    notice, this list of conditions and the following disclaimer.
16.\" 2. Redistributions in binary form must reproduce the above copyright
17.\"    notice, this list of conditions and the following disclaimer in the
18.\"    documentation and/or other materials provided with the distribution.
19.\" 4. Neither the name of the University nor the names of its contributors
20.\"    may be used to endorse or promote products derived from this software
21.\"    without specific prior written permission.
22.\"
23.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33.\" SUCH DAMAGE.
34.\"
35.\"     @(#)boot_i386.8	8.2 (Berkeley) 4/19/94
36.\"
37.\" $FreeBSD$
38.\"
39.Dd April 19, 1994
40.Dt BOOT 8 i386
41.Os
42.Sh NAME
43.Nm boot
44.Nd system bootstrapping procedures
45.Sh DESCRIPTION
46.Sy Power fail and crash recovery .
47Normally, the system will reboot itself at power-up or after crashes.
48An automatic consistency check of the file systems will be performed,
49and unless this fails, the system will resume multi-user operations.
50.Pp
51.Sy Cold starts .
52Most i386 PCs attempt to boot first from floppy disk drive 0 (sometimes
53known as drive A:) and, failing that, from hard disk drive 0 (sometimes
54known as drive C:, or as drive 0x80 to the BIOS).
55Some BIOSes allow
56you to change this default sequence, and may also include a CD-ROM
57drive as a boot device.
58.Pp
59By default, a three-stage bootstrap is employed, and control is
60automatically passed from the boot blocks (bootstrap stages one and
61two) to a separate third-stage bootstrap program,
62.Xr loader 8 .
63This third stage provides more sophisticated control over the booting
64process than it is possible to achieve in the boot blocks, which are
65constrained by occupying limited fixed space on a given disk or slice.
66.Pp
67However, it is possible to dispense with the third stage altogether,
68either by specifying a kernel name in the boot block parameter
69file,
70.Pa /boot.config ,
71or, unless option
72.Fl n
73is set, by hitting a key during a brief pause (while one of the characters
74.Sy - ,
75.Sy \e ,
76.Sy \&| ,
77or
78.Sy /
79is displayed) before
80.Xr loader 8
81is invoked.
82Booting will also be attempted at stage two, if the
83third stage cannot be loaded.
84.Pp
85Make note of the fact that
86.Pa /boot.config
87is read only from the
88.Ql a
89partition.  As a result, slices which are missing an
90.Ql a
91parition require user intervention during the boot process.
92.Pp
93The remainder of this subsection deals only with the boot blocks.
94The
95.Xr loader 8
96program is documented separately.
97.Pp
98After the boot blocks have been loaded,
99you should see a prompt similar to the following:
100.Bd -literal
101>> FreeBSD/i386 BOOT
102Default: 0:ad(0,a)/boot/loader
103boot:
104.Ed
105.Pp
106The automatic boot will attempt to load
107.Pa /boot/loader
108from partition
109.Ql a
110of either the floppy or the hard disk.
111This boot may be aborted by typing any character on the keyboard
112at the
113.Ql boot:
114prompt.
115At this time, the following input will be accepted:
116.Bl -tag -width indent
117.It Ic \&?
118Give a short listing of the files in the root directory of the default
119boot device, as a hint about available boot files.
120(A
121.Ic ?\&
122may also be specified as the last segment of a path, in which case
123the listing will be of the relevant subdirectory.)
124.Pp
125.It Xo
126.Sm off
127.Ar bios_drive : interface ( unit , Oo Ar slice , Oc Ar part )
128.Sm on
129.Ar filename
130.Op Fl aCcDdghmnPprsv
131.Xc
132Specify boot file and flags.
133.Bl -tag -width indent
134.It Ar bios_drive
135The drive number as recognized by the BIOS.
1360 for the first drive, 1 for the second drive, etc.
137.It Ar interface
138The type of controller to boot from.
139Note that the controller is required
140to have BIOS support since the BIOS services are used to load the
141boot file image.
142.Pp
143The supported interfaces are:
144.Pp
145.Bl -tag -width "adXX" -compact
146.It ad
147ST506, IDE, ESDI, RLL disks on a WD100[2367] or lookalike
148controller
149.It fd
1505 1/4" or 3 1/2" High density floppies
151.It da
152SCSI disk on any supported SCSI controller
153.\".It cd
154.\"boot from CDROM
155.El
156.It Ar unit
157The unit number of the drive on the interface being used.
1580 for the first drive, 1 for the second drive, etc.
159.It Oo Ar slice , Oc Ns Ar part
160The partition letter inside the
161.Bx
162portion of the disk.
163See
164.Xr disklabel 8 .
165By convention, only partition
166.Ql a
167contains a bootable image.
168If sliced disks are used
169.Pq Dq fdisk partitions ,
170any
171.Ar slice
172(1 for the first slice, 2 for the second slice, etc.\&)
173can be booted from, with the default (if not specified) being the active slice
174or, otherwise, the first
175.Fx
176slice.
177If
178.Ar slice
179is specified as 0, the first
180.Fx
181slice (also known as
182.Dq compatibility
183slice) is booted from.
184.It Ar filename
185The pathname of the file to boot (relative to the root directory
186on the specified partition).
187Defaults to
188.Pa /kernel .
189Symbolic links are not supported (hard links are).
190.It Fl aCcDdghmnPprsv
191Boot flags:
192.Pp
193.Bl -tag -width "-CXX" -compact
194.It Fl a
195during kernel initialization,
196ask for the device to mount as the root file system.
197.It Fl C
198boot from CDROM.
199.It Fl c
200run UserConfig to modify hardware parameters for the loaded
201kernel.
202If the kernel was built with one of
203.Dv USERCONFIG , INTRO_USERCONFIG , VISUAL_USERCONFIG
204options,
205remain in UserConfig regardless of any
206.Ic quit
207commands present in the script.
208.It Fl D
209toggle single and dual console configurations.
210In the single
211configuration the console will be either the internal display
212or the serial port, depending on the state of the
213.Fl h
214option below.
215In the dual console configuration,
216both the internal display and the serial port will become the console
217at the same time, regardless of the state of the
218.Fl h
219option.
220However, the dual console configuration takes effect only during
221the boot prompt.
222Once the kernel is loaded, the console specified
223by the
224.Fl h
225option becomes the only console.
226.It Fl d
227enter the DDB kernel debugger
228(see
229.Xr ddb 4 )
230as early as possible in kernel initialization.
231.It Fl g
232use the GDB remote debugging protocol.
233.It Fl h
234toggle internal and serial consoles.
235You can use this to switch
236console devices.
237For instance, if you boot from the internal console,
238you can use the
239.Fl h
240option to force the kernel to use the serial port as its
241console device.
242Alternatively, if you boot from the serial port,
243you can use this option to force the kernel to use the internal display
244as the console instead.
245The serial port driver
246.Xr sio 4
247has a flag to override this option.
248If that flag is set, the serial port will always be used as the console,
249regardless of the
250.Fl h
251option described here.
252See the man page for
253.Xr sio 4
254for more details.
255.It Fl m
256mute the console.
257.It Fl n
258ignore key press to interrupt boot before
259.Xr loader 8
260is invoked.
261.It Fl P
262probe the keyboard.
263If no keyboard is found, the
264.Fl D
265and
266.Fl h
267options are automatically set.
268.It Fl p
269pause after each attached device during the device probing phase.
270.It Fl r
271use the statically configured default for the device containing the
272root file system
273(see
274.Xr config 8 ) .
275Normally, the root file system is on the device
276that the kernel was loaded from.
277.It Fl s
278boot into single-user mode; if the console is marked as
279.Dq insecure
280(see
281.Xr ttys 5 ) ,
282the root password must be entered.
283.It Fl v
284be verbose during device probing (and later).
285.El
286.El
287.El
288.Pp
289You may put a BIOS drive number, a controller type, a unit number,
290a partition, a kernel file name, and any valid option in
291.Pa /boot.config
292to set defaults.
293Enter them in one line just as you type at the
294.Ql boot:
295prompt.
296.Sh FILES
297.Bl -tag -width /boot/loader -compact
298.It Pa /boot.config
299parameters for the boot blocks (optional)
300.It Pa /boot/boot1
301first stage bootstrap file
302.It Pa /boot/boot2
303second stage bootstrap file
304.It Pa /boot/loader
305third stage bootstrap
306.It Pa /boot/kernel/kernel
307default kernel
308.It Pa /boot/kernel.old/kernel
309typical non-default kernel (optional)
310.El
311.Sh SEE ALSO
312.Xr ddb 4 ,
313.Xr ttys 5 ,
314.Xr boot0cfg 8 ,
315.Xr btxld 8 ,
316.Xr config 8 ,
317.Xr disklabel 8 ,
318.Xr halt 8 ,
319.Xr loader 8 ,
320.Xr reboot 8 ,
321.Xr shutdown 8
322.Sh DIAGNOSTICS
323When disk-related errors occur, these are reported by the second-stage
324bootstrap using the same error codes returned by the BIOS, for example
325.Dq Disk error 0x1 (lba=0x12345678) .
326Here is a partial list of these error codes:
327.Pp
328.Bl -tag -width "0x80" -compact
329.It 0x1
330Invalid argument
331.It 0x2
332Address mark not found
333.It 0x4
334Sector not found
335.It 0x8
336DMA overrun
337.It 0x9
338DMA attempt across 64K boundary
339.It 0xc
340Invalid media
341.It 0x10
342Uncorrectable CRC/ECC error
343.It 0x20
344Controller failure
345.It 0x40
346Seek failed
347.It 0x80
348Timeout
349.El
350.Pp
351.Sy "NOTE" :
352On older machines, or otherwise where EDD support (disk packet
353interface support) is not available, all boot-related files and
354structures (including the kernel) that need to be accessed during the
355boot phase must reside on the disk at or below cylinder 1023 (as the
356BIOS understands the geometry).
357When a
358.Dq Disk error 0x1
359is reported by the second-stage bootstrap, it generally means that this
360requirement has not been adhered to.
361.Sh BUGS
362The
363.Xr disklabel 5
364format used by this version of
365.Bx
366is quite
367different from that of other architectures.
368.Pp
369Due to space constraints, the keyboard probe initiated by the
370.Fl P
371option is simply a test that the BIOS has detected an
372.Dq extended
373keyboard.
374If an
375.Dq XT/AT
376keyboard (with no F11 and F12 keys, etc.) is attached, the probe will
377fail.
378