| INSTALLBOOT(8) | System Manager's Manual | INSTALLBOOT(8) | 
installboot —
| installboot | [ -fnv] [-Bs2bno] [-bs1bno] [-mmachine] [-ooptions] [-tfstype] filesystem
      primary [secondary] | 
| installboot | -c[-fnv]
      [-mmachine]
      [-ooptions]
      [-tfstype]
      filesystem | 
| installboot | -e[-fnv]
      [-mmachine]
      [-ooptions]
      bootstrap | 
installboot utility installs and removes
  NetBSD disk bootstrap software into a file system.
  installboot can install primary
  into filesystem, or disable an existing bootstrap in
  filesystem.
On some architectures the options of an existing installed bootstrap, or those of a bootstrap file can be changed. Installing a new primary bootstrap will reset those options to default values.
Generally, NetBSD disk bootstrap software
    consists of two parts: a “primary” bootstrap program usually
    written into the disklabel area of the file system by
    installboot, and a “secondary”
    bootstrap program that usually resides as an ordinary file in the file
    system.
When booting, the primary bootstrap program is loaded and invoked by the machine's PROM or BIOS. After receiving control of the system it loads and runs the secondary bootstrap program, which in turn loads and runs the kernel. The secondary bootstrap may allow control over various boot parameters passed to the kernel.
Perform the following steps to make a file system bootable:
installboot to install the primary bootstrap
      program (usually
      /usr/mdec/bootxx_FSTYPE) into
      filesystem.
    The following platforms do not require this step if the primary bootstrap already exists and the secondary bootstrap file is just being updated: alpha, amd64, amiga, i386, pmax, sparc64, and vax.
The following platform does not require the first step since a single bootstrap file is used. The single bootstrap is installed like the primary bootstrap on other platforms: next68k.
Some platforms, typically embedded system platforms, are umbrella
    platforms that support many different individual board types, each with
    their own boot loader binary and installation procedure requirements. On
    these platforms, it may be necessary to provide specific board type
    information to installboot. Information about known
    boards and their requirements is loaded from a database at run-time.
    Sometimes these platforms also require the use of 3rd-party boot loader
    software, such as U-boot. To support these platforms,
    installboot scans known locations for these
    3rd-party boot loader packages for database overlays that contain additional
    board-specific boot loader installation information in a file called
    ‘installboot.plist’.
The following platforms have this requirement and utilize this database overlay feature: evbarm.
The options and arguments recognized by
    installboot are as follows:
-B
    s2bno-b
    s1bno-c-e-v and without -o, show
      the current options. [amd64,
    i386]-finstallboot to ignore some errors.-m
    machineMACHINE. The following machines are currently
      supported by installboot:
    -n-o
    optionsinstallboot options, comma
      separated.
    Supported options are (with the machines for they are valid in brackets):
installboot will attempt to guess the board
          type based on system information if run natively.-t
    fstypeinstallboot:
    -B s2bno.-vinstallboot is to operate on. It is not necessary
      for filesystem to be a currently mounted file
      system.Only certain combinations of platform
        (-m machine) and file
        system type (-t fstype)
        require that the name of the secondary bootstrap is supplied as
        secondary, so that information such as the disk
        block numbers occupied by the secondary bootstrap can be stored in the
        primary bootstrap. These are:
| Platform | File systems | 
| macppc | ffs, raw | 
| news68k | ffs, raw | 
| newsmips | ffs, raw | 
| sparc | ffs, raid, raw | 
| sun2 | ffs, raw | 
| sun3 | ffs, raw | 
installboot exits 0 on success, and >0
    if an error occurs.
