PXE JumpStart

From Brandonhutchinson.com

(Difference between revisions)
Jump to: navigation, search
m (Configure DHCP Client)
Current revision (23:28, 6 February 2008) (edit) (undo)
(Configure DHCP Server)
 
(27 intermediate revisions not shown.)
Line 11: Line 11:
* Install server: mrdmmns001:/export/install/OS/Solaris_10_2006-11_ia
* Install server: mrdmmns001:/export/install/OS/Solaris_10_2006-11_ia
* Configuration server: mrpmmns001:/export/install
* Configuration server: mrpmmns001:/export/install
 +
* Path to sysidcfg: mrpmmns001:/export/install/Sysidcfg/Solaris_10/mrds
* Client MAC address: 0:14:4f:78:b7:14
* Client MAC address: 0:14:4f:78:b7:14
* Client IP address: 10.205.0.58
* Client IP address: 10.205.0.58
Line 23: Line 24:
* '''SUNWdhcsr''' BOOTP/DHCP Server Services, (Root)
* '''SUNWdhcsr''' BOOTP/DHCP Server Services, (Root)
* '''SUNWdhcsu''' BOOTP/DHCP Server Services, (Usr)
* '''SUNWdhcsu''' BOOTP/DHCP Server Services, (Usr)
- 
-
If you want to use a GUI to administer the DHCP server, install the following optional package:
 
- 
* '''SUNWdhcm''' DHCP Manager
* '''SUNWdhcm''' DHCP Manager
 +
* '''SUNWj5rt''' JDK 1.5 runtime environment (prerequisite for SUNWdhcsu and SUNWdhcm; needed to run dhcpconfig)
== Configure DHCP Server ==
== Configure DHCP Server ==
-
* Configure the DHCP server to store files in ASCII format in ''/var/dhcp''.
+
* Configure the DHCP server to store files in ASCII format in /var/dhcp.
# '''dhcpconfig -D -r SUNWfiles -p /var/dhcp'''
# '''dhcpconfig -D -r SUNWfiles -p /var/dhcp'''
Created DHCP configuration file.
Created DHCP configuration file.
Line 41: Line 40:
# '''pntadm -C 10.205.0.0'''
# '''pntadm -C 10.205.0.0'''
-
* Add the PXE client macros for ''i86pc'' clients to the DHCP configuration.
+
Note: If you are using CIDR, make sure that you are able to resolve the netmask (i.e., ''getent netmasks 10.205.0.0'' returns the correct netmask). Otherwise, ''pntadm'' will create DHCP table files for a classful network (i.e., 10.0.0.0/8), which will cause problems.
 +
 
 +
* Add the PXE client macros for i86pc clients to the DHCP configuration.
# '''dhtadm -A -s SrootOpt -d 'Vendor=SUNW.i86pc,1,ASCII,1,0''''
# '''dhtadm -A -s SrootOpt -d 'Vendor=SUNW.i86pc,1,ASCII,1,0''''
# '''dhtadm -A -s SrootIP4 -d 'Vendor=SUNW.i86pc,2,IP,1,1''''
# '''dhtadm -A -s SrootIP4 -d 'Vendor=SUNW.i86pc,2,IP,1,1''''
Line 72: Line 73:
'''-m''' macro (10.205.0.0) and subnet (10.205.0.0)
'''-m''' macro (10.205.0.0) and subnet (10.205.0.0)
-
== Configure JumpStart Client ==
+
== Remaining Steps ==
-
* Prepare JumpStart server for i86pc clients/PXE boot.
+
* Prepare the JumpStart server for i86pc clients/PXE boot.
-
# ./add_install_client -d SUNW.i86pc i86pc
+
# '''cd /export/install/OS/Solaris_10_2006-11_ia/Solaris_10/Tools'''
-
+
# '''./add_install_client -d SUNW.i86pc i86pc'''
 +
copying boot file to /tftpboot/pxegrub.I86PC.Solaris_10-1
 +
