第23章 ネットワークからのインストールの準備

インストールサーバーを使ったネットワークインストールでは、ネットワークブート サーバーを使って複数のシステムに Red Hat Enterprise Linux をインストールすることができます。この方法では、PXE インストール設定されたシステムはすべてこのサーバーによって提供されるイメージを使用して起動し、インストールプログラムを自動的に開始します。

注記

Red Hat Satellite には、PXE サーバーを自動設定する機能があります。詳細は、 Red Hat Satellite User Guide を参照してください。
ネットワークからのインストールには、少なくとも以下の 2 つのシステムが必要になります。
  • サーバー - DHCP サーバー、起動ファイルを提供する TFTP サーバー、およびインストールイメージを格納している HTTP、FTP もしくは NFS サーバーを稼働するシステム。理論的には、これら各サーバーは別個のシステム上で稼働することが可能です。本セクションの手順では便宜上、単一のシステムがこれらすべてのサーバーを稼働していることとします。
  • クライアント - Red Hat Enterprise Linux のインストール先となるシステム。インストールが開始されると、クライアントは DHCP サーバーにクエリを行い、TFTP サーバーから起動ファイルを取得し、HTTP、FTP または NFS サーバーからインストールイメージをダウンロードします。
他のインストール方法とは異なり、インストールを開始するためにクライアント (インストール先のシステム) に物理的な起動用メディアを挿入する必要はありません。本章では、ネットワークからのインストールの準備に必要となるステップを説明します。
ネットワークインストールの準備として次の手順を実行してください。
  1. インストールツリーまたはインストール ISO イメージをエクスポートするためのネットワークサーバー (NFSHTTPSHTTP、または FTP) を設定します。設定の手順については、「インストールソース - ネットワーク」 を参照してください。
  2. tftp サーバー上のファイルでネットワーク起動に必要な設定を行い、DHCP を設定してから PXE サーバー上で tftp サービスを開始します。詳細は、「ネットワークブートサービスの設定」 を参照してください。

    重要

    GRUB2 ブートローダーは、tftp サーバーからのネットワークブートとは別に、HTTP もサポートしています。ただし、このプロトコルによる起動ファイル (カーネルおよびインストーラー用初期 RAM ディスク) の取得は時間がかかり、タイムアウトになるリスクがあります。起動ファイルの取得には tftp サーバーを使用することが推奨されます。
    この注意点が適用されるのは、カーネルと初期 RAM ディスク (vmlinuz および initrd) のみです。インストールソースHTTP サーバーから取得する際には、このリスクはありません。
  3. クライアント (Red Hat Enterprise Linux をインストールするシステム) を起動し、インストールを開始します。

注記

本章の手順では、Red Hat Enterprise Linux 7 上にネットワーク起動サーバーを設定する方法を説明しています。以前の Red Hat Enterprise Linux リリースでネットワークからの起動を設定する方法については、各リリースの 『インストールガイド』 を参照してください。

23.1. ネットワークブートサービスの設定

インストールで使用するパッケージリポジトリーが収納されたネットワークサーバーの設定が完了したら、次は PXE サーバー自体を設定します。このサーバーには、Red Hat Enterprise Linux の起動とインストールの開始に必要なファイルが含まれます。さらに DHCP サーバーの設定も必要になります。また、必要なサービスをすべて有効化して開始する必要があります。

注記

Red Hat Enterprise Linux をインストールする AMD64 システムまたは Intel 64 システムが BIOS と UEFI のどちらを使用しているかによって、ネットワーク起動の設定手順が異なります。ご使用のシステムがどちらを使用しているかを製造元が提供する説明書でご確認の上、該当する手順に従ってください。
GRUB2 ブートローダーを使ってネットワークの場所から IBM Power Systems を起動する場合は、別途記載の手順に従ってください。詳細は、「GRUB2 を使って IBM Power Systems 向けにネットワーク起動を設定する」 を参照してください。
ヘッドレスシステム (ディスプレイ、キーボード、マウスが直接接続されていないシステム) で使用するためのネットワークブートサーバーの設定に関する詳細情報は、25章ヘッドレスシステム を参照してください。

