Red Hat Training

A Red Hat training course is available for Red Hat Linux

30.2. ネットワークブートの設定

次の手順として、tftp サーバーへのインストールを開始するのに必要なファイルをコピーして、クライアントがそれを要求する時に発見できるようにします。通常、tftp サーバーはインストールツリーをエクスポートするネットワークサーバーと同じサーバーです。
PXE ブート設定の手順は、BIOS 用と EFI 用では異なります。Power Systems サーバー用には別の yaboot 設定手順が提供されています。

注記

Red Hat Satellite には、PXE サーバーを自動設定する機能があります。詳細は、 Red Hat Satellite User Guide を参照してください。

30.2.1. BIOS 用の PXE ブートの設定

  1. tftp-server がインストールされていない場合には、yum install tftp-server を実行します。
  2. /etc/xinetd.d/tftp にある tftp-server 設定ファイルで、disabled パラメーターを yes から no に変更します。
  3. SYSLINUX に同梱されているブートイメージを使用するように DHCP サーバーを設定します (DHCP サーバーをインストールしていない場合には、『Red Hat Enterprise Linux 導入ガイド』の「『DHCP サーバー』」の章を参照してください。)
    /etc/dhcp/dhcpd.conf にあるサンプルの設定ファイルの記載内容は以下の通りです。
      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;
              }
      }
  4. ここで、ISO イメージファイル内の SYSLINUX パッケージの pxelinux.0 ファイルが必要になります。このファイルにアクセスするには、root として以下のコマンドを実行します。
    mount -t iso9660 /path_to_image/name_of_image.iso /mount_point -o loop,ro
    cp -pr /mount_point/Packages/syslinux-version-architecture.rpm /publicly_available_directory
    umount /mount_point
    パッケージを抽出します。
    rpm2cpio syslinux-version-architecture.rpm | cpio -dimv
  5. tftpboot 内に pxelinux ディレクトリを作成して、これに pxelinux.0 をコピーします。
    mkdir /var/lib/tftpboot/pxelinux
    cp publicly_available_directory/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux
  6. pxelinux 内に pxelinux.cfg ディレクトリを作成します。
    mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg
  7. このディレクトリに設定ファイルを追加します。ファイル名は、default とするか、または IP アドレスにちなんだ名前を 16 進数に変換して区切りなしのものにします。例えば、マシンの IP アドレスが 10.0.0.1 の場合には、ファイル名を 0A000001 とします。
    /var/lib/tftpboot/pxelinux/pxelinux.cfg/default にあるサンプルの設定ファイルは以下のようになります。
    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 -
    インストールソースの指定方法についての詳細は、「追加できる起動オプション」を参照してください。
  8. スプラッシュイメージを tftp root ディレクトリにコピーします。
    cp /boot/grub/splash.xpm.gz /var/lib/tftpboot/pxelinux/splash.xpm.gz
  9. ブートイメージを tftp root ディレクトリにコピーします。
    cp /path/to/x86_64/os/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/pxelinux/rhel6/
  10. クライアントシステムを起動します。プロンプトが表示されたら、ブートデバイスとしてネットワークデバイスを選択してください。