If not already configured, enable PXE boot by creating
If not already configured, enable PXE boot by creating
a macro named PXEClient:Arch:00000:UNDI:002001 with:
a macro named PXEClient:Arch:00000:UNDI:002001 with:
Line 82: Line 85:
Boot file (BootFile) : SUNW.i86pc
Boot file (BootFile) : SUNW.i86pc
-
* Create a ''PXEClient:Arch:00000:UNDI:002001'' macro in the DHCP server. This macro is sent "automagically" by the PXE BIOS. Its settings tell the PXE BIOS which boot server and boot file to use.
+
* Create a PXEClient:Arch:00000:UNDI:002001 macro in the DHCP server. This macro is sent "automagically" by the PXE BIOS. Its settings tell the PXE BIOS which boot server and boot file to use.
# '''dhtadm -A -m PXEClient:Arch:00000:UNDI:002001 -d ':BootFile="SUNW.i86pc":BootSrvA=10.205.0.30:''''
# '''dhtadm -A -m PXEClient:Arch:00000:UNDI:002001 -d ':BootFile="SUNW.i86pc":BootSrvA=10.205.0.30:''''
-
* Run ''add_install_client'' for the JumpStart client.
+
* Run "add_install_client" for the JumpStart client.
-
# '''./add_install_client -d -e 0:14:4f:46:24:b6 -s mrdmmns001:/export/install/OS/Solaris_10_2006-11_ia/ -b "console=ttya" -c mrdmmns001:/export/install -p mrdmmns001:/export/install/Sysidcfg/Solaris_10/mrds/ i86pc'''
+
# '''./add_install_client -d -e 0:14:4f:46:24:b6 -s mrdmmns001:/export/install/OS/Solaris_10_2006-11_ia \'''
-
 
+
> '''-b "console=ttya" -c mrdmmns001:/export/install -p mrdmmns001:/export/install/Sysidcfg/Solaris_10/mrds i86pc'''
 +
If not already configured, enable PXE boot by creating
If not already configured, enable PXE boot by creating
a macro named 0100144F4624B6 with:
a macro named 0100144F4624B6 with:
Line 93: Line 97:
Boot file (BootFile) : 0100144F4624B6
Boot file (BootFile) : 0100144F4624B6
-
Important note: The ''console=ttya'' boot option was needed for this x4600 PXE JumpStart.
+
Important note: The "console=ttya" boot option was needed for this x4600 PXE JumpStart.
-
* Create a ''0100144F4624B6'' macro in the DHCP server. This macro allows the JumpStart client to boot from its custom GRUB ''menu.lst'' which is configured for the JumpStart values specified in ''add_install_client''.
+
* Create a 0100144F4624B6 macro in the DHCP server. This macro allows the JumpStart client to use the values specified by "add_install_client" above (see /tftpboot/menu.lst.0100144F4624B6).
 +
# '''dhtadm -A -m 0100144F4624B6 -d ':BootFile="0100144F4624B6":BootSrvA=10.205.0.30:''''
-
*** CRITICAL ***
+
* Refresh the dhcp-server service. The above DHCP server changes will not take effect until this service is refreshed.
-
# svcadm refresh dhcp-server
+
# '''svcadm refresh dhcp-server'''
-
# ./add_install_client -d -e 0:14:4f:46:24:b6 -s mrdmmns001:/export/install/OS/Solaris_10_2006-11_ia/ -b "console=ttya" -c mrdmmns001:/export/install -p mrdmmns001:/export/install/Sysidcfg/Solaris_10/mrds/ i86pc
+
* Login to the JumpStart client console and boot the system. Press '''Ctrl-N''' (F12 may not work) during the boot process to perform a PXE boot. The GRUB boot menu should only list one option, '''Solaris_10 Jumpstart'''. After the system begins booting, select '''Custom JumpStart'''.
-
 
+
-
 
+
-
 
+
-
* Prepare the JumpStart client
+
-
dhtadm -A -m 0100144F4624B6 -d ':BootFile="0100144F4624B6":BootSrvA=10.205.0.30:'
+
-
 
+
-
 
+
-
 
+
-
 
+
-
 
+
-
Configuring devices.
+
-
|
+
1. Solaris Interactive (default)
1. Solaris Interactive (default)
Line 120: Line 113:
5. Apply driver updates
5. Apply driver updates
6. Single user shell
6. Single user shell
 +
 +
Enter the number of your choice.
 +
Selected: '''2'''
-
Enter the number of your choice.
+
== Links ==
-
Selected: 2
+
-
 
+
-
 
+
-
 
+
-
 
+
-
 
+
-
 
+
-
 
+
-
 
+
-
 
+
-
 
+
-
If not already configured, enable PXE boot by creating
+
-
a macro named 0100144F4624B6 with:
+
-
Boot server IP (BootSrvA) : 10.205.0.30
+
-
Boot file (BootFile) : 0100144F4624B6
+
-
 
