System Administration Guide: Basic Administration

x86: Implementation of the findroot Command

All Solaris installation methods, including Solaris Live Upgrade, now use the findroot command for specifying which disk slice on an x86 based system to boot. This implementation supports booting systems with ZFS roots, as well as UFS roots. This information is located in the menu.lst file that is used by GRUB. Previously, the root command, root (hd0.0.a), was used to explicitly specify which disk slice to boot.

The installation methods include Solaris Live Upgrade, JumpStart, and the installation GUI program.

In addition to the findroot command, is the additional of a signature file on the slice, (mysign, 0, a), where mysign is the name of a signature file that is located in the /boot/grub/bootsign directory. When booting a system from a ZFS root, the ZFS GRUB plug-in looks for and tries to mount a ZFS file system in slice a of fdisk partition 0.

The name of the signature file varies, depending on the type of installation that was used. For more information about the naming convention that is used by the findroot command, see Naming Conventions That Are Used by the findroot Command.

Additional menu entries, which also use the findroot command, can be added to the GRUB menu after an installation or upgrade. For instructions, see x86: How to Add GRUB Menu Entries That Use the findroot Command.

Caution – Caution –

The boot signature must be unique. Do not use or remove system generated signatures or user signatures that are duplicated across multiple instances of the Solaris software. Doing so might result in booting an incorrect OS instance or prevent the system from booting.

Note that the root command can still be used in the menu.lst file in certain instances, for example to boot Windows. However, use of the root command in cases where the findroot command is preferred is discouraged.

Example 11–9 x86: Default menu.lst file on a System That Uses the findroot Command

The following example shows the format of a menu.lst file entry that implements the findroot command:

# title Solaris version
	findroot  (foosignpartition-no,slice-no,x) --x = Solaris root slice
	kernel$ /platform/i86pc/kernel/$ISADIR/unix
	module$ /platform/i86pc/$ISADIR/boot_archive

Example 11–10 x86: Default menu.lst file That Supports ZFS Boot Loader

This is an example of a menu.lst file on system that supports a ZFS boot loader. The information for booting from a ZFS root file system is automatically added to the file when a Solaris Live Upgrade is performed.

title be1
findroot (BE_be1,0,a)
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS
module$ /platform/i86pc/$ISADIR/boot_archive

title be1 failsafe
findroot (BE_be1,0,a)
bootfs rpool/ROOT/szboot_0508
kernel /boot/platform/i86pc/kernel/unix -s -B console=ttyb
module /boot/x86.miniroot-safe