installboot uses the following environment variables:
INSTALLBOOT_UBOOT_PATHSinstallboot
      installation overlays. If multiple overlays are found, overlays from paths
      closer to the front of the list take precedence. If not specified, the
      default path is /usr/pkg/share/u-boot. This
      environment variable is only used on platforms that support using
      U-boot: evbarm.MACHINEinstallboot.bootxx_msdos in that it doesn't
      require the filesystem to have been initialised with any
      ‘reserved sectors’. It also uses the
      information in the ‘Boot Parameter
      Block’ to get the media and filesytem properties. The
      ‘hidden sectors’ field of the BPB
      must be the offset of the partition in the disk. This can be set using the
      -b s1bno option.traditional’ file system prior to
      NetBSD 6.0). Use
      dumpfs(8) to confirm the
      file system format is FFSv1.installboot is run.installboot with no options will display a list of
  known boards. Using the verbose option will also display information about
  which U-boot package needs to be installed to support that
  board, and if the required U-boot package is installed, the
  path at which it is located.
Note that installboot does not
        currently support evbmips directly.
installboot -v
  /dev/rsd0c /usr/mdec/bootxx_ffsinstallboot would not
  be able to access it.
Remove the primary bootstrap from disk ‘sd1’:
installboot -c
  /dev/rsd1cinstallboot -m amiga
  -o command="netbsd -S" /dev/rsd0a
  /usr/mdec/bootxx_ffsinstallboot -m
  evbarm -o board=pine64,pinebook arm64.imgInstall / update the U-boot boot loader for the current running system on the eMMC device ‘ld0’ and display verbose information about the procedure:
installboot -v
  /dev/rld0cInstall a specific U-boot package for a BeagleBone Black into an image that will be written to an SDMMC card:
installboot -m
  evbarm -o board=ti,am335x-bone-black armv7.img
  	/path/to/experimental/u-boot/packageinstallboot
  /dev/rsd0p /usr/mdec/bootxx_bfscp /usr/mdec/boot
  /bootinstallboot -v -o
  timeout=5 /dev/rwd0a /usr/mdec/bootxx_ffsv2Create a bootable CD-ROM with an ISO 9660 file system for an i386 system with a serial console:
mkdir
  cdromcp
  sys/arch/i386/compile/mykernel/netbsd cdrom/netbsdcp /usr/mdec/boot
  cdrom/bootcp
  /usr/mdec/bootxx_cd9660 bootxxinstallboot -o
  console=com0,speed=19200 -m i386 -e bootxxmakefs -t cd9660 -o
  'bootimage=i386;bootxx,no-emul-boot' boot.iso 	cdromCreate a bootable floppy disk with an FFSv1 file system for a small custom kernel (note: bigger kernels needing multiple disks are handled with the ustarfs file system):
newfs -s 1440k
  /dev/rfd0amount /dev/fd0a
  /mntcp /usr/mdec/boot
  /mnt/bootgzip -9 <
  sys/arch/i386/compile/mykernel/netbsd > /mnt/netbsd.gzumount
  /mntinstallboot -v
  /dev/rfd0a /usr/mdec/bootxx_ffsv1Create a bootable FAT file system on ‘wd1a’, which should have the same offset and size as a FAT primary partition in the Master Boot Record (MBR):
newfs_msdos -r 16
  /dev/rwd1a-r 16 is to reserve space for
  the primary bootstrap.
  newfs_msdos(8) will display
  an “MBR type” such as ‘1’,
  ‘4’, or
  ‘6’; the MBR partition type of the
  appropriate primary partition should be changed to this value.mount -t msdos
  /dev/wd1a /mntcp /usr/mdec/boot
  /mnt/bootcp path/to/kernel
  /mnt/netbsdumount
  /mntinstallboot -t raw
  /dev/rwd1a /usr/mdec/bootxx_msdosMake the existing FAT16 filesystem on ‘sd0e’ bootable. This can be used to make USB memory bootable provided it has 512 byte sectors and that the manufacturer correctly initialised the file system.
