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 a Solaris OS 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:
The sequence for performing a PXE network boot of the 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 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
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 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 the client resides on
The Solaris 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:
PXEClient
BootSrvA: 192.168.100.0
BootFile: pxegrub
129.146.87.0
Router: 129.146.87.1
NISdmain: sunsoft.eng.sun.com
01000039FCEF
BootFile: 01000039FCEF
The actual DHCP response will be
BootSrvA: 192.168.100.0
BootFile: 01000039FCEF
Router: 129.146.87.1
NISdmain: sunsoft.eng.sun.com
Note that the BootFile in the client macro overrides the BootFile in the
class macro.
For more detailed information, see Preconfiguring System Configuration Information With the DHCP Service (Tasks) in Solaris Express Installation Guide: Network-Based Installations.
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 1 CD
or DVD, the system boots automatically.
Before You Begin
Before performing a network boot on an x86 based system with GRUB,
do the following:
See Chapter 4, Installing From the Network (Overview), in Solaris Express Installation Guide: Network-Based Installations for more information.
- 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.
To create the client macro from the command-line, type:
# dhtadm -[MA] -m client macro -d ":BootFile=client-macro:BootSrvA=svr-addr:"
- Reboot the system.
- Instruct the BIOS to boot from the network.
If your system uses a specific keystroke sequence to boot from the network, type the keystrokes when the BIOS screen is displayed.
If you need to manually modify the BIOS settings to boot from the network, type the keystroke sequence to access the BIOS setup utility. Then, modify the boot priority to boot from the network.
- When the GRUB menu is displayed, select the network installation image that you
want to install.