QA:Testcase UEFI pxeboot

From FedoraProject

(Difference between revisions)
Jump to: navigation, search
m (Initial Draft)
 
 
(6 intermediate revisions by 3 users not shown)
Line 5: Line 5:
 
#* For i386 images: <pre>cp /boot/efi/EFI/redhat/grub.efi /var/lib/tftpboot/X86PC/UNDI/pxelinux/bootia32.efi </pre>
 
#* For i386 images: <pre>cp /boot/efi/EFI/redhat/grub.efi /var/lib/tftpboot/X86PC/UNDI/pxelinux/bootia32.efi </pre>
 
#* For x86_64 images: <pre>cp /boot/efi/EFI/redhat/grub.efi /var/lib/tftpboot/X86PC/UNDI/pxelinux/bootx64.efi </pre>
 
#* For x86_64 images: <pre>cp /boot/efi/EFI/redhat/grub.efi /var/lib/tftpboot/X86PC/UNDI/pxelinux/bootx64.efi </pre>
# Configure your dhcpd server to use the EFI boot images packaged with ''grub''.  A sample configuration in <code>/etc/dhcpd.conf</code> might look like:  
+
# Configure your dhcpd server to use the EFI boot images packaged with ''grub'', and configure a test system to boot using the EFI boot image.  A sample configuration in <code>/etc/dhcpd.conf</code> might look like:
 
<pre>
 
<pre>
   class "pxeclients" {
+
   option space PXE;
          if option arch = 00:02 {
+
  option PXE.mtftp-ip    code 1 = ip-address;
                  filename "ia64/elilo.efi";
+
  option PXE.mtftp-cport code 2 = unsigned integer 16;
          } else if option arch = 00:06 {
+
  option PXE.mtftp-sport code 3 = unsigned integer 16;
                  filename "X86PC/UNDI/pxelinux/bootia32.efi";
+
  option PXE.mtftp-tmout code 4 = unsigned integer 8;
          } else if option arch = 00:07 {
+
  option PXE.mtftp-delay code 5 = unsigned integer 8;
                  filename "X86PC/UNDI/pxelinux/bootx64.efi";
+
  option arch code 93 = unsigned integer 16;
          } else {
+
 
                  filename "X86PC/UNDI/pxelinux/pxelinux.0";
+
  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:02 {
 +
                          filename "ia64/elilo.efi";
 +
                  } else if option arch = 00:06 {
 +
                          filename "X86PC/UNDI/pxelinux/bootia32.efi";
 +
                  } else if option arch = 00:07 {
 +
                          filename "X86PC/UNDI/pxelinux/bootx64.efi";
 +
                  } else {
 +
                          filename "X86PC/UNDI/pxelinux/pxelinux.0";
 +
                  }
 
           }
 
           }
  } </pre>
 
  
# Configure a test system to boot using the EFI boot image.  A sample host configuration might look like:
+
          host example-ia32 {
 +
                  hardware ethernet XX:YY:ZZ:11:22:33;
 +
                  fixed-address 10.0.0.2;
 +
          }
 +
  }
 +
</pre>
 +
# Add a config file.  A sample config file at <code>/var/lib/tftpboot/X86PC/UNDI/pxelinux/efidefault</code> might look like:
 
<pre>
 
<pre>
    host example-ia32 {
+
default=0
        hardware ethernet XX:YY:ZZ:11:22:33;
+
timeout=1
        filename "/pxelinux/bootia32.efi;
+
splashimage=(nd)/splash.xpm.gz
    }
+
hiddenmenu
 
+
title Fedora
    host example-x64 {
+
        root (nd)
         hardware ethernet XX:YY:ZZ:33:22:11;
+
         kernel /rawhide-i386/vmlinuz
         filename "/pxelinux/bootx64.efi;
+
         initrd /rawhide-i386/initrd.img
    }
+
 
</pre>
 
</pre>
 +
# Copy the splash image into your tftp root directory: <pre>cp /boot/grub/splash.xpm.gz /var/lib/tftpboot/X86PC/UNDI/pxelinux/splash.xpm.gz</pre>
 +
# Copy a the boot images intor your tftp root directory:
 +
#* For ''i386'' type: <pre> cp /path/to/i386/os/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/X86PC/UNDI/pxelinux/rawhide-i386/</pre>
 +
#* For ''x86_64'' type: <pre> cp /path/to/x86_64/os/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/X86PC/UNDI/pxelinux/rawhide-x86_64/</pre>
 
# Reboot the system under test.  When offered, be sure to select the network device as your boot device.
 
# Reboot the system under test.  When offered, be sure to select the network device as your boot device.
 
|results=
 
|results=

Latest revision as of 12:01, 11 January 2012

Description

This test validates booting EFI images over the network. Tests must be executed on a system capable of supporting Features/EFI. This test requires access to (or configuration of) a DHCP and tftp server to modify network boot configuration (see http://docs.fedoraproject.org/install-guide/f10/en_US/ap-install-server.html).


How to test

  1. Copy the EFI boot images into your tftp root directory:
    • For i386 images:
      cp /boot/efi/EFI/redhat/grub.efi /var/lib/tftpboot/X86PC/UNDI/pxelinux/bootia32.efi 
    • For x86_64 images:
      cp /boot/efi/EFI/redhat/grub.efi /var/lib/tftpboot/X86PC/UNDI/pxelinux/bootx64.efi 
  2. Configure your dhcpd server to use the EFI boot images packaged with grub, and configure a test system to boot using the EFI boot image. A sample configuration in /etc/dhcpd.conf might look like:
  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;

  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:02 {
                          filename "ia64/elilo.efi";
                  } else if option arch = 00:06 {
                          filename "X86PC/UNDI/pxelinux/bootia32.efi";
                  } else if option arch = 00:07 {
                          filename "X86PC/UNDI/pxelinux/bootx64.efi";
                  } else {
                          filename "X86PC/UNDI/pxelinux/pxelinux.0";
                  }
          }

          host example-ia32 {
                  hardware ethernet XX:YY:ZZ:11:22:33;
                  fixed-address 10.0.0.2;
          }
  }
  1. Add a config file. A sample config file at /var/lib/tftpboot/X86PC/UNDI/pxelinux/efidefault might look like:
default=0
timeout=1
splashimage=(nd)/splash.xpm.gz
hiddenmenu
title Fedora
        root (nd)
        kernel /rawhide-i386/vmlinuz
        initrd /rawhide-i386/initrd.img
  1. Copy the splash image into your tftp root directory:
    cp /boot/grub/splash.xpm.gz /var/lib/tftpboot/X86PC/UNDI/pxelinux/splash.xpm.gz
  2. Copy a the boot images intor your tftp root directory:
    • For i386 type:
       cp /path/to/i386/os/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/X86PC/UNDI/pxelinux/rawhide-i386/
    • For x86_64 type:
       cp /path/to/x86_64/os/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/X86PC/UNDI/pxelinux/rawhide-x86_64/
  3. Reboot the system under test. When offered, be sure to select the network device as your boot device.

Expected Results

  1. The system should boot into the installer without error