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 system architecture tag is sent by the boot client 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.3 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.