xref: /netbsd-src/usr.sbin/installboot/installboot.8 (revision 466a16a118933bd295a8a104f095714fadf9cf68)
1.\"	$NetBSD: installboot.8,v 1.72 2008/10/12 16:02:45 apb Exp $
2.\"
3.\" Copyright (c) 2002-2003 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 October 12, 2008
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 command=\*[Lt]boot command\*[Gt]
248.Sy [ amiga ]
249Modify the default boot command line.
250.
251.It Sy console=\*[Lt]console name\*[Gt]
252.Sy [ amd64 ,
253.Sy i386 ]
254Set the console device, \*[Lt]console name\*[Gt] must be one of:
255pc, com0, com1, com2, com3, com0kbd, com1kbd, com2kbd or com3kbd.
256.
257.It Sy ioaddr=\*[Lt]ioaddr\*[Gt]
258.Sy [ amd64 ,
259.Sy i386 ]
260Set the IO address to be used for the console serial port.
261Defaults to the IO address used by the system BIOS for the specified port.
262.
263.It Sy keymap=\*[Lt]keymap\*[Gt]
264.Sy [ amd64 ,
265.Sy i386 ]
266Set a boot time keyboard translation map.
267Each character in \*[Lt]keymap\*[Gt] will be replaced by the one following it.
268For example, an argument of
269.Dq zyz
270would swap the lowercase letters
271.Sq y
272and
273.Sq z .
274.
275.It Sy password=\*[Lt]password\*[Gt]
276.Sy [ amd64 ,
277.Sy i386 ]
278Set the password which must be entered before the boot menu can be accessed.
279.
280.It Sy resetvideo
281.Sy [ amd64 ,
282.Sy i386 ]
283Reset the video before booting.
284.
285.It Sy speed=\*[Lt]baud rate\*[Gt]
286.Sy [ amd64 ,
287.Sy i386 ]
288Set the baud rate for the serial console.
289If a value of zero is specified, then the current baud rate (set by the
290BIOS) will be used.
291.
292.It Sy sunsum
293.Sy [ alpha ,
294.Sy pmax ,
295.Sy vax ]
296Recalculate and restore the Sun and
297.Nx Ns Tn /sparc
298compatible checksum.
299.Em Note :
300The existing
301.Nx Ns Tn /sparc
302disklabel should use no more than 4 partitions.
303.
304.It Sy timeout=\*[Lt]seconds\*[Gt]
305.Sy [ amd64 ,
306.Sy i386 ]
307Set the timeout before the automatic boot begins to the given number of seconds.
308.El
309.
310.It Fl t Ar fstype
311Use
312.Ar fstype
313as the type of
314.Ar filesystem .
315The default operation is to attempt to auto-detect this setting.
316The following file system types are currently supported by
317.Nm :
318.
319.Bl -tag -offset indent -width raid
320.
321.It Sy ffs
322.Bx
323Fast File System.
324.
325.It Sy raid
326Mirrored RAIDframe File System.
327.
328.It Sy raw
329.Sq Raw
330image.
331Note: if a platform needs to hard-code the block offset of the secondary
332bootstrap, it cannot be searched for on this file system type, and must
333be provided with
334.Fl B Ar s2bno .
335.El
336.
337.It Fl v
338Verbose operation.
339.
340.It Ar filesystem
341The path name of the device or file system image that
342.Nm
343is to operate on.
344It is not necessary for
345.Ar filesystem
346to be a currently mounted file system.
347.
348.It Ar primary
349The path name of the
350.Dq primary
351boot block to install.
352The path name must refer to a file in a file system that is currently
353mounted.
354.
355.It Ar secondary
356The path name of the
357.Dq secondary
358boot block, relative to the root of
359the file system in the device or image specified by the
360.Ar filesystem
361argument.
362Note that this may refer to a file in a file system that is not mounted.
363Most systems require
364.Ar secondary
365to be in the
366.Dq root
367directory of the file system, so the leading
368.Dq Pa /
369is not necessary on
370.Ar secondary .
371.Pp
372Only certain combinations of
373platform
374.Pq Fl m Ar machine
375and file system type
376.Pq Fl t Ar fstype
377require that the name of the secondary bootstrap is
378supplied as
379.Ar secondary ,
380so that information such as the disk block numbers occupied
381by the secondary bootstrap can be stored in the primary bootstrap.
382These are:
383.Bl -column "Platform" "File systems" -offset indent
384.It Sy "Platform" Ta Sy "File systems"
385.It macppc Ta ffs, raw
386.It news68k Ta ffs, raw
387.It newsmips Ta ffs, raw
388.It sparc Ta ffs, raid, raw
389.It sun2 Ta ffs, raw
390.It sun3 Ta ffs, raw
391.El
392.El
393.Pp
394.Nm
395exits 0 on success, and \*[Gt]0 if an error occurs.
396.
397.Sh ENVIRONMENT
398.Nm
399uses the following environment variables:
400.
401.Bl -tag -width "MACHINE"
402.
403.It Ev MACHINE
404Default value for
405.Ar machine ,
406overriding the result from
407.Xr uname 3 .
408.
409.El
410.
411.Sh FILES
412Most
413.Nx
414ports will contain variations of the following files:
415.Pp
416.Bl -tag -width /usr/mdec/bootxx_ustarfs
417.
418.It Pa /usr/mdec/bootxx_ Ns Sy FSTYPE
419Primary bootstrap for file system type
420.Sy FSTYPE .
421Installed into the bootstrap area of the file system by
422.Nm .
423.
424.It Pa /usr/mdec/bootxx_fat16
425Primary bootstrap for
426.Tn MS-DOS
427.Sy FAT16
428file systems.
429This differs from
430.Nm bootxx_msdos
431in that it doesn't require the filesystem to have been initialised with
432any
433.Ql reserved sectors .
434It also uses the information in the
435.Ql Boot Parameter Block
436to get the media and filesytem properties.
437.
438.It Pa /usr/mdec/bootxx_ffsv1
439Primary bootstrap for
440.Sy FFSv1
441file systems
442(the "traditional"
443.Nx
444file system).
445.
446.It Pa /usr/mdec/bootxx_ffsv2
447Primary bootstrap for
448.Sy FFSv2
449file systems.
450.
451.It Pa /usr/mdec/bootxx_lfsv1
452Primary bootstrap for
453.Sy LFSv1
454file systems.
455.
456.It Pa /usr/mdec/bootxx_lfsv2
457Primary bootstrap for
458.Sy LFSv2
459file systems
460(the default LFS version).
461.
462.It Pa /usr/mdec/bootxx_msdos
463Primary bootstrap for
464.Tn MS-DOS
465.Sy FAT
466file systems.
467.
468.It Pa /usr/mdec/bootxx_ustarfs
469Primary bootstrap for
470.Sy TARFS
471boot images.
472This is used by various install media.
473.
474.It Pa /usr/mdec/boot. Ns Sy MACHINE
475Secondary bootstrap for machine type
476.Sy MACHINE .
477This should be installed into the file system before
478.Nm
479is run.
480.
481.It Pa /usr/mdec/boot
482Synonym for
483.Pa /usr/mdec/boot. Ns Sy MACHINE
484.
485.It Pa /boot. Ns Sy MACHINE
486Installed copy of secondary bootstrap for machine type
487.Sy MACHINE .
488.
489.It Pa /boot
490Installed copy of secondary bootstrap.
491Searched for by the primary bootstrap if
492.Pa /boot. Ns Sy MACHINE
493is not found.
494.
495.El
496.
497.Ss Nx Ns Tn /macppc files
498.
499.Bl -tag -width /usr/mdec/bootxx_ustarfs
500.
501.It Pa /usr/mdec/bootxx
502.Nx Ns Tn /macppc
503primary bootstrap.
504.
505.It Pa /usr/mdec/ofwboot
506.Nx Ns Tn /macppc
507secondary bootstrap.
508.
509.It Pa /ofwboot
510Installed copy of
511.Nx Ns Tn /macppc
512secondary bootstrap.
513.
514.El
515.
516.Ss Nx Ns Tn /next68k files
517.
518.Bl -tag -width /usr/mdec/bootxx_ustarfs
519.
520.It Pa /usr/mdec/boot
521.Nx Ns Tn /next68k
522bootstrap.
523.
524.El
525.
526.Ss Nx Ns Tn /sparc64 files
527.
528.Bl -tag -width /usr/mdec/bootxx_ustarfs
529.
530.It Pa /usr/mdec/bootblk
531.Nx Ns Tn /sparc64
532primary bootstrap.
533.
534.It Pa /usr/mdec/ofwboot
535.Nx Ns Tn /sparc64
536secondary bootstrap.
537.
538.It Pa /ofwboot
539Installed copy of
540.Nx Ns Tn /sparc64
541secondary bootstrap.
542.
543.El
544.
545.Sh EXAMPLES
546.
547.Ss common
548Verbosely install the Berkeley Fast File System primary bootstrap on to disk
549.Sq sd0 :
550.Dl Ic installboot -v /dev/rsd0c /usr/mdec/bootxx_ffs
551Note: the
552.Dq whole disk
553partition (c on some ports, d on others) is used here, since the a partition
554probably is already opened (mounted as
555.Pa / ) ,
556so
557.Nm
558would not be able to access it.
559.Pp
560Remove the primary bootstrap from disk
561.Sq sd1 :
562.Dl Ic installboot -c /dev/rsd1c
563.
564.Ss Nx Ns Tn /amiga
565Modify the command line to change the default from "netbsd -ASn2" to
566"netbsd -S":
567.Dl Ic installboot -m amiga -o command="netbsd -S" /dev/rsd0a /usr/mdec/bootxx_ffs
568.
569.Ss Nx Ns Tn /ews4800mips
570Install the System V Boot File System primary bootstrap on to disk
571.Sq sd0 ,
572with the secondary bootstrap
573.Sq Pa /boot
574already present in the SysVBFS partition on the disk:
575.Dl Ic installboot /dev/rsd0c /usr/mdec/bootxx_bfs
576.
577.Ss Nx Ns Tn /i386 and Nx Ns Tn /amd64
578Install new boot blocks on an existing mounted root file system on
579.Sq wd0 ,
580setting the timeout to five seconds, after copying a new secondary
581bootstrap:
582.Dl Ic cp /usr/mdec/boot /boot
583.Dl Ic installboot -v -o timeout=5 /dev/rwd0a /usr/mdec/bootxx_ffsv1
584.
585.Pp
586Create a bootable CD-ROM with an ISO9660
587file system for an i386 system with a serial console:
588.Dl Ic mkdir cdrom
589.Dl Ic cp sys/arch/i386/compile/mykernel/netbsd cdrom/netbsd
590.Dl Ic cp /usr/mdec/boot cdrom/boot
591.Dl Ic cp /usr/mdec/bootxx_cd9660 bootxx
592.Dl Ic installboot -o console=com0,speed=19200 -m i386 -e bootxx
593.Dl Ic makefs -t cd9660 -o 'bootimage=i386;bootxx,no-emul-boot' boot.iso \
594	cdrom
595.
596.Pp
597Create a bootable floppy disk with an FFSv1
598file system for a small custom kernel (note: bigger kernels needing
599multiple disks are handled with the ustarfs file system):
600.Dl Ic newfs -s 1440k /dev/rfd0a
601.Bd -ragged -offset indent-two -compact
602.Em Note :
603Ignore the warnings that
604.Xr newfs 8
605displays; it can not write a disklabel,
606which is not a problem for a floppy disk.
607.Ed
608.Dl Ic mount /dev/fd0a /mnt
609.Dl Ic cp /usr/mdec/boot /mnt/boot
610.Dl Ic gzip -9 \*[Lt] sys/arch/i386/compile/mykernel/netbsd \*[Gt] /mnt/netbsd.gz
611.Dl Ic umount /mnt
612.Dl Ic installboot -v /dev/rfd0a /usr/mdec/bootxx_ffsv1
613.
614.Pp
615Create a bootable FAT file system on
616.Sq wd1a ,
617which should have the same offset and size as a FAT primary partition
618in the Master Boot Record (MBR):
619.Dl Ic newfs_msdos -r 16 /dev/rwd1a
620.Bd -ragged -offset indent-two -compact
621.Em Notes :
622The
623.Fl r Ar 16
624is to reserve space for the primary bootstrap.
625.Xr newfs_msdos 8
626will display an
627.Dq MBR type
628such as
629.Ql 1 ,
630.Ql 4 ,
631or
632.Ql 6 ;
633the MBR partition type of the appropriate primary partition should be
634changed to this value.
635.Ed
636.Dl Ic mount -t msdos /dev/wd1a /mnt
637.Dl Ic cp /usr/mdec/boot /mnt/boot
638.Dl Ic cp path/to/kernel /mnt/netbsd
639.Dl Ic umount /mnt
640.Dl Ic installboot -t raw /dev/rwd1a /usr/mdec/bootxx_msdos
641.Pp
642Make the existing FAT16 filesystem on
643.Sq sd0e
644bootable.
645This can be used to make USB memory bootable provided it has 512 byte
646sectors and that the manufacturer correctly initialised the file system.
647.Dl Ic mount -t msdos /dev/sd0e /mnt
648.Dl Ic cp /usr/mdec/boot /mnt/boot
649.Dl Ic cp path/to/kernel /mnt/netbsd
650.Dl Ic umount /mnt
651.Dl Ic installboot /dev/rsd0e /usr/mdec/bootxx_fat16
652It may also be necessary to use
653.Nm fdisk
654to make the device itself bootable.
655.
656.Pp
657Switch the existing installed bootstrap to use a serial console without
658reinstalling or altering other options such as timeout.
659.Dl Ic installboot -e -o console=com0 /dev/rwd0a
660.Ss Nx Ns Tn /macppc
661Note the
662.Nm
663utility is only required for macppc machines with OpenFirmware version 2
664to boot.
665OpenFirmware 3 cannot load bootblocks specified in the Apple partition
666map.
667.Pp
668Install the Berkeley Fast File System primary bootstrap on to disk
669.Sq wd0 :
670.Dl Ic installboot /dev/rwd0c /usr/mdec/bootxx /ofwboot
671.Pp
672The secondary
673.Nx Ns Tn /macppc
674bootstrap is located in
675.Pa /usr/mdec/ofwboot .
676.Pp
677The primary bootstrap requires the raw
678.Pa ofwboot
679for the secondary bootstrap, not
680.Pa ofwboot.xcf ,
681which is used for the OpenFirmware to load kernels.
682.Ss Nx Ns Tn /next68k
683Install the bootstrap on to disk
684.Sq sd0 :
685.Dl Ic installboot /dev/rsd0c /usr/mdec/boot
686.Pp
687.
688.Ss Nx Ns Tn /pmax
689Install the Berkeley Fast File System primary bootstrap on to disk
690.Sq sd0 :
691.Dl Ic installboot /dev/rsd0c /usr/mdec/bootxx_ffs
692.Pp
693.Nx Ns Tn /pmax
694requires that this file system starts at block 0 of the disk.
695.Pp
696Install the ISO 9660 primary bootstrap in the file
697.Pa /tmp/cd-image :
698.Dl Ic installboot -m pmax /tmp/cd-image /usr/mdec/bootxx_cd9660
699.Pp
700Make an ISO 9660 filesystem in the file
701.Pa /tmp/cd-image
702and install the ISO 9660 primary bootstrap in the filesystem, where the
703source directory for the ISO 9660 filesystem contains a kernel, the
704primary bootstrap
705.Pa bootxx_cd9660
706and the secondary bootstrap
707.Pa boot.pmax :
708.Dl Ic mkisofs -o /tmp/cd-image -a -l -v iso-source-dir
709.Dl ...
710.Dl 48 51 iso-source-dir/bootxx_cd9660
711.Dl ...
712.Dl Ic installboot -b `expr 48 \e* 4` /tmp/cd-image /usr/mdec/bootxx_cd9660
713.
714.Ss Nx Ns Tn /sparc
715Install the Berkeley Fast File System primary bootstrap on to disk
716.Sq sd0 ,
717with the secondary bootstrap
718.Sq Pa /boot
719already present:
720.Dl Ic installboot /dev/rsd0c /usr/mdec/bootxx /boot
721.
722.Ss Nx Ns Tn /sparc64
723Install the Berkeley Fast File System primary bootstrap on to disk
724.Sq wd0 :
725.Dl Ic installboot /dev/rwd0c /usr/mdec/bootblk
726.Pp
727The secondary
728.Nx Ns Tn /sparc64
729bootstrap is located in
730.Pa /usr/mdec/ofwboot .
731.
732.Ss Nx Ns Tn /sun2 and Nx Ns Tn /sun3
733Install the Berkeley Fast File System primary bootstrap on to disk
734.Sq sd0 ,
735with the secondary bootstrap
736.Sq Pa /boot
737already present:
738.Dl Ic installboot /dev/rsd0c /usr/mdec/bootxx /boot
739.
740.Sh SEE ALSO
741.Xr uname 3 ,
742.Xr boot 8 ,
743.Xr disklabel 8 ,
744.Xr fdisk 8 ,
745.Xr pxeboot 8
746.
747.Sh HISTORY
748This implementation of
749.Nm
750appeared in
751.Nx 1.6 .
752.
753.Sh AUTHORS
754The machine independent portion of this implementation of
755.Nm
756was written by Luke Mewburn.
757The following people contributed to the various machine dependent
758back-ends:
759Simon Burge (pmax),
760Chris Demetriou (alpha),
761Matthew Fredette (sun2, sun3),
762Matthew Green (sparc64),
763Ross Harvey (alpha),
764Michael Hitch (amiga),
765Paul Kranenburg (sparc),
766David Laight (i386),
767Christian Limpach (next68k),
768Luke Mewburn (macppc),
769Matt Thomas (vax),
770Izumi Tsutsui (news68k, newsmips),
771and
772UCHIYAMA Yasushi (ews4800mips).
773.
774.Sh BUGS
775There are not currently primary bootstraps to support all file systems
776types which are capable of being the root file system.
777.Pp
778If a disk has been converted from
779.Sy FFS
780to
781.Sy RAID
782without the contents of the disk erased, then the original
783.Sy FFS
784installation may be auto-detected instead of the
785.Sy RAID
786installation.
787In this case, the
788.Fl t Ar raid
789option must be provided.
790.
791.Ss Nx Ns Tn /alpha
792The
793.Nx Ns Tn /alpha
794primary bootstrap program can only load the secondary bootstrap program
795from file systems starting at the beginning (block 0) of disks.
796Similarly, the secondary bootstrap program can only load kernels from
797file systems starting at the beginning of disks.
798.Pp
799The size of primary bootstrap programs is restricted to 7.5KB, even
800though some file systems (e.g., ISO 9660) are able to accommodate larger
801ones.
802.
803.Ss Nx Ns Tn /hp300
804The disk must have a boot partition large enough to hold the bootstrap code.
805Currently the primary bootstrap must be a LIF format file.
806.
807.Ss Nx Ns Tn /i386 and Nx Ns Tn /amd64
808The bootstrap must be installed in the
809.Nx
810partition that starts at the beginning of the mbr partition.
811If that is a valid filesystem and contains the
812.Pa /boot
813program then it will be used as the root filesystem, otherwise the
814.Sq a
815partition will be booted.
816.Pp
817The size of primary bootstrap programs is restricted to 8KB, even
818though some file systems (e.g., ISO 9660) are able to accommodate larger
819ones.
820.
821.Ss Nx Ns Tn /macppc
822Due to restrictions in
823.Nm
824and the secondary bootstrap implementation, file systems where kernels exist
825must start at the beginning of disks.
826.Pp
827Currently,
828.Nm
829doesn't recognize an existing Apple partition map on the disk
830and always writes a faked map to make disks bootable.
831.Pp
832The
833.Nx Ns Tn /macppc
834bootstrap program can't load kernels from
835.Sy FFSv2
836partitions.
837.Ss Nx Ns Tn /next68k
838The size of bootstrap programs is restricted to the free space before
839the file system at the beginning of the disk minus 8KB.
840.
841.Ss Nx Ns Tn /pmax
842The
843.Nx Ns Tn /pmax
844secondary bootstrap program can only load kernels from file
845systems starting at the beginning of disks.
846.Pp
847The size of primary bootstrap programs is restricted to 7.5KB, even
848though some file systems (e.g., ISO 9660) are able to accommodate larger
849ones.
850.
851.Ss Nx Ns Tn /sun2 and Nx Ns Tn /sun3
852The
853.Nx Ns Tn /sun2
854and
855.Nx Ns Tn /sun3
856secondary bootstrap program can only load kernels from file
857systems starting at the beginning of disks.
858.
859.Ss Nx Ns Tn /vax
860The
861.Nx Ns Tn /vax
862secondary bootstrap program can only load kernels from file systems
863starting at the beginning of disks.
864.Pp
865The size of primary bootstrap programs is restricted to 7.5KB, even
866though some file systems (e.g., ISO 9660) are able to accommodate larger
867ones.
868