1.\" $NetBSD: installboot.8,v 1.73 2009/05/07 07:09:49 lukem 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 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). 445Use 446.Xr dumpfs 8 447to confirm the file system format is 448.Sy FFSv1 . 449. 450.It Pa /usr/mdec/bootxx_ffsv2 451Primary bootstrap for 452.Sy FFSv2 453file systems. 454Use 455.Xr dumpfs 8 456to confirm the file system format is 457.Sy FFSv2 . 458. 459.It Pa /usr/mdec/bootxx_lfsv1 460Primary bootstrap for 461.Sy LFSv1 462file systems. 463. 464.It Pa /usr/mdec/bootxx_lfsv2 465Primary bootstrap for 466.Sy LFSv2 467file systems 468(the default LFS version). 469. 470.It Pa /usr/mdec/bootxx_msdos 471Primary bootstrap for 472.Tn MS-DOS 473.Sy FAT 474file systems. 475. 476.It Pa /usr/mdec/bootxx_ustarfs 477Primary bootstrap for 478.Sy TARFS 479boot images. 480This is used by various install media. 481. 482.It Pa /usr/mdec/boot. Ns Sy MACHINE 483Secondary bootstrap for machine type 484.Sy MACHINE . 485This should be installed into the file system before 486.Nm 487is run. 488. 489.It Pa /usr/mdec/boot 490Synonym for 491.Pa /usr/mdec/boot. Ns Sy MACHINE 492. 493.It Pa /boot. Ns Sy MACHINE 494Installed copy of secondary bootstrap for machine type 495.Sy MACHINE . 496. 497.It Pa /boot 498Installed copy of secondary bootstrap. 499Searched for by the primary bootstrap if 500.Pa /boot. Ns Sy MACHINE 501is not found. 502. 503.El 504. 505.Ss Nx Ns Tn /macppc files 506. 507.Bl -tag -width /usr/mdec/bootxx_ustarfs 508. 509.It Pa /usr/mdec/bootxx 510.Nx Ns Tn /macppc 511primary bootstrap. 512. 513.It Pa /usr/mdec/ofwboot 514.Nx Ns Tn /macppc 515secondary bootstrap. 516. 517.It Pa /ofwboot 518Installed copy of 519.Nx Ns Tn /macppc 520secondary bootstrap. 521. 522.El 523. 524.Ss Nx Ns Tn /next68k files 525. 526.Bl -tag -width /usr/mdec/bootxx_ustarfs 527. 528.It Pa /usr/mdec/boot 529.Nx Ns Tn /next68k 530bootstrap. 531. 532.El 533. 534.Ss Nx Ns Tn /sparc64 files 535. 536.Bl -tag -width /usr/mdec/bootxx_ustarfs 537. 538.It Pa /usr/mdec/bootblk 539.Nx Ns Tn /sparc64 540primary bootstrap. 541. 542.It Pa /usr/mdec/ofwboot 543.Nx Ns Tn /sparc64 544secondary bootstrap. 545. 546.It Pa /ofwboot 547Installed copy of 548.Nx Ns Tn /sparc64 549secondary bootstrap. 550. 551.El 552. 553.Sh EXAMPLES 554. 555.Ss common 556Verbosely install the Berkeley Fast File System primary bootstrap on to disk 557.Sq sd0 : 558.Dl Ic installboot -v /dev/rsd0c /usr/mdec/bootxx_ffs 559Note: the 560.Dq whole disk 561partition (c on some ports, d on others) is used here, since the a partition 562probably is already opened (mounted as 563.Pa / ) , 564so 565.Nm 566would not be able to access it. 567.Pp 568Remove the primary bootstrap from disk 569.Sq sd1 : 570.Dl Ic installboot -c /dev/rsd1c 571. 572.Ss Nx Ns Tn /amiga 573Modify the command line to change the default from "netbsd -ASn2" to 574"netbsd -S": 575.Dl Ic installboot -m amiga -o command="netbsd -S" /dev/rsd0a /usr/mdec/bootxx_ffs 576. 577.Ss Nx Ns Tn /ews4800mips 578Install the System V Boot File System primary bootstrap on to disk 579.Sq sd0 , 580with the secondary bootstrap 581.Sq Pa /boot 582already present in the SysVBFS partition on the disk: 583.Dl Ic installboot /dev/rsd0c /usr/mdec/bootxx_bfs 584. 585.Ss Nx Ns Tn /i386 and Nx Ns Tn /amd64 586Install new boot blocks on an existing mounted root file system on 587.Sq wd0 , 588setting the timeout to five seconds, after copying a new secondary 589bootstrap: 590.Dl Ic cp /usr/mdec/boot /boot 591.Dl Ic installboot -v -o timeout=5 /dev/rwd0a /usr/mdec/bootxx_ffsv1 592. 593.Pp 594Create a bootable CD-ROM with an ISO9660 595file system for an i386 system with a serial console: 596.Dl Ic mkdir cdrom 597.Dl Ic cp sys/arch/i386/compile/mykernel/netbsd cdrom/netbsd 598.Dl Ic cp /usr/mdec/boot cdrom/boot 599.Dl Ic cp /usr/mdec/bootxx_cd9660 bootxx 600.Dl Ic installboot -o console=com0,speed=19200 -m i386 -e bootxx 601.Dl Ic makefs -t cd9660 -o 'bootimage=i386;bootxx,no-emul-boot' boot.iso \ 602 cdrom 603. 604.Pp 605Create a bootable floppy disk with an FFSv1 606file system for a small custom kernel (note: bigger kernels needing 607multiple disks are handled with the ustarfs file system): 608.Dl Ic newfs -s 1440k /dev/rfd0a 609.Bd -ragged -offset indent-two -compact 610.Em Note : 611Ignore the warnings that 612.Xr newfs 8 613displays; it can not write a disklabel, 614which is not a problem for a floppy disk. 615.Ed 616.Dl Ic mount /dev/fd0a /mnt 617.Dl Ic cp /usr/mdec/boot /mnt/boot 618.Dl Ic gzip -9 \*[Lt] sys/arch/i386/compile/mykernel/netbsd \*[Gt] /mnt/netbsd.gz 619.Dl Ic umount /mnt 620.Dl Ic installboot -v /dev/rfd0a /usr/mdec/bootxx_ffsv1 621. 622.Pp 623Create a bootable FAT file system on 624.Sq wd1a , 625which should have the same offset and size as a FAT primary partition 626in the Master Boot Record (MBR): 627.Dl Ic newfs_msdos -r 16 /dev/rwd1a 628.Bd -ragged -offset indent-two -compact 629.Em Notes : 630The 631.Fl r Ar 16 632is to reserve space for the primary bootstrap. 633.Xr newfs_msdos 8 634will display an 635.Dq MBR type 636such as 637.Ql 1 , 638.Ql 4 , 639or 640.Ql 6 ; 641the MBR partition type of the appropriate primary partition should be 642changed to this value. 643.Ed 644.Dl Ic mount -t msdos /dev/wd1a /mnt 645.Dl Ic cp /usr/mdec/boot /mnt/boot 646.Dl Ic cp path/to/kernel /mnt/netbsd 647.Dl Ic umount /mnt 648.Dl Ic installboot -t raw /dev/rwd1a /usr/mdec/bootxx_msdos 649.Pp 650Make the existing FAT16 filesystem on 651.Sq sd0e 652bootable. 653This can be used to make USB memory bootable provided it has 512 byte 654sectors and that the manufacturer correctly initialised the file system. 655.Dl Ic mount -t msdos /dev/sd0e /mnt 656.Dl Ic cp /usr/mdec/boot /mnt/boot 657.Dl Ic cp path/to/kernel /mnt/netbsd 658.Dl Ic umount /mnt 659.Dl Ic installboot /dev/rsd0e /usr/mdec/bootxx_fat16 660It may also be necessary to use 661.Nm fdisk 662to make the device itself bootable. 663. 664.Pp 665Switch the existing installed bootstrap to use a serial console without 666reinstalling or altering other options such as timeout. 667.Dl Ic installboot -e -o console=com0 /dev/rwd0a 668.Ss Nx Ns Tn /macppc 669Note the 670.Nm 671utility is only required for macppc machines with OpenFirmware version 2 672to boot. 673OpenFirmware 3 cannot load bootblocks specified in the Apple partition 674map. 675.Pp 676Install the Berkeley Fast File System primary bootstrap on to disk 677.Sq wd0 : 678.Dl Ic installboot /dev/rwd0c /usr/mdec/bootxx /ofwboot 679.Pp 680The secondary 681.Nx Ns Tn /macppc 682bootstrap is located in 683.Pa /usr/mdec/ofwboot . 684.Pp 685The primary bootstrap requires the raw 686.Pa ofwboot 687for the secondary bootstrap, not 688.Pa ofwboot.xcf , 689which is used for the OpenFirmware to load kernels. 690.Ss Nx Ns Tn /next68k 691Install the bootstrap on to disk 692.Sq sd0 : 693.Dl Ic installboot /dev/rsd0c /usr/mdec/boot 694.Pp 695. 696.Ss Nx Ns Tn /pmax 697Install the Berkeley Fast File System primary bootstrap on to disk 698.Sq sd0 : 699.Dl Ic installboot /dev/rsd0c /usr/mdec/bootxx_ffs 700.Pp 701.Nx Ns Tn /pmax 702requires that this file system starts at block 0 of the disk. 703.Pp 704Install the ISO 9660 primary bootstrap in the file 705.Pa /tmp/cd-image : 706.Dl Ic installboot -m pmax /tmp/cd-image /usr/mdec/bootxx_cd9660 707.Pp 708Make an ISO 9660 filesystem in the file 709.Pa /tmp/cd-image 710and install the ISO 9660 primary bootstrap in the filesystem, where the 711source directory for the ISO 9660 filesystem contains a kernel, the 712primary bootstrap 713.Pa bootxx_cd9660 714and the secondary bootstrap 715.Pa boot.pmax : 716.Dl Ic mkisofs -o /tmp/cd-image -a -l -v iso-source-dir 717.Dl ... 718.Dl 48 51 iso-source-dir/bootxx_cd9660 719.Dl ... 720.Dl Ic installboot -b `expr 48 \e* 4` /tmp/cd-image /usr/mdec/bootxx_cd9660 721. 722.Ss Nx Ns Tn /sparc 723Install the Berkeley Fast File System primary bootstrap on to disk 724.Sq sd0 , 725with the secondary bootstrap 726.Sq Pa /boot 727already present: 728.Dl Ic installboot /dev/rsd0c /usr/mdec/bootxx /boot 729. 730.Ss Nx Ns Tn /sparc64 731Install the Berkeley Fast File System primary bootstrap on to disk 732.Sq wd0 : 733.Dl Ic installboot /dev/rwd0c /usr/mdec/bootblk 734.Pp 735The secondary 736.Nx Ns Tn /sparc64 737bootstrap is located in 738.Pa /usr/mdec/ofwboot . 739. 740.Ss Nx Ns Tn /sun2 and Nx Ns Tn /sun3 741Install the Berkeley Fast File System primary bootstrap on to disk 742.Sq sd0 , 743with the secondary bootstrap 744.Sq Pa /boot 745already present: 746.Dl Ic installboot /dev/rsd0c /usr/mdec/bootxx /boot 747. 748.Sh SEE ALSO 749.Xr uname 3 , 750.Xr boot 8 , 751.Xr disklabel 8 , 752.Xr dumpfs 8 , 753.Xr fdisk 8 , 754.Xr pxeboot 8 755. 756.Sh HISTORY 757This implementation of 758.Nm 759appeared in 760.Nx 1.6 . 761. 762.Sh AUTHORS 763The machine independent portion of this implementation of 764.Nm 765was written by Luke Mewburn. 766The following people contributed to the various machine dependent 767back-ends: 768Simon Burge (pmax), 769Chris Demetriou (alpha), 770Matthew Fredette (sun2, sun3), 771Matthew Green (sparc64), 772Ross Harvey (alpha), 773Michael Hitch (amiga), 774Paul Kranenburg (sparc), 775David Laight (i386), 776Christian Limpach (next68k), 777Luke Mewburn (macppc), 778Matt Thomas (vax), 779Izumi Tsutsui (news68k, newsmips), 780and 781UCHIYAMA Yasushi (ews4800mips). 782. 783.Sh BUGS 784There are not currently primary bootstraps to support all file systems 785types which are capable of being the root file system. 786.Pp 787If a disk has been converted from 788.Sy FFS 789to 790.Sy RAID 791without the contents of the disk erased, then the original 792.Sy FFS 793installation may be auto-detected instead of the 794.Sy RAID 795installation. 796In this case, the 797.Fl t Ar raid 798option must be provided. 799. 800.Ss Nx Ns Tn /alpha 801The 802.Nx Ns Tn /alpha 803primary bootstrap program can only load the secondary bootstrap program 804from file systems starting at the beginning (block 0) of disks. 805Similarly, the secondary bootstrap program can only load kernels from 806file systems starting at the beginning of disks. 807.Pp 808The size of primary bootstrap programs is restricted to 7.5KB, even 809though some file systems (e.g., ISO 9660) are able to accommodate larger 810ones. 811. 812.Ss Nx Ns Tn /hp300 813The disk must have a boot partition large enough to hold the bootstrap code. 814Currently the primary bootstrap must be a LIF format file. 815. 816.Ss Nx Ns Tn /i386 and Nx Ns Tn /amd64 817The bootstrap must be installed in the 818.Nx 819partition that starts at the beginning of the mbr partition. 820If that is a valid filesystem and contains the 821.Pa /boot 822program then it will be used as the root filesystem, otherwise the 823.Sq a 824partition will be booted. 825.Pp 826The size of primary bootstrap programs is restricted to 8KB, even 827though some file systems (e.g., ISO 9660) are able to accommodate larger 828ones. 829. 830.Ss Nx Ns Tn /macppc 831Due to restrictions in 832.Nm 833and the secondary bootstrap implementation, file systems where kernels exist 834must start at the beginning of disks. 835.Pp 836Currently, 837.Nm 838doesn't recognize an existing Apple partition map on the disk 839and always writes a faked map to make disks bootable. 840.Pp 841The 842.Nx Ns Tn /macppc 843bootstrap program can't load kernels from 844.Sy FFSv2 845partitions. 846.Ss Nx Ns Tn /next68k 847The size of bootstrap programs is restricted to the free space before 848the file system at the beginning of the disk minus 8KB. 849. 850.Ss Nx Ns Tn /pmax 851The 852.Nx Ns Tn /pmax 853secondary bootstrap program can only load kernels from file 854systems starting at the beginning of disks. 855.Pp 856The size of primary bootstrap programs is restricted to 7.5KB, even 857though some file systems (e.g., ISO 9660) are able to accommodate larger 858ones. 859. 860.Ss Nx Ns Tn /sun2 and Nx Ns Tn /sun3 861The 862.Nx Ns Tn /sun2 863and 864.Nx Ns Tn /sun3 865secondary bootstrap program can only load kernels from file 866systems starting at the beginning of disks. 867. 868.Ss Nx Ns Tn /vax 869The 870.Nx Ns Tn /vax 871secondary bootstrap program can only load kernels from file systems 872starting at the beginning of disks. 873.Pp 874The size of primary bootstrap programs is restricted to 7.5KB, even 875though some file systems (e.g., ISO 9660) are able to accommodate larger 876ones. 877