[install-guide/F21-rewrite] Moving back Network Server Setup

pbokoc pbokoc at fedoraproject.org
Fri Sep 5 17:06:17 UTC 2014


commit bd1efd9fa857c67364a827e7876cf37fec10b0e2
Author: Petr Bokoc <pbokoc at redhat.com>
Date:   Fri Sep 5 19:00:13 2014 +0200

    Moving back Network Server Setup

 en-US/Network_based_Installations.xml |  579 ++++++++++++++++++++++++++++++++-
 1 files changed, 578 insertions(+), 1 deletions(-)
---
diff --git a/en-US/Network_based_Installations.xml b/en-US/Network_based_Installations.xml
index 208ef7a..b5ba577 100644
--- a/en-US/Network_based_Installations.xml
+++ b/en-US/Network_based_Installations.xml
@@ -5,7 +5,584 @@
 ]>
 <chapter id="chap-pxe-server-setup">
     <title>Setting Up an Installation Server</title>
+    <note>
+        <para>
+            This appendix is intended for users with previous Linux experience. If you are a new user, you may want to install using minimal boot media or the distribution DVD instead.
+        </para>
+    </note>
+    <warning>
+        <para>
+            The instructions in this appendix configures an automated install server. The default configuration includes destruction of all existing data on all disks for hosts that install using this method. This is often different from other network install server configurations which may provide for an interactive installation experience.
+        </para>
+    </warning>
     <para>
-        TODO
+        &PRODUCT; allows for installation over a network using the NFS, FTP, or HTTP protocols. A network installation can be started from a boot CD-ROM, a bootable flash memory drive, or by using the <option>inst.repo=</option> boot option with the &PRODUCT; DVD. Alternatively, if the system to be installed contains a network interface card (NIC) with Pre-Execution Environment (PXE) support, it can be configured to boot from files on another networked system rather than local media such as a DVD.
     </para>