23.1.1. BIOS ベースの AMD64 と Intel 64 クライアント向けに TFTP サーバーを設定する

以下の手順では、BIOS ベースの AMD64 および Intel 64 システムの起動用の PXE サーバーの準備について説明しています。UEFI ベースのシステムについては、「UEFI ベースの AMD64 と Intel 64 クライアント向けに TFTP サーバーを設定する」 を参照してください。

手順23.1 BIOS ベースのシステム向けに TFTP ブートサーバーを設定する

  1. tftp-server パッケージをインストールします。root で以下のコマンドを実行します。
    # yum install tftp-server
  2. tftp サービスへの全受信をファイアウォールで許可します。
    # firewall-cmd --add-service=tftp

    注記

    上記のコマンドが有効にするのは、次回のサーバー再起動までのアクセスのみです。永続的にアクセスを許可するには、--permanent オプションを追加します。ファイアウォール設定についての詳細は、Red Hat Enterprise Linux 7 セキュリティーガイド を参照してください。
  3. SYSLINUX に同梱されている起動イメージを使用するように DHCP サーバーを設定します。DHCP サーバーがインストールされていない場合は、Red Hat Enterprise Linux 7 ネットワークガイド を参照してください。
    /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;
    option architecture-type 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 architecture-type = 00:07 {
    	    filename "uefi/shim.efi";
    	    } else {
    	    filename "pxelinux/pxelinux.0";
    	  }
    	}
    }
  4. 次に、完全インストール DVD の 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
    pxelinux.cfg/ ディレクトリーに default という名前の設定ファイルを追加します。
    /var/lib/tftpboot/pxelinux/pxelinux.cfg/default にあるサンプルの設定ファイルは以下のようになります。
    default vesamenu.c32
    prompt 1
    timeout 600
    
    display boot.msg
    
    label linux
      menu label ^Install system
      menu default
      kernel images/RHEL-7.1/vmlinuz
      append initrd=images/RHEL-7.1/initrd.img ip=dhcp inst.repo=http://10.32.5.1/mnt/archive/RHEL-7/7.x/Server/x86_64/os/
    label vesa
      menu label Install system with ^basic video driver
      kernel images/RHEL-7.1/vmlinuz
      append initrd=images/RHEL-7.1/initrd.img ip=dhcp inst.xdriver=vesa nomodeset inst.repo=http://10.32.5.1/mnt/archive/RHEL-7/7.x/Server/x86_64/os/
    label rescue
      menu label ^Rescue installed system
      kernel images/RHEL-7.1/vmlinuz
      append initrd=images/RHEL-7.1/initrd.img rescue
    label local
      menu label Boot from ^local drive
      localboot 0xffff

    重要

    上記の例で示されている inst.repo= Anaconda オプションでは、常にインストールソースに加えてインストールプログラムのイメージを指定する必要があります。このオプションを使用しないと、インストールプログラムは起動できなくなります。Anaconda の起動オプションに関する詳細は、「ブートメニューでインストールシステムを設定する」 を参照してください。
  7. ブートイメージファイルを格納するサブディレクトリーを /var/lib/tftpboot/ ディレクトリーに作成し、ブートイメージファイルをそのディレクトリーにコピーします。この例では、/var/lib/tftpboot/images/RHEL-7.1/ ディレクトリーを使用します。
    # mkdir -p /var/lib/tftpboot/images/RHEL-7.1/
    # cp /path_to_x86_64_images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/images/RHEL-7.1/
  8. 最後に、サービスを開始して有効にします。
    • dhcpd については、以下を実行します。
      # systemctl start dhcpd
      # systemctl enable dhcpd
    • tftpd サービスを管理する xinetd サービスについては、以下を実行します。
      # systemctl start xinetd
      # systemctl enable xinetd
この手順を完了すると、PXE ブートサーバーが PXE クライアントにサービスを提供できるようになります。Red Hat Enterprise Linux をインストールするシステムを開始します。起動ソースの指定を求められたら PXE Boot を選択して、ネットワークインストールを開始します。詳細は、「AMD64 および Intel 64 のシステムで PXE を使ってネットワークからインストールプログラムを起動する」 を参照してください。

