[install-guide: 1/3] added PXE boot configuration procedures

Jack Reed jjr at fedoraproject.org
Wed Mar 28 02:12:18 UTC 2012


commit 616443c28d7d9f50ced4ae9484284089e5e27c31
Author: Jack Reed <jreed at redhat.com>
Date:   Tue Mar 27 16:06:03 2012 +1000

    added PXE boot configuration procedures

 en-US/pxe-server-config-bios.xml |  139 ++++++++++++++++++++++++++++++++++++++
 en-US/pxe-server-config-efi.xml  |  124 +++++++++++++++++++++++++++++++++
 en-US/pxe-server-manual.xml      |   12 +++-
 3 files changed, 273 insertions(+), 2 deletions(-)
---
diff --git a/en-US/pxe-server-config-bios.xml b/en-US/pxe-server-config-bios.xml
new file mode 100644
index 0000000..141217b
--- /dev/null
+++ b/en-US/pxe-server-config-bios.xml
@@ -0,0 +1,139 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Installation_Guide.ent">
+%BOOK_ENTITIES;
+]>
+		
+<section id="s1-netboot-pxe-config-bios">
+		  <title>Configuring for BIOS</title>
+	  <procedure>
+	    <step>
+	      <para>
+		    If <application>tftp-server</application> is not yet installed, run <command>yum install tftp-server</command>. 
+	      </para>
+	    </step>
+	    <step>
+	      <para>
+		    In the <application>tftp-server</application> config file at <filename>/etc/xinet.d/tftp</filename>, change the <parameter>disabled</parameter> parameter from <literal>yes</literal> to <literal>no</literal>.
+	      </para>
+	    </step>  
+	    	  
+	    <step>
+		    <para>
+		      Configure your DHCP server to use the boot images packaged with SYSLINUX. (If you do not have a DHCP server installed, refer to the <citetitle>DHCP Servers</citetitle> chapter in the <citetitle>Fedora Deployment Guide</citetitle>.)
+		    </para>
+		    <para>
+		      A sample configuration in <filename>/etc/dhcp/dhcpd.conf</filename> might look like:
+		    </para>
+<screen>
+  option space pxelinux;
+  option pxelinux.magic code 208 = string;
+  option pxelinux.configfile code 209 = text;
+  option pxelinux.pathprefix code 210 = text;
+  option pxelinux.reboottime code 211 = unsigned integer 32;
+
+  subnet 10.0.0.0 netmask 255.255.255.0 {
+          option routers 10.0.0.254;
+          range 10.0.0.2 10.0.0.253;
+
+          class "pxeclients" {
+                  match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
+                  next-server 10.0.0.1;
+                 
+                  if option arch = 00:06 {
+                          filename "pxelinux/bootia32.efi";
+                  } else if option arch = 00:07 {
+                          filename "pxelinux/bootx64.efi";
+                  } else {
+                          filename "pxelinux/pxelinux.0";
+                  }
+          }
+
+          host example-ia32 {
+                  hardware ethernet XX:YY:ZZ:11:22:33;
+                  fixed-address 10.0.0.2;
+          }
+  }
+</screen>
+		</step>
+		
+		<step>
+		  <para>
+		     You now need the <filename>pxelinux.0</filename> file from the SYSLINUX package installed with Fedora. Create a <filename>pxelinux</filename> directory within <filename>tftpboot</filename> and copy <filename>pxelinux.0</filename> into it:
+		  </para>
+<screen>
+<command>mkdir /var/lib/tftpboot/pxelinux</command>
+<command>cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux</command>
+</screen>
+		</step>
+		
+		<step>
+		  <para>
+		    Create a <filename>pxelinux.cfg</filename> directory within <filename>pxelinux</filename>:
+		  </para>
+		  <screen><command>mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg</command></screen>
+		</step>
+		
+		<step>
+		  <para>
+		    Add a config file to this directory. The file should either be named <filename>default</filename> or named after the IP address. For example, if your machine's IP address is 10.0.0.1, the filename would be <filename>0A000001</filename>.
+		  </para>
+		  <para>
+		    A sample config file at <filename>/var/lib/tftpboot/pxelinux/pxelinux.cfg/default</filename> might look like:
+		  </para>
+<screen>
+default vesamenu.c32
+prompt 1
+timeout 600
+
+display boot.msg
+
+label linux
+  menu label ^Install or upgrade an existing system
+  menu default
+  kernel vmlinuz
+  append initrd=initrd.img
+label vesa
+  menu label Install system with ^basic video driver
+  kernel vmlinuz
+  append initrd=initrd.img xdriver=vesa nomodeset
+label rescue
+  menu label ^Rescue installed system
+  kernel vmlinuz
+  append initrd=initrd.img rescue
+label local
+  menu label Boot from ^local drive
+  localboot 0xffff
+label memtest86
+  menu label ^Memory test
+  kernel memtest
+  append -
+</screen>
+		  <para>
+		    For instructions on how to specify the installation source, refer to <xref linkend="s2-x86-starting-bootopts" />
+		  </para>
+		</step>
+		
+		<step>
+		  <para>
+		    Copy the splash image into your <command>tftp</command> root directory:
+		  </para>
+		      <screen><command>cp /boot/grub/splash.xpm.gz /var/lib/tftpboot/pxelinux/splash.xpm.gz</command></screen>
+		</step>
+		
+		<step>
+		  <para>
+		    Copy the boot images into your <command>tftp</command> root directory:
+		  </para>
+			      <screen><command> cp /<replaceable>path/to</replaceable>/x86_64/os/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/pxelinux/rawhide-x86_64/</command></screen>
+		  </step>
+		  
+		  <step>
+		    <para>
+		      Reboot the system, and select the network device as your boot device when prompted.
+		    </para>
+		  </step>  
+		  
+	  </procedure>
+	  
+	</section>
diff --git a/en-US/pxe-server-config-efi.xml b/en-US/pxe-server-config-efi.xml
new file mode 100644
index 0000000..3ecb61d
--- /dev/null
+++ b/en-US/pxe-server-config-efi.xml
@@ -0,0 +1,124 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Installation_Guide.ent">
+%BOOK_ENTITIES;
+]>
+
+<section id="s1-netboot-pxe-config-efi">
+	  <title>Configuring for EFI</title>
+		
+		<procedure>
+		  <step>
+		    <para>
+			   If <application>tftp-server</application> is not yet installed, run <command>yum install tftp-server</command>.
+		    </para>
+		  </step>
+		  <step>
+		    <para>
+			  In the <application>tftp-server</application> config file at <filename>/etc/xinet.d/tftp</filename>, change the <parameter>disabled</parameter> parameter from <literal>yes</literal> to <literal>no</literal>.
+		    </para>
+		  </step>  
+	    <step>
+	      <para>
+			  Create a directory path within <filename>tftpboot</filename> for the EFI boot images, and then copy them from your boot directory:
+	      </para>    
+<screen>
+<command>mkdir /var/lib/tftpboot/pxelinux</command>
+<command>mkdir /var/lib/tftpboot/pxelinux/bootx64.efi</command>
+<command>cp /boot/efi/EFI/redhat/grub.efi /var/lib/tftpboot/pxelinux/bootx64.efi</command>
+</screen>
+	     </step>
+		  
+		  <step>
+		    <para>
+		      Configure your DHCP server to use the EFI boot images packaged with GRUB. (If you do not have a DHCP server installed, refer to the <citetitle>DHCP Servers</citetitle> chapter in the <citetitle>Fedora Deployment Guide</citetitle>.)
+		    </para>
+		    <para>
+		      A sample configuration in <filename>/etc/dhcp/dhcpd.conf</filename> might look like:
+		    </para>
+<screen>
+  option space PXE;
+  option PXE.mtftp-ip    code 1 = ip-address;
+  option PXE.mtftp-cport code 2 = unsigned integer 16;
+  option PXE.mtftp-sport code 3 = unsigned integer 16;
+  option PXE.mtftp-tmout code 4 = unsigned integer 8;
+  option PXE.mtftp-delay code 5 = unsigned integer 8;
+  option arch code 93 = unsigned integer 16; # RFC4578
+
+  subnet 10.0.0.0 netmask 255.255.255.0 {
+          option routers 10.0.0.254;
+          range 10.0.0.2 10.0.0.253;
+
+          class "pxeclients" {
+                  match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
+                  next-server 10.0.0.1;
+                 
+                  if option arch = 00:06 {
+                          filename "pxelinux/bootia32.efi";
+                  } else if option arch = 00:07 {
+                          filename "pxelinux/bootx64.efi";
+                  } else {
+                          filename "pxelinux/pxelinux.0";
+                  }
+          }
+
+          host example-ia32 {
+                  hardware ethernet XX:YY:ZZ:11:22:33;
+                  fixed-address 10.0.0.2;
+          }
+  }
+</screen>
+		</step>
+		
+		<step>
+		  <para>
+		    Create a <filename>pxelinux.cfg</filename> directory within <filename>pxelinux</filename>:
+		  </para>
+		  <screen><command>mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg</command></screen>
+		</step>
+		
+		<step>
+		  <para>
+		    Add a config file to this directory. The file should either be named <filename>efidefault</filename> or named after the IP address. For example, if your machine's IP address is 10.0.0.1, the filename would be <filename>0A000001</filename>.
+		  </para>
+		  <para>
+		    A sample config file at <filename>/var/lib/tftpboot/pxelinux/pxelinux.cfg/efidefault</filename> might look like:
+		  </para>
+<screen>
+default=0
+timeout=1
+splashimage=(nd)/splash.xpm.gz
+hiddenmenu
+title RHEL
+        root (nd)
+        kernel /rawhide-x86_64/vmlinuz
+        initrd /rawhide-x86_64/initrd.img
+</screen>
+		  <para>
+		    For instructions on how to specify the installation source, refer to <xref linkend="s2-x86-starting-bootopts" />
+		  </para>
+		</step>
+		
+		<step>
+		  <para>
+		    Copy the splash image into your <command>tftp</command> root directory:
+		  </para>
+		      <screen><command>cp /boot/grub/splash.xpm.gz /var/lib/tftpboot/pxelinux/splash.xpm.gz</command></screen>
+		</step>
+		
+		<step>
+		  <para>
+		    Copy the boot images into your <command>tftp</command> root directory:
+		  </para>
+		      <screen><command> cp /<replaceable>path/to</replaceable>/x86_64/os/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/pxelinux/rawhide-x86_64/</command></screen>
+		  </step>
+		  
+		  <step>
+		    <para>
+		      Reboot the system, and select the network device as your boot device when prompted.
+		    </para>
+		  </step>  
+		  
+	  </procedure>
+
+	</section>
diff --git a/en-US/pxe-server-manual.xml b/en-US/pxe-server-manual.xml
index dd5039c..386a3a6 100644
--- a/en-US/pxe-server-manual.xml
+++ b/en-US/pxe-server-manual.xml
@@ -68,9 +68,9 @@
 			The next step is to copy the files necessary to start the installation to the <command>tftp</command> server so they can be found when the client requests them. The <command>tftp</command> server is usually the same
 			server as the network server exporting the installation tree.
 		</para>
-		 
+		
 		<para>
-			To copy these files, run the <application>Network Booting Tool</application> on the NFS, FTP, or HTTP server. A separate PXE server is not necessary.
+			BIOS and EFI configuration differs for this procedure. 
 		</para>
 		 
 		<!-- This next section has been commented out because system-config-netboot has been left out of the distro.
@@ -263,7 +263,15 @@
 				For more information on command line options available for the <command>pxeos</command> command, refer to the <command>pxeos</command> man page.
 			</para>
 		</section> -->
+		
+	<xi:include href="pxe-server-config-bios.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	
+	<xi:include href="pxe-server-config-efi.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+		
 	</section>
+	
+
+	
 	<section id="s1-netboot-add-hosts">
 		<title>Adding PXE Hosts</title>
 		<indexterm significance="normal">


More information about the docs-commits mailing list