Command Section
ZFSBOOT(8)              FreeBSD System Manager's Manual             ZFSBOOT(8)

     zfsboot - bootcode for ZFS on BIOS-based computers

     zfsboot is used on BIOS-based computers to boot from a filesystem in a
     ZFS pool.  zfsboot is installed in two parts on a disk or a partition
     used by a ZFS pool.  The first part, a single-sector starter boot block,
     is installed at the beginning of the disk or partition.  The second part,
     a main boot block, is installed at a special offset within the disk or
     partition.  Both areas are reserved by the ZFS on-disk specification for
     boot use.  If zfsboot is installed in a partition, then that partition
     should be made bootable using appropriate configuration and boot blocks
     described in boot(8).

     The zfsboot boot process is very similar to that of gptzfsboot(8).  One
     significant difference is that zfsboot does not currently support the GPT
     partitioning scheme.  Thus only whole disks and MBR partitions,
     traditionally referred to as slices, are probed for ZFS disk labels.  See
     the BUGS section in gptzfsboot(8) for some limitations of the MBR scheme

     zfsboot supports all the same prompt and configuration file arguments as

     /boot/zfsboot  boot code binary
     /boot.config   parameters for the boot block (optional)
     /boot/config   alternative parameters for the boot block (optional)

     zfsboot is typically installed using dd(1).  To install zfsboot on the
     ada0 drive:

           dd if=/boot/zfsboot of=/dev/ada0 count=1
           dd if=/boot/zfsboot of=/dev/ada0 iseek=1 oseek=1024

     If the drive is currently in use, the GEOM safety will prevent writes and
     must be disabled before running the above commands:

           sysctl kern.geom.debugflags=0x10

     zfsboot can also be installed in an MBR slice:

           gpart create -s mbr ada0
           gpart add -t freebsd ada0
           gpart create -s BSD ada0s1
           gpart bootcode -b /boot/boot0 ada0
           gpart set -a active -i 1 ada0
           dd if=/boot/zfsboot of=/dev/ada0s1 count=1
           dd if=/boot/zfsboot of=/dev/ada0s1 iseek=1 oseek=1024

     Note that commands to create and populate a pool are not shown in the
     example above.

     dd(1), boot.config(5), boot(8), gptzfsboot(8), loader(8), zfsloader(8),

     zfsboot appeared in FreeBSD 7.3.

     This manual page was written by Andriy Gapon <[email protected]>.

     Installing zfsboot with dd(1) is a hack.  ZFS needs a command to properly
     install zfsboot onto a ZFS-controlled disk or partition.

FreeBSD 11.1-RELEASE-p4       September 15, 2014       FreeBSD 11.1-RELEASE-p4
Command Section