23.1.2. UEFI ベースの AMD64 と Intel 64 クライアント向けに TFTP サーバーを設定する

以下の手順では、UEFI ベースの AMD64 および Intel 64 システムの起動用の PXE サーバーの準備について説明しています。BIOS ベースのシステムについては、「BIOS ベースの AMD64 と Intel 64 クライアント向けに TFTP サーバーを設定する」 を参照してください。

手順23.2 UEFI ベースのシステム向けに TFTP での起動を設定する

  1. tftp-server パッケージをインストールします。root で以下のコマンドを実行します。
    # yum install tftp-server
  2. tftp サービスへの全受信をファイアウォールで許可します。
    # firewall-cmd --add-service=tftp

    注記

    上記のコマンドが有効にするのは、次回のサーバー再起動までのアクセスのみです。永続的にアクセスを許可するには、--permanent オプションを追加します。ファイアウォール設定についての詳細は、Red Hat Enterprise Linux 7 セキュリティーガイド を参照してください。
  3. shim に同梱されている EFI 起動イメージを使用するように DHCP サーバーを設定します。DHCP サーバーがインストールされていない場合は、Red Hat Enterprise Linux 7 ネットワークガイド を参照してください。
    /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;
    option architecture-type 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 architecture-type = 00:07 {
    	    filename "shim.efi";
    	  } else {
    	    filename "pxelinux/pxelinux.0";
    		}
      }
    }
  4. 次に、ISO イメージファイル内にある shim パッケージの shim.efi ファイルと grub2-efi パッケージの grubx64.efi ファイルが必要になります。これらのファイルにアクセスするには次のコマンドを root で実行します。
    # mount -t iso9660 /path_to_image/name_of_image.iso /mount_point -o loop,ro
    # cp -pr /mount_point/Packages/shim-version-architecture.rpm /publicly_available_directory
    # cp -pr /mount_point/Packages/grub2-efi-version-architecture.rpm /publicly_available_directory
    # umount /mount_point
    パッケージを抽出します。
    # rpm2cpio shim-version-architecture.rpm | cpio -dimv
    # rpm2cpio grub2-efi-version-architecture.rpm | cpio -dimv
  5. ブートディレクトリーから EFI ブートイメージをコピーします。
    # cp publicly_available_directory/boot/efi/EFI/redhat/shim.efi /var/lib/tftpboot/
    # cp publicly_available_directory/boot/efi/EFI/redhat/grubx64.efi /var/lib/tftpboot/
  6. grub.cfg という名前の設定ファイルを tftpboot/ ディレクトリーに追加します。/var/lib/tftpboot/grub.cfg の設定ファイルの例を以下に示します。
    set timeout=60
    menuentry 'RHEL 7' {
      linuxefi images/RHEL-7.1/vmlinuz ip=dhcp inst.repo=http://10.32.5.1/mnt/archive/RHEL-7/7.1/Server/x86_64/os/
      initrdefi images/RHEL-7.1/initrd.img
    }

    重要

    上記の例で示されている inst.repo= Anaconda オプションでは、常にインストールソースに加えてインストールプログラムのイメージを指定する必要があります。このオプションを使用しないと、インストールプログラムは起動できなくなります。Anaconda の起動オプションに関する詳細は、「ブートメニューでインストールシステムを設定する」 を参照してください。
  7. ブートイメージファイルを格納するサブディレクトリーを /var/lib/tftpboot/ ディレクトリーに作成し、ブートイメージファイルをそのディレクトリーにコピーします。この例では、/var/lib/tftpboot/images/RHEL-7.1/ ディレクトリーを使用します。
    # mkdir -p /var/lib/tftpboot/images/RHEL-7.1/# cp /path_to_x86_64_images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/images/RHEL-7.1/
  8. 最後に、サービスを開始して有効にします。
    • dhcpd については、以下を実行します。
      # systemctl start dhcpd
      # systemctl enable dhcpd
    • tftpd サービスを管理する xinetd サービスについては、以下を実行します。
      # systemctl start xinetd
      # systemctl enable xinetd