+
-
 
+
-
bash-3.00# ./add_install_client -d -e 0:14:4f:78:b7:14 -s mrdmmns001:/export/install/OS/Solaris_10_2006-11_ia/ -b "console=ttya" -c mrdmmns001:/export/install -p mrdmmns001:/export/install/Sysidcfg/Solaris_10/mrds/ i86pc
+
-
 
+
-
If not already configured, enable PXE boot by creating
+
-
a macro named 0100144F78B714 with:
+
-
Boot server IP (BootSrvA) : 10.205.0.30
+
-
Boot file (BootFile) : 0100144F78B714
+
-
 
+
-
 
+
-
http://www2.petervg.nl/cgi-bin/docs.cgi?a=read&doc=218
+
* [http://www2.petervg.nl/cgi-bin/docs.cgi?a=read&doc=218 Configure a jumpstart server for PXE clients (X86/X84)]
 +
* [http://www.softorchestra.com/pxe/ PXE/Jumpstart server configuration]
 +
* [http://www.loni.ucla.edu/twiki/bin/view/Infrastructure/JumpStartDHCPServer?skin=plain How to Configure a DHCP + JumpStart Server]
 +
* [http://solaris.reys.net/english/archives/63-Solaris-PXEDHCP.html HOW-TO: Installing Solaris with PXE/DHCP]
 +
* [http://www.riddleware.com/solx86/PXE/pxe-netboot.html Setting up PXE netboot for x86 clients]

Current revision

Contents

Overview

In this example, I use a Solaris 10 SPARC JumpStart server to build a Sun Fire X4600 client. I assume the following:

  • The JumpStart server is already configured (e.g., TFTP is running)
  • The Solaris 10 x86 media has been copied to the JumpStart server
  • The profile/class file and system identification file (i.e. sysidcfg) for the JumpStart client are already configured

This example uses the following values:

  • Boot server: mrdmmns001
  • Install server: mrdmmns001:/export/install/OS/Solaris_10_2006-11_ia
  • Configuration server: mrpmmns001:/export/install
  • Path to sysidcfg: mrpmmns001:/export/install/Sysidcfg/Solaris_10/mrds
  • Client MAC address: 0:14:4f:78:b7:14
  • Client IP address: 10.205.0.58
  • Client hostname: mrpmmap011
  • DHCP server: mrdmmns001 (same as the JumpStart server)
  • DHCP network: 10.205.0.0

Install DHCP Server

A DHCP server is required for PXE JumpStart. To install the Solaris DHCP server, install the following packages on the JumpStart server:

  • SUNWdhcsr BOOTP/DHCP Server Services, (Root)
  • SUNWdhcsu BOOTP/DHCP Server Services, (Usr)
  • SUNWdhcm DHCP Manager
  • SUNWj5rt JDK 1.5 runtime environment (prerequisite for SUNWdhcsu and SUNWdhcm; needed to run dhcpconfig)

Configure DHCP Server

  • Configure the DHCP server to store files in ASCII format in /var/dhcp.
# dhcpconfig -D -r SUNWfiles -p /var/dhcp
Created DHCP configuration file.
Created dhcptab.
Added "Locale" macro to dhcptab.
Added server macro to dhcptab - mrdmmns001.
DHCP server started.
  • Configure the DHCP server to serve the appropriate network(s).
# pntadm -C 10.205.0.0

Note: If you are using CIDR, make sure that you are able to resolve the netmask (i.e., getent netmasks 10.205.0.0 returns the correct netmask). Otherwise, pntadm will create DHCP table files for a classful network (i.e., 10.0.0.0/8), which will cause problems.

  • Add the PXE client macros for i86pc clients to the DHCP configuration.
# dhtadm -A -s SrootOpt -d 'Vendor=SUNW.i86pc,1,ASCII,1,0'
# dhtadm -A -s SrootIP4 -d 'Vendor=SUNW.i86pc,2,IP,1,1'
# dhtadm -A -s SrootNM -d 'Vendor=SUNW.i86pc,3,ASCII,1,0'
# dhtadm -A -s SrootPTH -d 'Vendor=SUNW.i86pc,4,ASCII,1,0'
# dhtadm -A -s SswapIP4 -d 'Vendor=SUNW.i86pc,5,IP,1,0'
# dhtadm -A -s SswapPTH -d 'Vendor=SUNW.i86pc,6,ASCII,1,0'
# dhtadm -A -s SbootFIL -d 'Vendor=SUNW.i86pc,7,ASCII,1,0'
# dhtadm -A -s Stz -d 'Vendor=SUNW.i86pc,8,ASCII,1,0'
# dhtadm -A -s SbootRS -d 'Vendor=SUNW.i86pc,9,NUMBER,2,1'
# dhtadm -A -s SinstIP4 -d 'Vendor=SUNW.i86pc,10,IP,1,1'
# dhtadm -A -s SinstNM -d 'Vendor=SUNW.i86pc,11,ASCII,1,0'
# dhtadm -A -s SinstPTH -d 'Vendor=SUNW.i86pc,12,ASCII,1,0'
# dhtadm -A -s SsysidCF -d 'Vendor=SUNW.i86pc,13,ASCII,1,0'
# dhtadm -A -s SjumpsCF -d 'Vendor=SUNW.i86pc,14,ASCII,1,0'
# dhtadm -A -s Sterm -d 'Vendor=SUNW.i86pc,15,ASCII,1,0'
# dhtadm -A -s SbootURI -d 'Vendor=SUNW.i86pc,16,ASCII,1,0'

Configure DHCP Client

  • Configure the DHCP client mrpmmap011 with MAC address 0:14:4f:46:24:b6 to be permanently assigned 10.205.0.62 by the DHCP server.
# pntadm -A 10.205.0.58 -c mrpmmap011 -f PERMANENT -i 0100144F4624B6 -m 10.205.0.0 10.205.0.0

Key:

-A IP address of client
-c hostname of client
-f PERMANENT (static) or DYNAMIC IP
-i MAC address (precede with 01, must use capital letters)
-m macro (10.205.0.0) and subnet (10.205.0.0)

Remaining Steps

  • Prepare the JumpStart server for i86pc clients/PXE boot.
# cd /export/install/OS/Solaris_10_2006-11_ia/Solaris_10/Tools
# ./add_install_client -d SUNW.i86pc i86pc
copying boot file to /tftpboot/pxegrub.I86PC.Solaris_10-1
 
If not already configured, enable PXE boot by creating
a macro named PXEClient:Arch:00000:UNDI:002001 with:
  Boot server IP (BootSrvA) : 10.205.0.30
  Boot file      (BootFile) : SUNW.i86pc
  • Create a PXEClient:Arch:00000:UNDI:002001 macro in the DHCP server. This macro is sent "automagically" by the PXE BIOS. Its settings tell the PXE BIOS which boot server and boot file to use.
# dhtadm -A -m PXEClient:Arch:00000:UNDI:002001 -d ':BootFile="SUNW.i86pc":BootSrvA=10.205.0.30:'
  • Run "add_install_client" for the JumpStart client.
# ./add_install_client -d -e 0:14:4f:46:24:b6 -s mrdmmns001:/export/install/OS/Solaris_10_2006-11_ia \
> -b "console=ttya" -c mrdmmns001:/export/install -p mrdmmns001:/export/install/Sysidcfg/Solaris_10/mrds i86pc

If not already configured, enable PXE boot by creating
a macro named 0100144F4624B6 with:
  Boot server IP (BootSrvA) : 10.205.0.30
  Boot file      (BootFile) : 0100144F4624B6

Important note: The "console=ttya" boot option was needed for this x4600 PXE JumpStart.

  • Create a 0100144F4624B6 macro in the DHCP server. This macro allows the JumpStart client to use the values specified by "add_install_client" above (see /tftpboot/menu.lst.0100144F4624B6).
# dhtadm -A -m 0100144F4624B6 -d ':BootFile="0100144F4624B6":BootSrvA=10.205.0.30:'
  • Refresh the dhcp-server service. The above DHCP server changes will not take effect until this service is refreshed.
# svcadm refresh dhcp-server
  • Login to the JumpStart client console and boot the system. Press Ctrl-N (F12 may not work) during the boot process to perform a PXE boot. The GRUB boot menu should only list one option, Solaris_10 Jumpstart. After the system begins booting, select Custom JumpStart.
   1.     Solaris Interactive (default)
   2.     Custom JumpStart
   3.     Solaris Interactive Text (Desktop session)
   4.     Solaris Interactive Text (Console session)
   5.     Apply driver updates
   6.     Single user shell

Enter the number of your choice.
Selected: 2

Links

Personal tools