System Administration Guide: Basic Administration

x86: Implementation of the findroot Command

All installation methods, including Oracle Solaris Live Upgrade, now use the findroot command for specifying which disk slice on an x86 based system to boot. This enhancement supports booting systems with Oracle Solaris 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 explicitly used to specify which disk slice to boot.

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

In addition to the findroot command, is 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 installation method that was used. For more information about the naming conventions that are used by the findroot command, see Naming Conventions That Are Used by the findroot Command.

Additional menu entries that 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 Oracle 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, do not use the root command in cases where the findroot command is the preferred choice.


Example 11–8 x86: Default menu.lst file on a System That Supports a UFS Boot Loader

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


title Solaris 10 s10x_nbu6wos_nightly X86
findroot (pool_rpool,0,a)
kernel$  /platform/i86pc/multiboot  -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive

title Solaris failsafe
findroot (pool_rpool,0,a)
kernel /boot/multiboot kernel/unix -s    -B console=ttyb
module /boot/x86.miniroot-safe


Example 11–9 x86: Default menu.lst file That Supports an Oracle Solaris ZFS Boot Loader

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


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

title be1 failsafe
findroot (BE_be1,0,a)
kernel /boot/multiboot kernel/unix -s    -B console=ttyb
module /boot/x86.miniroot-safe