PXE JumpStart

From Brandonhutchinson.com

(Difference between revisions)
Jump to: navigation, search
(Configure DHCP Server)
Current revision (23:28, 6 February 2008) (edit) (undo)
(Configure DHCP Server)
 
(34 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
* Client hostname: mrpmmap011
* Client hostname: mrpmmap011
 +
* DHCP server: mrdmmns001 (same as the JumpStart server)
 +
* DHCP network: 10.205.0.0
== Install DHCP Server ==
== Install DHCP Server ==
Line 21: 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 39: Line 40:
# '''pntadm -C 10.205.0.0'''
# '''pntadm -C 10.205.0.0'''
-
* Add the PXE client macros for i86pc 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 59: Line 62:
== Configure DHCP Client ==
== Configure DHCP Client ==
-
* Configure the DHCP client ''mrpmmds011'' with MAC address 0:14:4f:45:91:e to be permanently assigned 10.205.0.62 by the DHCP server.
+
* 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.62 -c mrpmmds011 -f PERMANENT -i 0100144F45910E -m 10.205.0.0 10.205.0.0'''
+
# '''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
'''-A''' IP address of client
Line 68: 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
Line 80: Line 85:
Boot file (BootFile) : SUNW.i86pc
Boot file (BootFile) : SUNW.i86pc
-
# dhtadm -A -m PXEClient:Arch:00000:UNDI:002001 -d ':BootFile="SUNW.i86pc":BootSrvA=10.205.0.30:'
+
* 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:''''
-
*** CRITICAL ***
+
* Run "add_install_client" for the JumpStart client.
-
# 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'''
 +
 +
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
-
# ./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
+
Important note: The "console=ttya" boot option was needed for this x4600 PXE JumpStart.
-
Important note: Without the '''console=ttya''' boot option, I saw nothing on the console.
+
* 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:''''
-
* Prepare the JumpStart client
+
* Refresh the dhcp-server service. The above DHCP server changes will not take effect until this service is refreshed.
-
dhtadm -A -m 0100144F4624B6 -d ':BootFile="0100144F4624B6":BootSrvA=10.205.0.30:'
+
# '''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'''.
-
 
+
-
 
+
-
 
+
-
Configuring devices.
+
-
|
+
1. Solaris Interactive (default)
1. Solaris Interactive (default)
Line 105: 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