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