Booting an x86 Based System From the Network

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.

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.

x86: About DHCP Macros

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 DHCP server forms a response. This response is based on the
following macros, which matches the client request:

class macro

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.

network macro

The network macro is named by the IP address of the subnet that the client resides on. If the macro 129.146.87.0 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.

IP macro

The IP macro is named by an IP address. This macro is rarely used.

client macro

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:

x86: How to Perform a GRUB Based Boot From the Network

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 You Begin

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.

On the DHCP server, create a client macro for the DHCP service with
the following two options:

BootSrvA: svr-addr

BootFile: client-macro

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.