+    <para>
+        For a PXE network installation, the client's NIC with PXE support sends out a broadcast request for DHCP information. The DHCP server provides the client with an IP address, other network information such as name server, the IP address or hostname of the <command>tftp</command> server (which provides the files necessary to start the installation program), and the location of the files on the <command>tftp</command> server. This is possible because of PXELINUX, which is part of the <filename>syslinux</filename> package.
+    </para>
+    <para>
+        In the past, administrators needed to perform a great deal of manual configuration to produce an installation server. However, if you have a server running &PRODUCT; or a similar operating system on your local network, you can use <package>cobbler</package> to perform these tasks. To configure a PXE server manually, see <xref linkend="sect-install-server-manual"/>
+    </para>
+    <para>
+        To perform the tasks in this section, switch to the <systemitem class="username">root</systemitem> account with the command <command>su -</command>.  As an alternative, you can run a command with the <option>-c</option> option, using the form <command>su -c '<replaceable>command</replaceable>'</command>.
+    </para>
+
+    <section id="sect-install-server-cobbler">
+        <title>Setting Up cobbler</title>
+        <para>
+            To install <application>cobbler</application> use the following command:
+        </para>
+        <screen>
+<prompt>#</prompt> <command>yum install cobbler</command>
+        </screen>
+        <para>
+            <application>cobbler</application> can check its own settings for validity and report the results.  Run the following command to check the settings:
+        </para>
+        <screen>
+<prompt>$</prompt> <command>cobbler check</command>
+        </screen>
+        <para>
+            Verify SELinux is configured properly:
+        </para>
+        <screen>
+<prompt>#</prompt><command>setsebool -P httpd_can_network_connect_cobbler 1</command>
+        </screen>
+        <para>
+            Other SELinux booleans may apply, and can be listed with:
+        </para>
+        <screen>
+<prompt>$</prompt><command>getsebool -a|grep cobbler</command>
+        </screen>
+        <para>
+            Change the settings in the <filename>/etc/cobbler/settings</filename> file to reflect the IP address information for the server. You must change at least the <option>server</option> and <option>next_server</option> options, although these options may point to the same IP address.
+        </para>
+        <para>
+            If you are not already running a DHCP server, you should also change the <option>manage_dhcp</option> option to <userinput>1</userinput>. If you are running a DHCP server, configure it according to the instructions found in the <package>syslinux</package> package documentation. For more information, refer to your local files <filename>/usr/share/doc/syslinux/syslinux.doc</filename> and <filename>/usr/share/doc/syslinux/pxelinux.doc</filename>.
+        </para>
+    </section>
+
+    <section id="sect-cobbler-setup-distro">
+        <title>Setting Up the Distribution</title>
+        <para>
+            To set up a distribution from a full &PRODUCT; DVD or ISO image, use this procedure.
+        </para>
+        <note>
+            <para>
+                To create a local mirror from an existing network source, skip this section and refer instead to <xref linkend="sect-cobbler-mirror"/>.
+            </para>
+        </note>
+        <procedure>
+            <step>
+                <para>
+                    If you are using a DVD disc or ISO image, Create a directory mount point:
+                </para>
+                <screen>
+<prompt>#</prompt> <command>mkdir /mnt/dvd</command>
+                </screen>
+                <para>
+                    To mount a physical DVD disc, use the following command:
+                </para>
+                <screen>
+<prompt>#</prompt> <command>mount -o context=system_u:object_r:httpd_sys_content_t:s0 /dev/dvd /mnt/dvd</command>
+                </screen>
+                <para>
+                    To mount a DVD ISO image, use the following command:
+                </para>
+                <screen>
+<prompt>#</prompt> <command>mount -ro loop,context=system_u:object_r:httpd_sys_content_t:s0 /path/to/image.iso /mnt/dvd</command>
+                </screen>
+                <note>
+                    <para>
+                        If SELinux is enabled, use the default <literal>iso9660_t</literal> label instead of <literal>httpd_sys_content_t</literal>.
+                    </para>
+                </note>
+            </step>
+            <step>
+                <para>
+                    To support NFS installation, create a file <filename>/etc/exports</filename> and add the following line to it:
+                </para>
+                <screen>
+/mnt/dvd *(ro,async)
+                </screen>
+                <para>
+                    Start the NFS server using the following command:
+                </para>
+                <screen>
+<prompt>#</prompt> <command>systemctl start rpcbind nfs</command>
+                </screen>
+            </step>
+            <step>
+                <para>
+                    To support HTTP installation, use <command>yum</command> to install the Apache web server if it is not already installed:
+                </para>
+                <screen>
+<prompt>#</prompt> <command>yum -y install httpd</command>
+                </screen>
+                <para>
+                    Make a link to the mounted disc in the Apache public
+                content area:
+                </para>
+                <screen>
+<prompt>#</prompt> <command>ln -s /mnt/dvd /var/www/html/<replaceable>distro</replaceable></command>
+                </screen>
+            </step>
+        </procedure>
+    </section>
+
+    <section id="sect-cobbler-mirror">
+        <title>Mirroring a Network Location</title>
+        <para>
+            If you do not have discs or ISO images for a distribution, you can use <command>cobbler</command> to create an installation server. The <command>cobbler</command> command can fetch the distribution over the network as part of the import process.
+        </para>
+        <para>
+            Locate the distribution on the network. The location may be on the local network or reached at a remote site via FTP, HTTP, or rsync protocols.  <!-- Note the URI, which will be in one of the
+        following forms: -->
+        </para>
+        <!--    <itemizedlist>
+        <listitem>
+        <para><uri>http://mirror.example.com/pub/fedora/linux/releases/11/Fedora/<replaceable>arch</replaceable>/os</uri></para>
+        </listitem>
+        <listitem>
+        <para><uri>ftp://mirror.example.com/pub/fedora/linux/releases/11/Fedora/<replaceable>arch</replaceable>/os</uri></para>
+        </listitem>
+        <listitem>
+        <para><uri>rsync://mirror.example.com/fedora/linux/releases/11/Fedora/<replaceable>arch</replaceable>/os</uri></para>
+        </listitem>
+        </itemizedlist> -->
+    </section>
+
+    <section id="sect-cobbler-import-distro">
+        <title>Importing the Distribution</title>
+        <para>
+            To offer a distribution through more than one installation method, perform additional <command>cobbler import</command> tasks using a different name for each method. For best results, use the installation method as part of the name, so it appears in the client's boot menu.
+        </para>
+        <procedure>
+            <step>
+                <para>
+                    To import the DVD disc or ISO distribution into <application>cobbler</application>, run this command:
+                </para>
+                <screen>
+<prompt>#</prompt> <command>cobbler import --path=/mnt/dvd --name=<replaceable>distro_name</replaceable></command>
+                </screen>
+                <para>
+                    For <replaceable>distro_name</replaceable>, substitute a meaningful name for the distribution.
+                </para>
+                <para>
+                    To import a local or remote network distribution into <command>cobbler</command>, run this command. Replace <replaceable>network_URI</replaceable> with the URI you found in <xref linkend="sect-cobbler-mirror"/>, and <replaceable>distro_name</replaceable> as above:
+                </para>
+                <screen>
+<prompt>#</prompt> <command>cobbler import --path=<replaceable>network_URI</replaceable> --name=<replaceable>distro_name</replaceable></command>
+                </screen>
+                <important>
+                    <para>
+                        When <command>cobbler</command> imports a distribution with the commands above, it copies all the files to the server's local storage, which may take some time.
+                    </para>
+                </important>
+                <para>
+                    If you do not want to make local copies of the distribution because clients can already reach its location, use the <option>--available-as</option> option.
+                </para>
+                <screen>
+<prompt>#</prompt> <command>cobbler import --path=/mnt/dvd --name=<replaceable>distro_name</replaceable> --available-as=<replaceable>network_URI</replaceable></command>
+<prompt>#</prompt> <command>cobbler import --path=<replaceable>network_URI</replaceable> --name=<replaceable>distro_name</replaceable> --available-as=<replaceable>network_URI</replaceable></command>
+                </screen>
+                <para>
+                    For <replaceable>nework_URI</replaceable>, substitute the appropriate network location of the distribution. This URI indicates how the server makes the distribution available to its clients.  The examples above assume that your <command>cobbler</command> server reaches the mirror location at the same URI as the clients. If not, substitute an appropriate URI for the <option>--path</option> option. The following examples are URI locations that work if you have been following the procedures in this section, and your server's IP address is <systemitem class="ipaddress">192.168.1.1</systemitem>:
+                </para>
+                <itemizedlist>
+                    <listitem>
+                        <para>
+                            <uri>nfs://<replaceable>192.168.1.1</replaceable>:/mnt/dvd</uri>
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            <uri>http://<replaceable>192.168.1.1</replaceable>:/distro</uri>
+                        </para>
+                    </listitem>
+                </itemizedlist>
+                <para>
+                    If necessary, replace <replaceable>192.168.1.1</replaceable> with the IP address for your <command>cobbler</command> server.
+                </para>
+            </step>
+            <step>
+                <para>
+                    Run the command <command>cobbler sync</command> to apply the changes. To check that your <command>cobbler</command> server is listening on the correct ports, use the <command>netstat -lp</command> command.
+                </para>
+                <important>
+                    <para>
+                        Depending on your server's configuration, you may need to use the <command>system-config-securitylevel</command> command to permit access to some or all of these network services:
+                    </para>
+                    <itemizedlist>
+                        <listitem>
+                            <para>
+                                67 or bootps, for the DHCP/BOOTP server
+                            </para>
+                        </listitem>
+                        <listitem>
+                            <para>
+                                69 or tftp, for providing the PXE loader
+                            </para>
+                        </listitem>
+                        <listitem>
+                            <para>
+                                80 or http, if the <application>cobbler</application> server is to provide HTTP installation service
+                            </para>
+                        </listitem>
+                        <listitem>
+                            <para>
+                                20 and 21 or ftp, if the <application>cobbler</application> server is to provide FTP installation service
+                            </para>
+                        </listitem>
+                        <listitem>
+                            <para>
+                                111 or sunrpc, if the <application>cobbler</application> server is to provide NFS installation service
+                            </para>
+                        </listitem>
+                    </itemizedlist>
+                </important>
+            </step>
+        </procedure>
+    </section>
+
+    <section id="sect-install-server-manual">
+        <title>Manually configure a PXE server</title>
+        <para>
+            The following steps must be performed to prepare for a network installation manually (without <application>cobbler</application>):
+        </para>
+        <orderedlist>
+            <listitem>
+                <para>
+                    Configure the network (<systemitem class="protocol">NFS</systemitem>, <systemitem class="protocol">HTTPS</systemitem>, <systemitem class="protocol">HTTP</systemitem>, or <systemitem class="protocol">FTP</systemitem>) server to export the installation tree or the installation ISO image. For procedures describing the configuration, see <xref linkend="sect-preparing-installation-sources" />.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    Configure the files on the <application>tftp</application> server necessary for network boot, configure <systemitem class="protocol">DHCP</systemitem>, and start the <systemitem class="service">tftp</systemitem> service on the PXE server. See <xref linkend="sect-network-boot-setup" /> for details.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    Boot the client (the system you want to install &PRODUCT; on) and start the installation. See <xref linkend="sect-booting-pxe-installation" /> for more information.
+                </para>
+            </listitem>
+        </orderedlist>
+        <note>
+            <para>
+                The procedures in this chapter describe setting up a PXE server on a &PRODUCT;&nbsp;&PRODVER; system. For details about configuring PXE on earlier releases of &PRODUCT;, see the appropriate <citetitle>Installation Guide</citetitle> for that release.
+            </para>
+        </note>
+
+        <section id="sect-network-boot-setup">
+            <title>Configuring PXE Boot</title>
+            <para>
+                After setting up a network server containing the package repositories to be used in the installation, the next step is to configure the PXE server itself. This server will contain files necessary to boot the &PRODUCT; and start the installation. Additionally, a <systemitem class="protocol">DHCP</systemitem> server must be configured, and all necessary services must be enabled and started.
+            </para>
+            <para>
+              For more information on configuring a PXE server for use with headless systems (systems without a directly connected display, keyboard and mouse), see <xref linkend="sect-vnc-headless-considerations" />.
+            </para>
+
+            <section id="sect-network-boot-setup-bios">
+                <title>Configuring a PXE Server for BIOS-based Clients</title>
+                <para>
+                    The following procedure will prepare the PXE server for booting BIOS-based AMD64 and Intel&nbsp;64 systems. For information on UEFI-based systems, see <xref linkend="sect-network-boot-setup-uefi" />.
+                </para>
+                <procedure>
+                    <title>Configuring PXE Boot for BIOS-based Systems</title>
+                    <step>
+                        <para>
+                            Install the <package>tftp</package> package. To do this, run the following command as <systemitem class="username">root</systemitem>:
+                        </para>
+                        <screen>
+<prompt>#</prompt> <command>yum install tftp-server</command>
+                        </screen>
+                    </step>
+                    <step>
+                        <para>
+                            In the <filename>/etc/xinetd.d/tftp</filename> configuration file, change the <parameter>disabled</parameter> parameter from <literal>yes</literal> to <literal>no</literal>.
+                        </para>
+                    </step>
+                    <step>
+                        <para>
+                            Configure your <systemitem class="protocol">DHCP</systemitem> server to use the boot images packaged with SYSLINUX. If you do not have a DHCP server installed, see the <citetitle>&PRODUCT; Networking Guide</citetitle>, available at the <ulink url="http://docs.fedoraproject.org/">Fedora Documentation website</ulink>, for instructions.
+                        </para>
+                        <para>
+                            A sample configuration in the <filename>/etc/dhcp/dhcpd.conf</filename> file might look like:
+                        </para>
+                        <programlisting>
+  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:07 {
+        filename "uefi/shim.efi";
+      } else {
+        filename "pxelinux/pxelinux.0";
+      }
+    }
+
+    host example-ia32 {
+      hardware ethernet XX:YY:ZZ:11:22:33;
+      fixed-address 10.0.0.2;
+    }
+  }
+                        </programlisting>
+                    </step>
+                    <step>
+                        <para>
+                            You now need the <filename>pxelinux.0</filename> file from the SYSLINUX package in the ISO image file. To access it, run the following commands as root:
+                        </para>
+                        <screen>
+<prompt>#</prompt> <command>mount -t iso9660 /<replaceable>path_to_image/name_of_image</replaceable>.iso /<replaceable>mount_point</replaceable> -o loop,ro</command>
+                        </screen>
+                        <screen>
+<prompt>#</prompt> <command>cp -pr /<replaceable>mount_point</replaceable>/Packages/syslinux-<replaceable>version-architecture</replaceable>.rpm /<replaceable>publicly_available_directory</replaceable></command>
+                        </screen>
+                        <screen>
+<prompt>#</prompt> <command>umount /<replaceable>mount_point</replaceable></command>
+                        </screen>
+                        <para>
+                            Extract the package:
+                        </para>
+                        <screen>
+<prompt>#</prompt> <command>rpm2cpio syslinux-<replaceable>version-architecture</replaceable>.rpm | cpio -dimv</command>
+                        </screen>
+                    </step>
+                    <step>
+                        <para>
+                            Create a <filename>pxelinux/</filename> directory within <filename>tftpboot/</filename> and copy the <filename>pxelinux.0</filename> file into it:
+                        </para>
+                        <screen>
+<prompt>#</prompt> <command>mkdir /var/lib/tftpboot/pxelinux</command>
+                        </screen>
+                        <screen>
+<prompt>#</prompt> <command>cp <replaceable>publicly_available_directory</replaceable>/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux</command>
+                        </screen>
+                    </step>
+                    <step>
+                        <para>
+                            Add a configuration file to the <filename class="directory">pxelinux/</filename> directory. The file name should either be <literal>default</literal>, or based on the system's IP address. For example, if your machine's IP address is 10.0.0.1, the file name will be <filename>0A000001</filename>.
+                        </para>
+                        <para>
+                            A sample configuration file at <filename>/var/lib/tftpboot/pxelinux/default</filename> might look like:
+                        </para>
+                        <programlisting>
+default vesamenu.c32
+prompt 1
+timeout 600
+
+display boot.msg
+
+label linux
+  menu label ^Install system
+  menu default
+  kernel vmlinuz
+  append initrd=initrd.img ip=dhcp inst.repo=http://10.32.5.1/mnt/archive/Fedora/&PRODVER;/Server/x86_64/os/
+label vesa
+  menu label Install system with ^basic video driver
+  kernel vmlinuz
+  append initrd=initrd.img ip=dhcp inst.xdriver=vesa nomodeset inst.repo=http://10.32.5.1/mnt/archive/Fedora/&PRODVER;/Server/x86_64/os/
+label rescue
+  menu label ^Rescue installed system
+  kernel vmlinuz
+  append initrd=initrd.img rescue
+label local
+  menu label Boot from ^local drive
+  localboot 0xffff
+                        </programlisting>
+                        <important>
+                            <para>
+                                The <option>inst.repo=</option> <application>Anaconda</application> option, shown in the example above, must always be used to specify the installation program's image as well as the installation source. Without this option, the installation program will be unable to boot. For more information about boot options for <application>Anaconda</application>, see <xref linkend="sect-boot-options-installer" />.
+                            </para>
+                        </important>
+                    </step>
+                    <step>
+                        <para>
+                            Copy the boot images into your <command>tftp/</command> root directory:
+                        </para>
+                        <screen>
+<prompt>#</prompt> <command>cp /<replaceable>path/to</replaceable>/x86_64/os/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/pxelinux/</command>
+                        </screen>
+                    </step>
+                    <step>
+                        <para>
+                            Enable and start the <systemitem class="service">tftp</systemitem> and <systemitem class="service">xinetd</systemitem> services using the <command>systemctl</command> command.
+                        </para>
+                        <screen>
+<prompt>#</prompt> <command>systemctl enable xinetd.service tftp.service</command>
+                        </screen>
+                        <screen>
+<prompt>#</prompt> <command>systemctl start xinetd.service tftp.service</command>
+                        </screen>
+                    </step>
+                </procedure>
+                <para>
+                    After finishing this procedure, the PXE server is ready to start the network installation. You can now start the system you want to install &PRODUCT; on, select PXE Boot when prompted to specify a boot source, and start the network installation.
+                </para>
+            </section>
+
+            <section id="sect-network-boot-setup-uefi">
+                <title>Configuring a PXE Server for UEFI-based Clients</title>
+                <para>
+                    The following procedure will prepare the PXE server for booting UEFI-based AMD64 and Intel&nbsp;64 systems. For information on BIOS-based systems, see <xref linkend="sect-network-boot-setup-bios" />.
+                </para>
+                <procedure>
+                    <title>Configuring PXE Boot for UEFI-based Systems</title>
+                    <step>
+                        <para>
+                            Install the <package>tftp</package> package. To do this, run the following command as <systemitem class="username">root</systemitem>:
+                        </para>
+                        <screen>
+<prompt>#</prompt> <command>yum install tftp-server</command>
+                        </screen>
+                    </step>
+                    <step>
+                        <para>
+                            In the <filename>/etc/xinetd.d/tftp</filename> configuration file, change the <parameter>disabled</parameter> parameter from <literal>yes</literal> to <literal>no</literal>.
+                        </para>
+                    </step>
+                    <step>
+                        <para>
+                            Configure your <systemitem class="protocol">DHCP</systemitem> server to use the EFI boot images packaged with <package>shim</package>. If you do not have a DHCP server installed, see the <citetitle>&PRODUCT; Networking Guide</citetitle>, available at the <ulink url="http://docs.fedoraproject.org/">Fedora Documentation website</ulink>, for instructions.
+                        </para>
+                        <para>
+                            A sample configuration in the <filename>/etc/dhcp/dhcpd.conf</filename> file might look like:
+                        </para>
+                        <programlisting>
+  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:07 {
+        filename "uefi/shim.efi";
+        } else {
+        filename "pxelinux/pxelinux.0";
+      }
+    }
+
+    host example-ia32 {
+      hardware ethernet XX:YY:ZZ:11:22:33;
+      fixed-address 10.0.0.2;
+    }
+  }
+                        </programlisting>
+                    </step>
+                    <step>
+                        <para>
+                            You now need the <filename>shim.efi</filename> file from the <package>shim</package> package and the <filename>grubx64.efi</filename> file from the <package>grub2-efi</package> package in the ISO image file. To access them, run the following commands as root:
+                        </para>
+                        <screen>
+<prompt>#</prompt> <command>mount -t iso9660 /<replaceable>path_to_image/name_of_image</replaceable>.iso /<replaceable>mount_point</replaceable> -o loop,ro</command>
+                        </screen>
+                        <screen>
+<prompt>#</prompt> <command>cp -pr /<replaceable>mount_point</replaceable>/Packages/shim-<replaceable>version-architecture</replaceable>.rpm /<replaceable>publicly_available_directory</replaceable></command>
+                        </screen>
+                        <screen>
+<prompt>#</prompt> <command>cp -pr /<replaceable>mount_point</replaceable>/Packages/grub2-efi-<replaceable>version-architecture</replaceable>.rpm /<replaceable>publicly_available_directory</replaceable></command>
+                        </screen>
+                        <screen>
+<prompt>#</prompt> <command>umount /<replaceable>mount_point</replaceable></command>
+                        </screen>
+                        <para>
+                            Extract the packages:
+                        </para>
+                        <screen>
+<prompt>#</prompt> <command>rpm2cpio shim-<replaceable>version-architecture</replaceable>.rpm | cpio -dimv</command>
+                        </screen>
+                        <screen>
+<prompt>#</prompt> <command>rpm2cpio grub2-efi-<replaceable>version-architecture</replaceable>.rpm | cpio -dimv</command>
+                        </screen>
+                    </step>
+                    <step>
+                        <para>
+                            Create a directory within the <filename class="directory">tftpboot/</filename> directory named <filename class="directory">uefi/</filename> for the EFI boot images, and then copy them from your boot directory:
+                        </para>
+                        <screen>
+<prompt>#</prompt> <command>mkdir /var/lib/tftpboot/uefi</command>
+                        </screen>
+                        <screen>
+<prompt>#</prompt> <command>cp <replaceable>publicly_available_directory</replaceable>/boot/efi/EFI/fedora/shim.efi /var/lib/tftpboot/uefi/</command>
+                        </screen>
+                        <screen>
+<prompt>#</prompt> <command>cp <replaceable>publicly_available_directory</replaceable>/boot/efi/EFI/fedora/grubx64.efi /var/lib/tftpboot/uefi/</command>
+                        </screen>
+                    </step>
+                    <step>
+                        <para>
+                            Add a configuration file named <filename>grub.cfg</filename> to the <filename class="directory">uefi/</filename> directory. A sample configuration file at <filename>/var/lib/tftpboot/uefi/grub.cfg</filename> might look like:
+                        </para>
+                        <programlisting>
+set timeout=1
+  menuentry '&PRODUCT;' {
+  linuxefi uefi/vmlinuz ip=dhcp inst.repo=http://10.32.5.1/mnt/archive/&PRODUCT;/&PRODVER;/Server/x86_64/os/
+  initrdefi uefi/initrd.img
+}
+                        </programlisting>
+                        <important>
+                            <para>
+                                The <option>inst.repo=</option> <application>Anaconda</application> option, shown in the example above, must always be used to specify the installation program's image as well as the installation source. Without this option, the installation program will be unable to boot. For more information about boot options for <application>Anaconda</application>, see <xref linkend="sect-boot-options-installer" />.
+                            </para>
+                        </important>
+                    </step>
+                    <step>
+                        <para>
+                            Copy the boot images into your <command>uefi/</command> directory:
+                        </para>
+                        <screen>
+<prompt>#</prompt> <command>cp /<replaceable>path/to</replaceable>/x86_64/os/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/uefi/</command>
+                        </screen>
+                    </step>
+                    <step>
+                        <para>
+                            Enable and start the <systemitem class="service">tftp</systemitem> and <systemitem class="service">xinetd</systemitem> services using the <command>systemctl</command> command.
+                        </para>
+                        <screen>
+<prompt>#</prompt> <command>systemctl enable xinetd.service tftp.service</command>
+                        </screen>
+                        <screen>
+<prompt>#</prompt> <command>systemctl start xinetd.service tftp.service</command>
+                        </screen>
+                    </step>
+                </procedure>
+                <para>
+                    After finishing this procedure, the PXE server is ready to start the network installation. You can now start the system you want to install &PRODUCT; on, select PXE Boot when prompted to specify a boot source, and start the network installation.
+                </para>
+            </section>
+
+        </section>
+
+    </section>
+
+    <section id="sect-booting-pxe-installation">
+        <title>Booting the Network Installation</title>
+        <para>
+            After the PXE server has been configured and the installation tree or ISO image made available, you are ready to start the network installation. You must make sure that the system you are installing &PRODUCT; on is configured to boot from the network. The exact way to ensure varies depending on the hardware you are using.
+        </para>
+        <para>
+            For more specific instructions about booting your system, see <xref linkend="sect-booting-network" />.
+        </para>
+    </section>
+
 </chapter>


More information about the docs-commits mailing list