この手順を完了すると、PXE ブートサーバーが PXE クライアントにサービスを提供できるようになります。Red Hat Enterprise Linux をインストールするシステムを開始します。起動ソースの指定を求められたら PXE Boot を選択して、ネットワークインストールを開始します。詳細は、「AMD64 および Intel 64 のシステムで PXE を使ってネットワークからインストールプログラムを起動する」 を参照してください。

23.1.3. GRUB2 を使って IBM Power Systems 向けにネットワーク起動を設定する

手順23.3 GRUB2 を使って IBM Power Systems 向けにネットワーク起動サーバーを設定する

  1. tftp-server パッケージをインストールします。root で以下のコマンドを実行します。
    # yum install tftp-server
  2. tftp サービスへの全受信をファイアウォールで許可します。
    # firewall-cmd --add-service=tftp

    注記

    上記のコマンドが有効にするのは、次回のサーバー再起動までのアクセスのみです。永続的にアクセスを許可するには、--permanent オプションを追加します。ファイアウォール設定についての詳細は、Red Hat Enterprise Linux 7 セキュリティーガイド を参照してください。
  3. tftp root 内に GRUB2 ネットワーク起動ディレクトリーを作成します。
    # grub2-mknetdir --net-directory=/var/lib/tftpboot
    Netboot directory for powerpc-ieee1275 created. Configure your DHCP server to point to /boot/grub2/powerpc-ieee1275/core.elf
    このコマンドの出力では、DHCP 設定内で filename として設定する必要のあるファイルが指示されます。これはこの手順の後で重要なものです。
  4. GRUB2 設定ファイルである /var/lib/tftpboot/boot/grub2/grub.cfg を作成します。grub.cfg の構文については、Red Hat Enterprise Linux 7 システム管理者のガイド を参照してください。
    以下は設定ファイルの例になります。
    set default=0
    set timeout=5
    
    echo -e "\nWelcome to the Red Hat Enterprise Linux 7.4 installer!\n\n"
    
    menuentry 'Red Hat Enterprise Linux 7.4' {
      linux grub2-ppc64/vmlinuz ro ip=dhcp inst.repo=http://10.32.5.1/mnt/archive/RHEL-7/7.4/Server/ppc64/os/
      initrd grub2-ppc64/initrd.img
    }

    重要

    上記の例で示されている inst.repo= Anaconda オプションでは、常にインストールソースに加えてインストールプログラムのイメージを指定する必要があります。このオプションを使用しないと、インストールプログラムは起動できなくなります。Anaconda の起動オプションに関する詳細は、「ブートメニューでインストールシステムを設定する」 を参照してください。
  5. GRUB2 に同梱されている起動イメージを使用するように DHCP サーバーを設定します。DHCP サーバーがインストールされていない場合は、Red Hat Enterprise Linux 7 ネットワークガイド を参照してください。
    /etc/dhcp/dhcpd.conf ファイルの設定例を以下に示します。
    subnet 192.168.0.1 netmask 255.255.255.0 {
      allow bootp;
      option routers 192.168.0.5;
      group { #BOOTP POWER clients
        filename "boot/grub2/powerpc-ieee1275/core.elf";
        host client1 {
        hardware ethernet 01:23:45:67:89:ab;
        fixed-address 192.168.0.112;
        }
      }
    }
    サンプルのパラメーター (subnet, netmask, routers, fixed-address および hardware ethernet) を使用中のネットワーク設定のものに置き換えます。また、filename のパラメーターは、上記の手順の grub2-mknetdir コマンドの出力にあるファイル名になります。
  6. 最後に、サービスを開始して有効にします。
    • dhcpd については、以下を実行します。
      # systemctl start dhcpd
      # systemctl enable dhcpd
    • tftpd サービスを管理する xinetd サービスについては、以下を実行します。
      # systemctl start xinetd
      # systemctl enable xinetd
この手順を完了すると、PXE ブートサーバーが PXE クライアントにサービスを提供できるようになります。12章IBM Power Systems でのインストールの起動 にあるステップに従って、このサーバーから Power Systems クライアントの起動ができます。
IBM Power Systems クライアント向けにネットワーク起動を設定する詳細情報については、IBM DeveloperWorks ウェブサイトの Netbooting on POWER - An Introduction を参照してください。