Starting with the Solaris 10 10/08 release, changes in Solaris boot architecture provides many new features, including booting from different file system types, such as ZFS file systems. This chapter describes some of these changes and provides references to more information about booting. Also, this chapter provides an overview of GRUB based booting for x86 systems.
This chapter contains the following sections:
Starting with the Solaris 10 10/08 release, the Solaris SPARC bootstrap process has been redesigned to increase commonality with the Solaris x86 boot architecture. The improved Solaris boot architecture brings direct boot, ramdisk-based booting, and the ramdisk miniroot to the SPARC platform. These enabling technologies support the following functions:
Booting a system from additional file system types, such as a ZFS file system.
Booting a single miniroot for software installation from DVD, NFS, or HTTP
Additional improvements include significantly faster boot times, increased flexibility, and reduced maintenance requirements.
As part of this architecture redesign, the Solaris boot archives and the bootadm command, previously only available on the Solaris x86 platform, are now an integral part of the Solaris SPARC boot architecture.
Although the implementation of the Solaris SPARC boot has changed, no administrative procedures for booting a SPARC-based system have been impacted. Solaris installations have changed to include installing from a ZFS file system, but otherwise have not changed for the new boot architecture.
If your system has more than one OS installed on the system or more than one root boot environment in a ZFS root pool, you can boot from these boot environments for both SPARC and x86 platforms. The boot environments available for booting include boot environments created by Solaris Live Upgrade.
Starting with the Solaris 10 10/08 release for a SPARC based system, you can boot a ZFS root file system in a ZFS pool. For ZFS root pools, you can list the available boot environments with the boot command with the -L option. You can then choose a boot environment and use the OBP boot command with the -Z option to boot that boot environment. The -Z option is an alternative for the luactivate command that is also used to boot a new boot environment for a ZFS root pool. The luactivate command is the preferred method of switching boot environments. For a UFS file system, you continue to use the OpenBootTM PROM OBP as the primary administrative interface, with boot options selected by using OBP commands.
Starting with the Solaris 10 1/06 release for x86 based systems, a GRUB boot menu provides the interface for booting between different boot environments. Starting with the Solaris 10 10/08 release, this menu lists ZFS boot environments that are available for booting. If the default boot environment is a ZFS file system and the GRUB menu is displayed, you can let the default boot environment boot or choose another boot environment to boot. The GRUB menu is an alternative to using the luactivate command that is also used to boot a new boot environment for a ZFS root pool. The 88luactivate is the preferred method of switching boot environments.
On both SPARC and x86 based systems, each ZFS root pool has a dataset designated as the default root file system. If for SPARC, you type the boot command or for x86, you take the default from the GRUB menu, then this default root file system is booted.Table 7–1 Where to Find Information on Booting
For a high-level overview of booting features
For more detailed overview of booting features
x86: For information about modifying boot behavior such as editing the menu.lst file and locating the menu.lst file
For procedures for booting a ZFS file system
For procedures for managing a boot archive, such as locating the GRUB menu.lst file and using the bootadm command
GRUB, the open source boot loader, is the default boot loader in the Solaris OS.
The boot loader is the first software program that runs after you power on a system. After you power on an x86 based system, the Basic Input/Output System (BIOS) initializes the CPU, the memory, and the platform hardware. When the initialization phase has completed, the BIOS loads the boot loader from the configured boot device, and then transfers control of the system to the boot loader.
GRUB is an open source boot loader with a simple menu interface that includes boot options that are predefined in a configuration file. GRUB also has a command-line interface that is accessible from the menu interface for performing various boot commands. In the Solaris OS, the GRUB implementation is compliant with the Multiboot Specification. The specification is described in detail at http://www.gnu.org/software/grub/grub.html.
Because the Solaris kernel is fully compliant with the Multiboot Specification, you can boot a Solaris x86 based system by using GRUB. With GRUB, you can more easily boot and install various operating systems.
A key benefit of GRUB is that it is intuitive about file systems and kernel executable formats, which enables you to load an operating system without recording the physical position of the kernel on the disk. With GRUB based booting, the kernel is loaded by specifying its file name, and the drive, and the partition where the kernel resides. GRUB based booting replaces the Solaris Device Configuration Assistant and simplifies the booting process with a GRUB menu.
When you install the Solaris OS, two GRUB menu entries are installed on the system by default. The first entry is the Solaris OS entry. The second entry is the failsafe boot archive, which is to be used for system recovery. The Solaris GRUB menu entries are installed and updated automatically as part of the Solaris software installation and upgrade process. These entries are directly managed by the OS and should not be manually edited.
During a standard Solaris OS installation, GRUB is installed on the Solaris fdisk partition without modifying the system BIOS setting. If the OS is not on the BIOS boot disk, you need to do one of the following:
Modify the BIOS setting.
Use a boot manager to bootstrap to the Solaris partition. For more details, see your boot manager.
The preferred method is to install the Solaris OS on the boot disk. If multiple operating systems are installed on the machine, you can add entries to the menu.lst file. These entries are then displayed in the GRUB menu the next time you boot the system.
For additional information on multiple operating systems, see How Multiple Operating Systems Are Supported by GRUB in System Administration Guide: Basic Administration.
Performing a GRUB based network boot requires a DHCP server that is configured for PXE clients and an install server that provides tftp service. The DHCP server must be able to respond to the DHCP classes, PXEClient and GRUBClient. The DHCP response must contain the following information:
IP address of the file server
Name of the boot file (pxegrub)
rpc.bootparamd, which is usually a requirement on the server side for performing a network boot, is not required for a GRUB based network boot.
If no PXE or DHCP server is available, you can load GRUB from CD-ROM or local disk. You can then manually configure the network in GRUB and download the multiboot program and the boot archive from the file server.