This section describes the requirements and warnings for performing a GRUB based boot from the network.
Any system can boot from the network, if a boot server is available. You might need to boot a stand-alone system from the network for recovery purposes if the system cannot boot from the local disk. You can boot an x86 based system directly from a network that supports the PXE network boot protocol.
Note - The PXE network boot is available only for devices that implement the Intel Preboot Execution Environment specification.
The default network boot strategy that is used for a GRUB based PXE network boot is DHCP. For non-PXE devices, you can use either the DHCP or the RARP boot strategy. The strategy that you use depends on which type of boot server is available on your network. If no PXE or DHCP server is available, you can load GRUB from a diskette, a CD-ROM, or a local disk.
To perform a GRUB based network boot, 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.
The DHCP server must be able to respond to the DHCP classes, PXEClient and GRUBClient with the following information:
IP address of the file server
Name of the boot file (pxegrub)
The sequence for performing a PXE network boot of the Oracle Solaris OS is as follows:
The BIOS is configured to boot from a network interface.
The BIOS sends a DHCP request.
The DHCP server replies with the server address and the name of the boot file.
The BIOS downloads pxegrub by using tftp and executes pxegrub.
The system downloads a GRUB menu 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 the Oracle Solaris OS.
See How to Set Up a Network Configuration Server in System Administration Guide: IP Services for more information.
Running the add_install_client command creates the /tftpboot_01ethernet-address file. This file is linked to pxegrub and the/tftpboot/menu.lst.01ethernet-address file. The /tftpboot/menu.lst.01ethernet-address file is the GRUB menu file. If this file does not exist, then pxegrub reverts to using DHCP Option 150, if this option is specified, or the /tftpboot/boot/grub/menu.lst file. Typically, a single system is set up to serve both functions. In this instance, the add_install_client command sets up the /tftpboot file with the correct pxegrub menu file and the Oracle Solaris files. DHCP service is handled separately by using the add_install_client command. The setup only needs to be completed once per client. See x86: About DHCP Macros and x86: How to Perform a GRUB Based Boot From the Network for more information.
When you add clients with the add_install_client -d script on the install server, the script reports DHCP configuration information to standard output. You can use this information when you create the options and macros that are needed to pass network installation information to clients.
To install DHCP clients with a DHCP server over the network, you must create DHCP options. This information is needed to install the Oracle Solaris OS.
When a client sends a DHCP request, the server must have the following client information:
Client's ID, which is typically the Ethernet address
Class of the client request
Subnet on which the client resides
The class macro is based on a class string that is contained in the DHCP request. On x86 based systems, the BIOS already makes a DHCP request with the class PXEClient:Arch:00000:UNDI:002001. If a macro by this name is defined in the DHCP server configuration, then the macro content is sent to the x86 based clients.
The network macro is named by the IP address of the subnet that the client resides on. If the macro 188.8.131.52 is defined on the DHPC server, the macro content is sent to all clients on that subnet. The macro content is sent, regardless of the class of the request. If an option is defined in both the class macro and the network macro, the network macro takes precedence.
The client macro is named by the client type (01 for Ethernet) and the MAC address of the client, in uppercase letters. For a client with the Ethernet address 0:0:39:fc:f2:ef, the corresponding macro name is 01000039FCEF. Note the absence of colons in the client macro.
For example, for a client on the subnet 192.168.100.0, with the Ethernet address 0:0:39:fc:f2:ef, making a DHCP request of class PXEClient, the DHCP server has the following matching macro:
PXEClient BootSrvA: 192.168.100.0 BootFile: pxegrub 184.108.40.206 Router: 220.127.116.11 NISdmain: sunsoft.eng.sun.com 01000039FCEF BootFile: 01000039FCEF The actual DHCP response will be BootSrvA: 192.168.100.0 BootFile: 01000039FCEF Router: 18.104.22.168 NISdmain: sunsoft.eng.sun.com
Note that the BootFile in the client macro overrides the BootFile in the class macro.
To perform a GRUB based network boot, a DHCP server that is configured for PXE clients is required. A boot server that provides tftp service is also required. The DHCP server must be able respond to the DHCP classes, PXEClient and GRUBClient, to obtain the IP address of the file server and the boot file (pxegrub). By default, the menu file is /tftpboot/menu.lst.01ethernet-address. If this file does not exist, then pxegrub reverts to DHCP Option 150, if this option is specified, or the /tftpboot/boot/grub/menu.lst file.
If you are booting the system from the Solaris software media, the system boots automatically.
Before performing a network boot on an x86 based system with GRUB, do the following:
Run the appropriate commands on the installation server to enable the system to boot from the network.
Add the client system as an install client.
Note that you must have superuser privileges on the DHCP server to run the dhtadm command.
where svr-addr is the IP address of the server, and client-macro is named by the client's Ethernet type (01) and the MAC address, in uppercase letters. This number is also the name of the file that is used in the /tftpboot directory on the installation server.
Note - The notation for the client-macro should not contain any colons.
You can create the client macro from the DHCP GUI or from command-line interface.
To create the client macro from the command-line, type:
# dhtadm -[MA] -m client macro -d ":BootFile=client-macro:BootSrvA=svr-addr:"