INSTALLBOOT(8) Maintenance Commands and Procedures INSTALLBOOT(8)
NAME
installboot - install bootloader in a disk partition
SYNOPSIS
SPARC
installboot [
-fn] [
-F zfs|
ufs|
hsfs] [
-u verstr]
bootblk raw-device installboot [
-enV]
-F zfs -i raw-device |
file installboot [
-n]
-F zfs -M raw-device attach-raw-device x86 installboot [
-fFmn] [
-b boot_dir] [
-u verstr] [
stage1 stage2] raw-
device
installboot [
-enV]
-i raw-device |
file installboot [
-n]
-M raw-device attach-raw-deviceDESCRIPTION
The
boot(8) boot program is loaded from disk and is responsible of
loading kernel and its support files from specific file system.
The SPARC systems have one boot loader program file to be installed on
the boot area of a disk slice. As the SPARC zfs boot loader is too
large to fit into boot area at the start of the disk slice,
installboot command will split the zfs boot loader between disk slice boot area,
and zfs pool boot area.
The x86 BIOS systems have boot loader implemented as three stages:
stage1 /boot/pmbr is used as master boot record (MBR) and partition
boot program.
stage2 /boot/gptzfsboot is responsible for loading files from file
system. The
stage2 on x86 systems is always installed to zfs
pool boot area, and therefore only zfs boot is supported.
installboot command will record the location of
stage2 to
stage1, which is always installed at least on partition (MBR or
GPT) boot area, making it possible to boot via chainload from
other boot loaders.
When
installboot command is used with the
-m option,
installboot installs the stage1 file on the master boot sector
of the disk as well.
stage3 /boot/loader is read from file system and executed by
stage2 and will provide boot loader user environment and is
responsible of loading and starting the operating system
kernel.
In case of GPT partitioning scheme, if the file system to boot
from is either UFS or PCFS, there must be
boot partition
defined to store stage2 boot program. This is needed because
UFS and PCFS do not have sufficient space reserved to store
boot programs.
The boot partition must use following GPT UUID:
6a82cb45-1dd2-11b2-99a6-080020736631
which is provided by "boot" tag in
format(8) partition menu.
The x86 UEFI systems load and start boot loader program from
/EFI/Boot directory of the EFI System Partition (ESP). The boot loader program
in ESP is named
bootx64.efi for AMD64 system and
bootia32.efi for i386
system. Note, only a 64-bit kernel is supported, even on i386 systems.
The
bootia32.efi boot program is only provided to support systems with
32-bit UEFI firmware, but which can support 64-bit mode.
The
bootx64.efi is copied from
/boot/loader64.efi and
bootia32.efi is
copied from
/boot/loader32.efi.
Options
The
installboot command accepts the following options:
-b boot_dir Provide path to the directory, where loader boot programs are
located.
installboot will automatically pick the needed
programs and will install to the specified disk device.
-h Prints short usage message.
-m Installs
stage1 on the master boot sector interactively. You
must use this option if OS is installed on an extended FDISK or
an EFI/GPT partition.
-f Suppresses interaction when overwriting the master boot sector
on x86. Force update on SPARC.
-n Dry run session. Will not write to disk.
-F On SPARC, specify file system type. On x86, inhibit version
check and enforce boot loader update.
-u verstr Specify custom version string. Can be used to add version on
non-versioned boot loader or change built in version string.
-i Print version string from installed boot loader or from
indicated file.
-e Print version string from installed boot loader without
description.
-V Print version string from installed boot loader with full
description.
-M Mirror boot loader from installed disk partition.
Operands
The
installboot command accepts the following operands:
bootblk The name of the SPARC boot loader code.
stage1 The name of the loader stage 1 file.
stage2 The name of the loader stage 2 file.
raw-device The name of the device onto which bootloader code is to be
installed. It must be a character device that is readable and
writable and part of boot pool.
FILES
/boot Directory where x86 loader files reside.
/usr/platform/platform name/lib/fs Directory where SPARC boot loader files reside.
EXAMPLES
Example 1 Installing zfs boot loader on SPARC disk slice
The following command installs zfs boot loader on SPARC system:
# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk \
/dev/rdsk/c0t0d0s0
Example 2 Installing boot loader on x86 system
The following command installs loader stage files and master
boot record:
# installboot -m /boot/pmbr /boot/gptzfsboot /dev/rdsk/c0t0d0s0
INTERFACE STABILITY
UncommittedSEE ALSO
attributes(7),
boot(8),
bootadm(8),
fdisk(8),
fmthard(8),
format(8),
kernel(8)WARNINGS
Installing
stage1 on the master boot sector (
-m option) overrides any
boot loader currently installed on the machine. The system will always
boot the current OS partition regardless of which fdisk partition is
active.
If version string indicates the source boot loader might be more
recent,
installboot will also verify md5 checksums to determine if
update is really necessary. If checksums match, the install will not
be performed.
illumos October 16, 2021 illumos