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