Skip Navigation Links | |
Exit Print View | |
Booting and Shutting Down Oracle Solaris 11.1 Systems Oracle Solaris 11.1 Information Library |
1. Booting and Shutting Down a System (Overview)
2. x86: Administering the GRand Unified Bootloader (Tasks)
3. Shutting Down a System (Tasks)
5. Booting a System From the Network (Tasks)
SPARC: Booting a System From the Network
SPARC: Requirements for Booting a System From the Network
SPARC: Setting Network Boot Arguments in the OpenBoot PROM
SPARC: How to Specify Network Boot Arguments in the OpenBoot PROM
SPARC: Setting Up an NVRAM Alias to Automatically Boot by Using DHCP
SPARC: How to Boot a System From the Network
x86: Booting a System From the Network
x86: Requirements for Booting a System From the Network
x86: Where the GRUB 2 PXE Boot Image Is Installed
x86: Booting Systems With UEFI and BIOS Firmware From the Network
The following information is provided in this section:
You might need to boot a system from the network for recovery purposes or to install Oracle Solaris. Any system can boot from the network, if a boot server is available. Any x86 based system whose network adapter firmware supports the Preboot eXecution Environment (PXE) specification can be used to boot Oracle Solaris. GRUB 2 is the PXE Network Bootstrap Program (NBP) that is then used to load the Oracle Solaris kernel and to proceed with the boot process.
To perform a network boot of an x86 based system to install Oracle Solaris or for recovery purposes, a DHCP server that is configured for PXE clients is required. A boot server that provides tftp service is also required.
The DHCP server supplies the information that the client needs to configure its network interface. If you are setting up an AI server, that server can also be the DHCP server. Or, you can set up a separate DHCP server. For more information about DHCP, see Part III, DHCP, in System Administration Guide: IP Services.
Keep the following information in mind when booting an x86 based system from the network:
The network configuration boot strategy that is used in Oracle Solaris is the Dynamic Host Configuration Protocol (DHCP).
Network booting of Oracle Solaris uses PXE firmware interfaces, which provides a mechanism to load a boot program over the network, independent of data storage devices (like hard disks) and installed operating systems. This firmware is responsible for loading the boot program, which is a specially constructed GRUB 2 image named pxegrub2 for systems with BIOS firmware and grub2netx86.efi for systems with 64-bit UEFI firmware. These files include the basic implementations of the Trivial File Transfer Protocol (TFTP), DHCP, User Datagram Protocol (UDP), Internet Protocol (IP), and a mini-driver that uses either the Universal Network Device Interface (UNDI) firmware interfaces (on BIOS systems) or the Simple Network Protocol (SNP) interface (on UEFI systems), to transfer packets across the network.
GRUB 2 uses a similar mechanism to GRUB Legacy PXE based network booting. The GRUB 2 PXE boot image contains the code and modules that are necessary for initializing GRUB, the file system modules that are required to boot from ZFS, as well a number of useful GRUB commands. Because loading modules over the network can add an unnecessary burden on network resources and can also expose the PXE boot process to failure where essential commands would not be available, modules that implement GRUB commands are built into the GRUB 2 PXE image, instead of remaining on the TFTP server.
The GRUB 2 boot image includes an embedded grub.cfg file that implements the same search algorithm that is present in GRUB Legacy. This algorithm searches in several places on the TFTP server for the grub.cfg file to use for booting the operating system.
Similar to GRUB Legacy, the GRUB 2 PXE boot image is installed in the TFTP server's root directory. The name of the PXE boot image depends on how the Automated Installer (AI) was configured. The appropriate DHCP BootFile macro contains the name of the PXE boot image, in accordance with the AI documentation.
The installadm command has been modified to unconditionally copy the BIOS and UEFI PXE images to the proper location on the TFTP server. In addition, the DHCP server must also be able to return the appropriate BootFile macro when the appropriate client system architecture tag is sent by the client system so that systems that are running UEFI firmware are given the correct GRUB 2 (UEFI) BootFile option during the PXE boot. This information is provided when the DHCP server sends the DHCPOFFER.
On an installed Oracle Solaris instance, the PXE boot images are stored in the /boot/grub/pxegrub2 file (for a BIOS-targeted image), and in the /boot/grub/grub2netx64.efi file (for a 64-bit UEFI-targeted image).
If you are booting a system from the network to install Oracle Solaris by using AI, see Installing Oracle Solaris 11.1 Systems for more information.
The DHCP server must be able to respond to the DHCP classes, PXEClient with the following information:
IP address of the file server
Name of the boot file, which is pxegrub2 for systems with BIOS firmware and grub2netx64.efi for systems with UEFI firmware.
The sequence for performing a PXE boot from the network is as follows:
The firmware is configured to boot from a network interface.
The firmware sends a DHCP request.
The DHCP server replies with the server address and the name of the boot file.
The firmware downloads pxegrub2 (or grub2netx64.efi) by using TFTP and then executes the GRUB 2 image.
The system downloads a GRUB configuration file by using TFTP.
This file displays the boot menu entries that are available.
After you select a menu entry, the system begins to load Oracle Solaris.
Similar to GRUB Legacy, the GRUB 2 PXE boot image is installed in the root directory of the TFTP server. The name of the boot image depends on how AI was configured. The appropriate DHCP BootFile option contains the name of the PXE boot image. Both BIOS and UEFI firmware types are supported automatically, if the AI image is GRUB 2 based. No special arguments are required.
On an installed Oracle Solaris instance, the PXE boot images for both a BIOS-targeted and UEFI-targeted images are stored in boot/grub, in the root directory of the AI image, for example, /export/auto_install/my_ai_service/boot/grub.
This directory contains the following contents:
bash-4.1$ cd grub/ bash-4.1$ ls grub_cfg_net i386-pc splash.jpg x86_64-efi grub2netx64.efi pxegrub2 unicode.pf2
There are firmware-specific subdirectories for GRUB 2 modules that are in the i386-pc directory for systems with BIOS firmware, and the x64_64-efi directory for 64-bit UEFI systems. However, files in these directories are not used during a network boot (modules are built into the GRUB 2 images and are not transferred over TFTP).
Note - If you are using a DHCP server that is not managed by the installadm command, you will need to configure the server in accordance with how the installadm command normally configures an accessible DHCP server, which is to set up the BootFile based on the client architecture identifier. As an aid to the administrator, the installadm command prints out the client arch boot file paths that should be set for manually configured DHCP servers.
Bootable network adapters include firmware that complies with the PXE specification. When activated, the PXE firmware performs a DHCP exchange on the network and downloads the BootFile macro that the DHCP server included in the DHCP response from the TFTP server that is also in the DHCP response. For Oracle Solaris, this BootFile macro, pxegrub2 (for systems with BIOS firmware), or grub2netx64.efi (for systems with 64-bit UEFI firmware), is GRUB 2. GRUB then proceeds to download the unix kernel, and the boot archive then loads both into memory. At which point, control is transferred to the Oracle Solaris kernel.
The network boot process on a system with UEFI firmware is very similar to the process on a system with BIOS firmware, with the exception that systems with UEFI firmware make a slightly different DHCP request, which provides the DHCP server with enough information to customize the BootFile macro that is returned for the UEFI system. Systems with UEFI firmware require UEFI boot applications, not BIOS-targeted boot programs, which would otherwise be returned as the BootFile macro from the DHCP server. After the UEFI boot application (GRUB) that is specified in the BootFile macro (grub2netx64.efi or the equivalent) is downloaded to the UEFI client, the boot loader (GRUB) is then executed. As with the BIOS network boot process, GRUB downloads the unix kernel and boot archive from the DHCP-specified TFTP server, then loads both into memory, and finally transfers control to the unix kernel.
Before You Begin
Perform any prerequisite tasks for setting up DHCP configuration. See x86: Requirements for Booting a System From the Network.
If you booting an x86 based system from the network to install Oracle Solaris, you must download the AI client image and create an install service based on that image. For prerequisites and further instructions, see Part III, Installing Using an Install Server, in Installing Oracle Solaris 11.1 Systems.
# reboot -p
On systems that have the Fast Reboot feature enabled by default, the firmware is bypassed during a reboot unless the -p option is specified. Specifying this option enables a standard (slow reboot) of the, so you can access the system's firmware utility to specify a PXE boot and installation. For more information about Fast Reboot, see Accelerating the Reboot Process.
For example, press F12 on a system with BIOS firmware to enter the setup utility.
The system will proceed to boot and install the selected Oracle Solaris installation image from the network. The installation can take several minutes to complete. For information about performing AI installations, see Part III, Installing Using an Install Server, in Installing Oracle Solaris 11.1 Systems.