xref: /netbsd/usr.sbin/installboot/installboot.8 (revision 6550d01e)
1.\"	$NetBSD: installboot.8,v 1.75 2010/11/21 21:07:46 jym Exp $
2.\"
3.\" Copyright (c) 2002-2009 The NetBSD Foundation, Inc.
4.\" All rights reserved.
5.\"
6.\" This code is derived from software contributed to The NetBSD Foundation
7.\" by Luke Mewburn of Wasabi Systems.
8.\"
9.\" Redistribution and use in source and binary forms, with or without
10.\" modification, are permitted provided that the following conditions
11.\" are met:
12.\" 1. Redistributions of source code must retain the above copyright
13.\"    notice, this list of conditions and the following disclaimer.
14.\" 2. Redistributions in binary form must reproduce the above copyright
15.\"    notice, this list of conditions and the following disclaimer in the
16.\"    documentation and/or other materials provided with the distribution.
17.\"
18.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28.\" POSSIBILITY OF SUCH DAMAGE.
29.\"
30.Dd January 11, 2010
31.Dt INSTALLBOOT 8
32.Os
33.Sh NAME
34.Nm installboot
35.Nd install disk bootstrap software
36.
37.Sh SYNOPSIS
38.Nm
39.Op Fl fnv
40.Op Fl B Ar s2bno
41.Op Fl b Ar s1bno
42.Op Fl m Ar machine
43.Op Fl o Ar options
44.Op Fl t Ar fstype
45.Ar filesystem
46.Ar primary
47.Op Ar secondary
48.Nm
49.Fl c
50.Op Fl fnv
51.Op Fl m Ar machine
52.Op Fl o Ar options
53.Op Fl t Ar fstype
54.Ar filesystem
55.Nm
56.Fl e
57.Op Fl fnv
58.Op Fl m Ar machine
59.Op Fl o Ar options
60.Ar bootstrap
61.
62.Sh DESCRIPTION
63The
64.Nm
65utility installs and removes
66.Nx
67disk bootstrap software into a file system.
68.Nm
69can install
70.Ar primary
71into
72.Ar filesystem ,
73or disable an existing bootstrap in
74.Ar filesystem .
75.Pp
76One some architectures the options of an existing installed bootstrap,
77or those of a bootstrap file can be changed.
78.Pp
79Generally,
80.Nx
81disk bootstrap software consists of two parts: a
82.Dq primary
83bootstrap program usually written into the disklabel area of the
84file system by
85.Nm ,
86and a
87.Dq secondary
88bootstrap program that usually resides as an ordinary file in the file system.
89.Pp
90When booting, the primary bootstrap program is loaded and invoked by
91the machine's PROM or BIOS.
92After receiving control of the system it loads and runs the secondary
93bootstrap program, which in turn loads and runs the kernel.
94The secondary bootstrap may allow control over various boot parameters
95passed to the kernel.
96.Pp
97Perform the following steps to make a file system bootable:
98.Bl -enum
99.It
100Copy the secondary bootstrap (usually
101.Pa /usr/mdec/boot. Ns Sy MACHINE
102or
103.Pa /usr/mdec/boot )
104to the root directory of the target file system.
105.Pp
106.
107.It
108Use
109.Nm
110to install the primary bootstrap program
111(usually
112.Pa /usr/mdec/bootxx_ Ns Sy FSTYPE )
113into
114.Ar filesystem .
115.Pp
116The following platforms do not require this step if the primary bootstrap
117already exists and the secondary bootstrap file is just being updated:
118.Sy alpha ,
119.Sy amd64 ,
120.Sy amiga ,
121.Sy i386 ,
122.Sy pmax ,
123.Sy sparc64 ,
124and
125.Sy vax .
126.Pp
127The following platform does not require the first step since a
128single bootstrap file is used.
129The single bootstrap is installed like the primary bootstrap on
130other platforms:
131.Sy next68k .
132.Pp
133.El
134.Pp
135The options and arguments recognized by
136.Nm
137are as follows:
138.
139.Bl -tag -width "optionsxxx"
140.
141.It Fl B Ar s2bno
142When hard-coding the blocks of
143.Ar secondary
144into
145.Ar primary ,
146start from block
147.Ar s2bno
148instead of trying to determine the block numbers occupied by
149.Ar secondary
150by examining
151.Ar filesystem .
152If this option is supplied,
153.Ar secondary
154should refer to an actual secondary bootstrap (rather than the
155file name of the one present in
156.Ar filesystem )
157so that its size can be determined.
158.
159.It Fl b Ar s1bno
160Install
161.Ar primary
162at block number
163.Ar s1bno
164instead of the default location for the machine and file system type.
165.Sy [ alpha ,
166.Sy pmax ,
167.Sy vax ]
168.
169.It Fl c
170Clear (remove) any existing bootstrap instead of installing one.
171.
172.It Fl e
173Edit the options of an existing bootstrap.
174This can be use to change the options in bootxx_xxxfs files,
175raw disk partitions, and the
176.Pa pxeboot_ia32.bin
177file.
178.Sy [ amd64 , i386 ]
179.
180.It Fl f
181Forces
182.Nm
183to ignore some errors.
184.
185.It Fl m Ar machine
186Use
187.Ar machine
188as the target machine type.
189The default machine is determined from
190.Xr uname 3
191and then
192.Ev MACHINE .
193The following machines are currently supported by
194.Nm :
195.Bd -ragged -offset indent
196.Sy alpha ,
197.Sy amd64 ,
198.Sy amiga ,
199.Sy ews4800mips ,
200.Sy hp300 ,
201.Sy hp700 ,
202.Sy i386 ,
203.Sy landisk ,
204.Sy macppc ,
205.Sy news68k ,
206.Sy newsmips ,
207.Sy next68k ,
208.Sy pmax ,
209.Sy sparc ,
210.Sy sparc64 ,
211.Sy sun2 ,
212.Sy sun3 ,
213.Sy vax ,
214.Sy x68k
215.Ed
216.
217.
218.It Fl n
219Do not write to
220.Ar filesystem .
221.
222.It Fl o Ar options
223Machine specific
224.Nm
225options, comma separated.
226.Pp
227Supported options are (with the machines for they are valid in brackets):
228.
229.Bl -tag -offset indent -width alphasum
230.
231.It Sy alphasum
232.Sy [ alpha ]
233Recalculate and restore the Alpha checksum.
234This is the default for
235.Nx Ns Tn /alpha .
236.
237.It Sy append
238.Sy [ alpha ,
239.Sy pmax ,
240.Sy vax ]
241Append
242.Ar primary
243to the end of
244.Ar filesystem ,
245which must be a regular file in this case.
246.
247.It Sy bootconf
248.Sy [ amd64 ,
249.Sy i386 ]
250(Don't) read a
251.Dq boot.cfg
252file.
253.
254.It Sy command=\*[Lt]boot command\*[Gt]
255.Sy [ amiga ]
256Modify the default boot command line.
257.
258.It Sy console=\*[Lt]console name\*[Gt]
259.Sy [ amd64 ,
260.Sy i386 ]
261Set the console device, \*[Lt]console name\*[Gt] must be one of:
262pc, com0, com1, com2, com3, com0kbd, com1kbd, com2kbd or com3kbd.
263.
264.It Sy ioaddr=\*[Lt]ioaddr\*[Gt]
265.Sy [ amd64 ,
266.Sy i386 ]
267Set the IO address to be used for the console serial port.
268Defaults to the IO address used by the system BIOS for the specified port.
269.
270.It Sy keymap=\*[Lt]keymap\*[Gt]
271.Sy [ amd64 ,
272.Sy i386 ]
273Set a boot time keyboard translation map.
274Each character in \*[Lt]keymap\*[Gt] will be replaced by the one following it.
275For example, an argument of
276.Dq zyz
277would swap the lowercase letters
278.Sq y
279and
280.Sq z .
281.
282.It Sy modules
283.Sy [ amd64 ,
284.Sy i386 ]
285(Don't) load kernel modules.
286.
287.It Sy password=\*[Lt]password\*[Gt]
288.Sy [ amd64 ,
289.Sy i386 ]
290Set the password which must be entered before the boot menu can be accessed.
291.
292.It Sy resetvideo
293.Sy [ amd64 ,
294.Sy i386 ]
295Reset the video before booting.
296.
297.It Sy speed=\*[Lt]baud rate\*[Gt]
298.Sy [ amd64 ,
299.Sy i386 ]
300Set the baud rate for the serial console.
301If a value of zero is specified, then the current baud rate (set by the
302BIOS) will be used.
303.
304.It Sy sunsum
305.Sy [ alpha ,
306.Sy pmax ,
307.Sy vax ]
308Recalculate and restore the Sun and
309.Nx Ns Tn /sparc
310compatible checksum.
311.Em Note :
312The existing
313.Nx Ns Tn /sparc
314disklabel should use no more than 4 partitions.
315.
316.It Sy timeout=\*[Lt]seconds\*[Gt]
317.Sy [ amd64 ,
318.Sy i386 ]
319Set the timeout before the automatic boot begins to the given number of seconds.
320.El
321.
322.It Fl t Ar fstype
323Use
324.Ar fstype
325as the type of
326.Ar filesystem .
327The default operation is to attempt to auto-detect this setting.
328The following file system types are currently supported by
329.Nm :
330.
331.Bl -tag -offset indent -width raid
332.
333.It Sy ffs
334.Bx
335Fast File System.
336.
337.It Sy raid
338Mirrored RAIDframe File System.
339.
340.It Sy raw
341.Sq Raw
342image.
343Note: if a platform needs to hard-code the block offset of the secondary
344bootstrap, it cannot be searched for on this file system type, and must
345be provided with
346.Fl B Ar s2bno .
347.El
348.
349.It Fl v
350Verbose operation.
351.
352.It Ar filesystem
353The path name of the device or file system image that
354.Nm
355is to operate on.
356It is not necessary for
357.Ar filesystem
358to be a currently mounted file system.
359.
360.It Ar primary
361The path name of the
362.Dq primary
363boot block to install.
364The path name must refer to a file in a file system that is currently
365mounted.
366.
367.It Ar secondary
368The path name of the
369.Dq secondary
370boot block, relative to the root of
371the file system in the device or image specified by the
372.Ar filesystem
373argument.
374Note that this may refer to a file in a file system that is not mounted.
375Most systems require
376.Ar secondary
377to be in the
378.Dq root
379directory of the file system, so the leading
380.Dq Pa /
381is not necessary on
382.Ar secondary .
383.Pp
384Only certain combinations of
385platform
386.Pq Fl m Ar machine
387and file system type
388.Pq Fl t Ar fstype
389require that the name of the secondary bootstrap is
390supplied as
391.Ar secondary ,
392so that information such as the disk block numbers occupied
393by the secondary bootstrap can be stored in the primary bootstrap.
394These are:
395.Bl -column "Platform" "File systems" -offset indent
396.It Sy "Platform" Ta Sy "File systems"
397.It macppc Ta ffs, raw
398.It news68k Ta ffs, raw
399.It newsmips Ta ffs, raw
400.It sparc Ta ffs, raid, raw
401.It sun2 Ta ffs, raw
402.It sun3 Ta ffs, raw
403.El
404.El
405.Pp
406.Nm
407exits 0 on success, and \*[Gt]0 if an error occurs.
408.
409.Sh ENVIRONMENT
410.Nm
411uses the following environment variables:
412.
413.Bl -tag -width "MACHINE"
414.
415.It Ev MACHINE
416Default value for
417.Ar machine ,
418overriding the result from
419.Xr uname 3 .
420.
421.El
422.
423.Sh FILES
424Most
425.Nx
426ports will contain variations of the following files:
427.Pp
428.Bl -tag -width /usr/mdec/bootxx_ustarfs
429.
430.It Pa /usr/mdec/bootxx_ Ns Sy FSTYPE
431Primary bootstrap for file system type
432.Sy FSTYPE .
433Installed into the bootstrap area of the file system by
434.Nm .
435.
436.It Pa /usr/mdec/bootxx_fat16
437Primary bootstrap for
438.Tn MS-DOS
439.Sy FAT16
440file systems.
441This differs from
442.Nm bootxx_msdos
443in that it doesn't require the filesystem to have been initialised with
444any
445.Ql reserved sectors .
446It also uses the information in the
447.Ql Boot Parameter Block
448to get the media and filesytem properties.
449.
450.It Pa /usr/mdec/bootxx_ffsv1
451Primary bootstrap for
452.Sy FFSv1
453file systems
454(the "traditional"
455.Nx
456file system).
457Use
458.Xr dumpfs 8
459to confirm the file system format is
460.Sy FFSv1 .
461.
462.It Pa /usr/mdec/bootxx_ffsv2
463Primary bootstrap for
464.Sy FFSv2
465file systems.
466Use
467.Xr dumpfs 8
468to confirm the file system format is
469.Sy FFSv2 .
470.
471.It Pa /usr/mdec/bootxx_lfsv1
472Primary bootstrap for
473.Sy LFSv1
474file systems.
475.
476.It Pa /usr/mdec/bootxx_lfsv2
477Primary bootstrap for
478.Sy LFSv2
479file systems
480(the default LFS version).
481.
482.It Pa /usr/mdec/bootxx_msdos
483Primary bootstrap for
484.Tn MS-DOS
485.Sy FAT
486file systems.
487.
488.It Pa /usr/mdec/bootxx_ustarfs
489Primary bootstrap for
490.Sy TARFS
491boot images.
492This is used by various install media.
493.
494.It Pa /usr/mdec/boot. Ns Sy MACHINE
495Secondary bootstrap for machine type
496.Sy MACHINE .
497This should be installed into the file system before
498.Nm
499is run.
500.
501.It Pa /usr/mdec/boot
502Synonym for
503.Pa /usr/mdec/boot. Ns Sy MACHINE
504.
505.It Pa /boot. Ns Sy MACHINE
506Installed copy of secondary bootstrap for machine type
507.Sy MACHINE .
508.
509.It Pa /boot
510Installed copy of secondary bootstrap.
511Searched for by the primary bootstrap if
512.Pa /boot. Ns Sy MACHINE
513is not found.
514.
515.El
516.
517.Ss Nx Ns Tn /macppc files
518.
519.Bl -tag -width /usr/mdec/bootxx_ustarfs
520.
521.It Pa /usr/mdec/bootxx
522.Nx Ns Tn /macppc
523primary bootstrap.
524.
525.It Pa /usr/mdec/ofwboot
526.Nx Ns Tn /macppc
527secondary bootstrap.
528.
529.It Pa /ofwboot
530Installed copy of
531.Nx Ns Tn /macppc
532secondary bootstrap.
533.
534.El
535.
536.Ss Nx Ns Tn /next68k files
537.
538.Bl -tag -width /usr/mdec/bootxx_ustarfs
539.
540.It Pa /usr/mdec/boot
541.Nx Ns Tn /next68k
542bootstrap.
543.
544.El
545.
546.Ss Nx Ns Tn /sparc64 files
547.
548.Bl -tag -width /usr/mdec/bootxx_ustarfs
549.
550.It Pa /usr/mdec/bootblk
551.Nx Ns Tn /sparc64
552primary bootstrap.
553.
554.It Pa /usr/mdec/ofwboot
555.Nx Ns Tn /sparc64
556secondary bootstrap.
557.
558.It Pa /ofwboot
559Installed copy of
560.Nx Ns Tn /sparc64
561secondary bootstrap.
562.
563.El
564.
565.Sh EXAMPLES
566.
567.Ss common
568Verbosely install the Berkeley Fast File System primary bootstrap on to disk
569.Sq sd0 :
570.Dl Ic installboot -v /dev/rsd0c /usr/mdec/bootxx_ffs
571Note: the
572.Dq whole disk
573partition (c on some ports, d on others) is used here, since the a partition
574probably is already opened (mounted as
575.Pa / ) ,
576so
577.Nm
578would not be able to access it.
579.Pp
580Remove the primary bootstrap from disk
581.Sq sd1 :
582.Dl Ic installboot -c /dev/rsd1c
583.
584.Ss Nx Ns Tn /amiga
585Modify the command line to change the default from "netbsd -ASn2" to
586"netbsd -S":
587.Dl Ic installboot -m amiga -o command="netbsd -S" /dev/rsd0a /usr/mdec/bootxx_ffs
588.
589.Ss Nx Ns Tn /ews4800mips
590Install the System V Boot File System primary bootstrap on to disk
591.Sq sd0 ,
592with the secondary bootstrap
593.Sq Pa /boot
594already present in the SysVBFS partition on the disk:
595.Dl Ic installboot /dev/rsd0c /usr/mdec/bootxx_bfs
596.
597.Ss Nx Ns Tn /i386 and Nx Ns Tn /amd64
598Install new boot blocks on an existing mounted root file system on
599.Sq wd0 ,
600setting the timeout to five seconds, after copying a new secondary
601bootstrap:
602.Dl Ic cp /usr/mdec/boot /boot
603.Dl Ic installboot -v -o timeout=5 /dev/rwd0a /usr/mdec/bootxx_ffsv1
604.
605.Pp
606Create a bootable CD-ROM with an ISO9660
607file system for an i386 system with a serial console:
608.Dl Ic mkdir cdrom
609.Dl Ic cp sys/arch/i386/compile/mykernel/netbsd cdrom/netbsd
610.Dl Ic cp /usr/mdec/boot cdrom/boot
611.Dl Ic cp /usr/mdec/bootxx_cd9660 bootxx
612.Dl Ic installboot -o console=com0,speed=19200 -m i386 -e bootxx
613.Dl Ic makefs -t cd9660 -o 'bootimage=i386;bootxx,no-emul-boot' boot.iso \
614	cdrom
615.
616.Pp
617Create a bootable floppy disk with an FFSv1
618file system for a small custom kernel (note: bigger kernels needing
619multiple disks are handled with the ustarfs file system):
620.Dl Ic newfs -s 1440k /dev/rfd0a
621.Bd -ragged -offset indent-two -compact
622.Em Note :
623Ignore the warnings that
624.Xr newfs 8
625displays; it can not write a disklabel,
626which is not a problem for a floppy disk.
627.Ed
628.Dl Ic mount /dev/fd0a /mnt
629.Dl Ic cp /usr/mdec/boot /mnt/boot
630.Dl Ic gzip -9 \*[Lt] sys/arch/i386/compile/mykernel/netbsd \*[Gt] /mnt/netbsd.gz
631.Dl Ic umount /mnt
632.Dl Ic installboot -v /dev/rfd0a /usr/mdec/bootxx_ffsv1
633.
634.Pp
635Create a bootable FAT file system on
636.Sq wd1a ,
637which should have the same offset and size as a FAT primary partition
638in the Master Boot Record (MBR):
639.Dl Ic newfs_msdos -r 16 /dev/rwd1a
640.Bd -ragged -offset indent-two -compact
641.Em Notes :
642The
643.Fl r Ar 16
644is to reserve space for the primary bootstrap.
645.Xr newfs_msdos 8
646will display an
647.Dq MBR type
648such as
649.Ql 1 ,
650.Ql 4 ,
651or
652.Ql 6 ;
653the MBR partition type of the appropriate primary partition should be
654changed to this value.
655.Ed
656.Dl Ic mount -t msdos /dev/wd1a /mnt
657.Dl Ic cp /usr/mdec/boot /mnt/boot
658.Dl Ic cp path/to/kernel /mnt/netbsd
659.Dl Ic umount /mnt
660.Dl Ic installboot -t raw /dev/rwd1a /usr/mdec/bootxx_msdos
661.Pp
662Make the existing FAT16 filesystem on
663.Sq sd0e
664bootable.
665This can be used to make USB memory bootable provided it has 512 byte
666sectors and that the manufacturer correctly initialised the file system.
667.Dl Ic mount -t msdos /dev/sd0e /mnt
668.Dl Ic cp /usr/mdec/boot /mnt/boot
669.Dl Ic cp path/to/kernel /mnt/netbsd
670.Dl Ic umount /mnt
671.Dl Ic installboot /dev/rsd0e /usr/mdec/bootxx_fat16
672It may also be necessary to use
673.Nm fdisk
674to make the device itself bootable.
675.
676.Pp
677Switch the existing installed bootstrap to use a serial console without
678reinstalling or altering other options such as timeout.
679.Dl Ic installboot -e -o console=com0 /dev/rwd0a
680.Ss Nx Ns Tn /macppc
681Note the
682.Nm
683utility is only required for macppc machines with OpenFirmware version 2
684to boot.
685OpenFirmware 3 cannot load bootblocks specified in the Apple partition
686map.
687.Pp
688Install the Berkeley Fast File System primary bootstrap on to disk
689.Sq wd0 :
690.Dl Ic installboot /dev/rwd0c /usr/mdec/bootxx /ofwboot
691.Pp
692The secondary
693.Nx Ns Tn /macppc
694bootstrap is located in
695.Pa /usr/mdec/ofwboot .
696.Pp
697The primary bootstrap requires the raw
698.Pa ofwboot
699for the secondary bootstrap, not
700.Pa ofwboot.xcf ,
701which is used for the OpenFirmware to load kernels.
702.Ss Nx Ns Tn /next68k
703Install the bootstrap on to disk
704.Sq sd0 :
705.Dl Ic installboot /dev/rsd0c /usr/mdec/boot
706.Pp
707.
708.Ss Nx Ns Tn /pmax
709Install the Berkeley Fast File System primary bootstrap on to disk
710.Sq sd0 :
711.Dl Ic installboot /dev/rsd0c /usr/mdec/bootxx_ffs
712.Pp
713.Nx Ns Tn /pmax
714requires that this file system starts at block 0 of the disk.
715.Pp
716Install the ISO 9660 primary bootstrap in the file
717.Pa /tmp/cd-image :
718.Dl Ic installboot -m pmax /tmp/cd-image /usr/mdec/bootxx_cd9660
719.Pp
720Make an ISO 9660 filesystem in the file
721.Pa /tmp/cd-image
722and install the ISO 9660 primary bootstrap in the filesystem, where the
723source directory for the ISO 9660 filesystem contains a kernel, the
724primary bootstrap
725.Pa bootxx_cd9660
726and the secondary bootstrap
727.Pa boot.pmax :
728.Dl Ic mkisofs -o /tmp/cd-image -a -l -v iso-source-dir
729.Dl ...
730.Dl 48 51 iso-source-dir/bootxx_cd9660
731.Dl ...
732.Dl Ic installboot -b `expr 48 \e* 4` /tmp/cd-image /usr/mdec/bootxx_cd9660
733.
734.Ss Nx Ns Tn /sparc
735Install the Berkeley Fast File System primary bootstrap on to disk
736.Sq sd0 ,
737with the secondary bootstrap
738.Sq Pa /boot
739already present:
740.Dl Ic installboot /dev/rsd0c /usr/mdec/bootxx /boot
741.
742.Ss Nx Ns Tn /sparc64
743Install the Berkeley Fast File System primary bootstrap on to disk
744.Sq wd0 :
745.Dl Ic installboot /dev/rwd0c /usr/mdec/bootblk
746.Pp
747The secondary
748.Nx Ns Tn /sparc64
749bootstrap is located in
750.Pa /usr/mdec/ofwboot .
751.
752.Ss Nx Ns Tn /sun2 and Nx Ns Tn /sun3
753Install the Berkeley Fast File System primary bootstrap on to disk
754.Sq sd0 ,
755with the secondary bootstrap
756.Sq Pa /boot
757already present:
758.Dl Ic installboot /dev/rsd0c /usr/mdec/bootxx /boot
759.
760.Sh SEE ALSO
761.Xr uname 3 ,
762.Xr boot 8 ,
763.Xr disklabel 8 ,
764.Xr dumpfs 8 ,
765.Xr fdisk 8 ,
766.Xr pxeboot 8
767.
768.Sh HISTORY
769This implementation of
770.Nm
771appeared in
772.Nx 1.6 .
773.
774.Sh AUTHORS
775The machine independent portion of this implementation of
776.Nm
777was written by Luke Mewburn.
778The following people contributed to the various machine dependent
779back-ends:
780Simon Burge (pmax),
781Chris Demetriou (alpha),
782Matthew Fredette (sun2, sun3),
783Matthew Green (sparc64),
784Ross Harvey (alpha),
785Michael Hitch (amiga),
786Paul Kranenburg (sparc),
787David Laight (i386),
788Christian Limpach (next68k),
789Luke Mewburn (macppc),
790Matt Thomas (vax),
791Izumi Tsutsui (news68k, newsmips),
792and
793UCHIYAMA Yasushi (ews4800mips).
794.
795.Sh BUGS
796There are not currently primary bootstraps to support all file systems
797types which are capable of being the root file system.
798.Pp
799If a disk has been converted from
800.Sy FFS
801to
802.Sy RAID
803without the contents of the disk erased, then the original
804.Sy FFS
805installation may be auto-detected instead of the
806.Sy RAID
807installation.
808In this case, the
809.Fl t Ar raid
810option must be provided.
811.
812.Ss Nx Ns Tn /alpha
813The
814.Nx Ns Tn /alpha
815primary bootstrap program can only load the secondary bootstrap program
816from file systems starting at the beginning (block 0) of disks.
817Similarly, the secondary bootstrap program can only load kernels from
818file systems starting at the beginning of disks.
819.Pp
820The size of primary bootstrap programs is restricted to 7.5KB, even
821though some file systems (e.g., ISO 9660) are able to accommodate larger
822ones.
823.
824.Ss Nx Ns Tn /hp300
825The disk must have a boot partition large enough to hold the bootstrap code.
826Currently the primary bootstrap must be a LIF format file.
827.
828.Ss Nx Ns Tn /i386 and Nx Ns Tn /amd64
829The bootstrap must be installed in the
830.Nx
831partition that starts at the beginning of the mbr partition.
832If that is a valid filesystem and contains the
833.Pa /boot
834program then it will be used as the root filesystem, otherwise the
835.Sq a
836partition will be booted.
837.Pp
838The size of primary bootstrap programs is restricted to 8KB, even
839though some file systems (e.g., ISO 9660) are able to accommodate larger
840ones.
841.
842.Ss Nx Ns Tn /macppc
843Due to restrictions in
844.Nm
845and the secondary bootstrap implementation, file systems where kernels exist
846must start at the beginning of disks.
847.Pp
848Currently,
849.Nm
850doesn't recognize an existing Apple partition map on the disk
851and always writes a faked map to make disks bootable.
852.Pp
853The
854.Nx Ns Tn /macppc
855bootstrap program can't load kernels from
856.Sy FFSv2
857partitions.
858.Ss Nx Ns Tn /next68k
859The size of bootstrap programs is restricted to the free space before
860the file system at the beginning of the disk minus 8KB.
861.
862.Ss Nx Ns Tn /pmax
863The
864.Nx Ns Tn /pmax
865secondary bootstrap program can only load kernels from file
866systems starting at the beginning of disks.
867.Pp
868The size of primary bootstrap programs is restricted to 7.5KB, even
869though some file systems (e.g., ISO 9660) are able to accommodate larger
870ones.
871.
872.Ss Nx Ns Tn /sun2 and Nx Ns Tn /sun3
873The
874.Nx Ns Tn /sun2
875and
876.Nx Ns Tn /sun3
877secondary bootstrap program can only load kernels from file
878systems starting at the beginning of disks.
879.
880.Ss Nx Ns Tn /vax
881The
882.Nx Ns Tn /vax
883secondary bootstrap program can only load kernels from file systems
884starting at the beginning of disks.
885.Pp
886The size of primary bootstrap programs is restricted to 7.5KB, even
887though some file systems (e.g., ISO 9660) are able to accommodate larger
888ones.
889