commit bd1efd9fa857c67364a827e7876cf37fec10b0e2
Author: Petr Bokoc <pbokoc(a)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...
+ </listitem>
+ <listitem>
+
<
para><uri>ftp://mirror.example.com/pub/fedora/linux/releases/11/...
+ </listitem>
+ <listitem>
+
<
para><uri>rsync://mirror.example.com/fedora/linux/releases/11/Fe...
+ </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; &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 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 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>