mount -t msdos
  /dev/sd0e /mntcp /usr/mdec/boot
  /mnt/bootcp path/to/kernel
  /mnt/netbsdumount
  /mntinstallboot
  /dev/rsd0e /usr/mdec/bootxx_fat16fdisk to make the device
  itself bootable.
Switch the existing installed bootstrap to use a serial console without reinstalling or altering other options such as timeout.
installboot -e -o
  console=com0 /dev/rwd0ainstallboot utility is only required for macppc
  machines with OpenFirmware version 2 to boot. OpenFirmware 3 cannot load
  bootblocks specified in the Apple partition map.
Install the Berkeley Fast File System primary bootstrap on to disk ‘wd0’:
installboot
  /dev/rwd0c /usr/mdec/bootxx /ofwbootThe secondary NetBSD/macppc bootstrap is located in /usr/mdec/ofwboot.
The primary bootstrap requires the raw ofwboot for the secondary bootstrap, not ofwboot.xcf, which is used for the OpenFirmware to load kernels.
installboot
  /dev/rsd0c /usr/mdec/bootinstallboot
  /dev/rsd0c /usr/mdec/bootxx_ffsNetBSD/pmax requires that this file system starts at block 0 of the disk.
Install the ISO 9660 primary bootstrap in the file /tmp/cd-image:
installboot -m pmax
  /tmp/cd-image /usr/mdec/bootxx_cd9660Make an ISO 9660 filesystem in the file /tmp/cd-image and install the ISO 9660 primary bootstrap in the filesystem, where the source directory for the ISO 9660 filesystem contains a kernel, the primary bootstrap bootxx_cd9660 and the secondary bootstrap boot.pmax:
mkisofs -o
  /tmp/cd-image -a -l -v iso-source-dir...48 51
  iso-source-dir/bootxx_cd9660...installboot -b `expr
  48 \* 4` /tmp/cd-image /usr/mdec/bootxx_cd9660installboot
  /dev/rsd0c /usr/mdec/bootxx /bootinstallboot
  /dev/rsd0c /usr/mdec/bootblkThe secondary NetBSD/sparc64 bootstrap is located in /usr/mdec/ofwboot.
installboot
  /dev/rsd0c /usr/mdec/bootxx /bootinstallboot appeared in
  NetBSD 1.6.
installboot was written by Luke
  Mewburn. The following people contributed to the various machine
  dependent back-ends: Simon Burge (pmax),
  Chris Demetriou (alpha), Matthew
  Fredette (sun2, sun3), Matthew Green (sparc64),
  Ross Harvey (alpha), Michael
  Hitch (amiga), Paul Kranenburg (sparc),
  David Laight (i386), Christian
  Limpach (next68k), Luke Mewburn (macppc),
  Matt Thomas (vax), Izumi
  Tsutsui (news68k, newsmips), and UCHIYAMA
  Yasushi (ews4800mips).
If a disk has been converted from FFS to
    RAID without the contents of the disk erased, then the
    original FFS installation may be auto-detected instead of
    the RAID installation. In this case, the
    -t raid option must be
    provided.
The size of primary bootstrap programs is restricted to 7.5KB, even though some file systems (e.g., ISO 9660) are able to accommodate larger ones.
The size of primary bootstrap programs is restricted to 8KB, even though some file systems (e.g., ISO 9660) are able to accommodate larger ones.
installboot and the secondary
  bootstrap implementation, file systems where kernels exist must start at the
  beginning of disks.
Currently, installboot doesn't recognize
    an existing Apple partition map on the disk and always writes a faked map to
    make disks bootable.
The NetBSD/macppc bootstrap program can't load kernels from FFSv2 partitions.
The size of primary bootstrap programs is restricted to 7.5KB, even though some file systems (e.g., ISO 9660) are able to accommodate larger ones.
The size of primary bootstrap programs is restricted to 7.5KB, even though some file systems (e.g., ISO 9660) are able to accommodate larger ones.
| May 5, 2019 | NetBSD 9.4 |