System Administration Guide: Basic Administration
Previous Next

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:

  • IP address of the file server

  • Name of the boot file (pxegrub)

The sequence for performing a PXE network boot of the Solaris OS is as follows:

  1. The BIOS is configured to boot from a network interface.

  2. The BIOS sends a DHCP request.

  3. The DHCP server replies with the server address and the name of the boot file.

  4. The BIOS downloads pxegrub by using tftp and executes pxegrub.

  5. The system downloads a GRUB menu file by using tftp.

    This file displays the boot menu entries that are available.

  6. 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:

  • 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.

See Chapter 4, Installing From the Network (Overview), in Solaris Express Installation Guide: Network-Based Installations for more information.

  1. 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:"
  2. Reboot the system.
  3. 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.

  4. When the GRUB menu is displayed, select the network installation image that you want to install.
Previous Next