2.6. PXE を使用してネットワークからインストールするための準備
本セクションでは、PXE 起動およびネットワークインストールを有効にするために、PXE サーバーで TFTP および DHCP を設定する方法を説明します。
2.6.1. ネットワークインストールの概要
ネットワークインストールでは、インストールサーバーへのアクセスがあるシステムに、Red Hat Enterprise Linux をインストールできます。ネットワークインストールには、少なくとも 2 つのシステムが必要です。
- サーバー
- DHCP サーバー、HTTP、HTTPS、FTP または NFS サーバー、および PXE ブートの場合は TFTP サーバーを実行するシステム。各サーバーを実行する物理システムが同じである必要はありませんが、このセクションの手順では、1 つのシステムですべてのサーバーを実行していることが想定されています。
- クライアント
- Red Hat Enterprise Linux をインストールしているシステム。インストールが開始すると、クライアントは DHCP サーバーに問い合わせ、HTTP サーバーまたは TFTP サーバーからブートファイルを受け取り、HTTP サーバー、HTTPS サーバー、FTP サーバー、または NFS サーバーからインストールイメージをダウンロードします。その他のインストール方法とは異なり、クライアントはインストールを開始するのに物理的な起動メディアを必要としません。
ネットワークからクライアントを起動するには、ファームウェアまたはクライアントのクイックブートメニューでネットワークブートを有効にします。ハードウェアによっては、ネットワークから起動するオプションが無効になっていたり、利用できない場合があります。
HTTP または PXE を使用してネットワークから Red Hat Enterprise Linux をインストールする準備を行う手順は次のとおりです。
手順
- インストール ISO イメージまたはインストールツリーを NFS サーバー、HTTPS サーバー、HTTP サーバー、または FTP サーバーにエクスポートします。
- HTTP または TFTP サーバーと DHCP サーバーを設定し、サーバー上で HTTP または TFTP サービスを起動します。
- クライアントを起動して、インストールを開始します。
次のネットワークブートプロトコルを選択できます。
- HTTP
- Red Hat は、クライアント UEFI がサポートしている場合は HTTP ブートを使用することを推奨します。通常、HTTP ブートは信頼性に優れています。
- PXE (TFTP)
- PXE ブートはクライアントシステムによって広くサポートされています。ただし、このプロトコルを介したブートファイルの送信は低速で、タイムアウトにより失敗する可能性があります。
2.6.2. HTTP ブートおよび PXE ブート用の DHCPv4 サーバーの設定
サーバー上で DHCP バージョン 4 (DHCPv4) サービスを有効にし、ネットワークブート機能を提供できるようにします。
前提条件
IPv4 プロトコルを介したネットワークインストールを準備している。
IPv6 の場合は、HTTP ブートおよび PXE ブート用の DHCPv6 サーバーの設定 を参照してください。
サーバーのネットワークアドレスがわかっている。
以下の手順の例では、サーバーには次の設定のネットワークカードが搭載されています。
- IPv4 アドレス
- 192.168.124.2/24
- IPv4 ゲートウェイ
- 192.168.124.1
手順
DHCP サーバーをインストールします。
dnf install dhcp-server
DHCPv4 サーバーをセットアップします。
/etc/dhcp/dhcpd.conf
ファイルに次の設定を入力します。アドレスはネットワークカードと一致するように置き換えます。option architecture-type code 93 = unsigned integer 16; subnet 192.168.124.0 netmask 255.255.255.0 { option routers 192.168.124.1; option domain-name-servers 192.168.124.1; range 192.168.124.100 192.168.124.200; class "pxeclients" { match if substring (option vendor-class-identifier, 0, 9) = "PXEClient"; next-server 192.168.124.2; if option architecture-type = 00:07 { filename "redhat/EFI/BOOT/BOOTX64.EFI"; } else { filename "pxelinux/pxelinux.0"; } } class "httpclients" { match if substring (option vendor-class-identifier, 0, 10) = "HTTPClient"; option vendor-class-identifier "HTTPClient"; filename "http://192.168.124.2/redhat/EFI/BOOT/BOOTX64.EFI"; } }
DHCPv4 サービスを起動します。
# systemctl enable --now dhcpd
2.6.3. HTTP ブートおよび PXE ブート用の DHCPv6 サーバーの設定
サーバー上で DHCP バージョン 6 (DHCPv4) サービスを有効にし、ネットワークブート機能を提供できるようにします。
前提条件
IPv6 プロトコルを介したネットワークインストールを準備している。
IPv4 の場合は、HTTP ブートおよび PXE ブート用の DHCPv4 サーバーの設定 を参照してください。
サーバーのネットワークアドレスがわかっている。
以下の手順の例では、サーバーには次の設定のネットワークカードが搭載されています。
- IPv6 アドレス
- fd33:eb1b:9b36::2/64
- IPv6 ゲートウェイ
- fd33:eb1b:9b36::1
手順
DHCP サーバーをインストールします。
dnf install dhcp-server
DHCPv6 サーバーをセットアップします。
/etc/dhcp/dhcpd6.conf
ファイルに次の設定を入力します。アドレスはネットワークカードと一致するように置き換えます。option dhcp6.bootfile-url code 59 = string; option dhcp6.vendor-class code 16 = {integer 32, integer 16, string}; subnet6 fd33:eb1b:9b36::/64 { range6 fd33:eb1b:9b36::64 fd33:eb1b:9b36::c8; class "PXEClient" { match substring (option dhcp6.vendor-class, 6, 9); } subclass "PXEClient" "PXEClient" { option dhcp6.bootfile-url "tftp://[fd33:eb1b:9b36::2]/redhat/EFI/BOOT/BOOTX64.EFI"; } class "HTTPClient" { match substring (option dhcp6.vendor-class, 6, 10); } subclass "HTTPClient" "HTTPClient" { option dhcp6.bootfile-url "http://[fd33:eb1b:9b36::2]/redhat/EFI/BOOT/BOOTX64.EFI"; option dhcp6.vendor-class 0 10 "HTTPClient"; } }
DHCPv6 サービスを起動します。
# systemctl enable --now dhcpd6
DHCPv6 パケットがファイアウォールの RP フィルターによって破棄されている場合は、そのログを確認してください。ログに
rpfilter_DROP
エントリーが含まれている場合は、/etc/firewalld/firewalld.conf
ファイルで次の設定を使用してフィルターを無効にします。IPv6_rpfilter=no
2.6.4. BIOS ベースのクライアント向けに TFTP サーバーの設定
この手順に従って、TFTP サーバーおよび DHCP サーバーを設定し、BIOS ベースの AMD および Intel の 64 ビットシステム用 PXE サーバーで、TFTP サービスを開始します。
本セクションのすべての設定ファイルは例となります。設定の詳細は、アーキテクチャーや特定の要件によって異なります。
手順
root で、次のパッケージをインストールします。
# dnf install tftp-server
ファイアウォールで、
tftp service
サービスへの着信接続を許可します。# firewall-cmd --add-service=tftp
注記-
このコマンドは、次にサーバーを再起動するまで、一時的にアクセスを有効にします。永続的アクセスを有効にするには、コマンドに
--permanent
オプションを追加します。 - ISO インストールファイルの場所によっては、HTTP などのサービスの着信接続を許可しないといけない場合があります。
-
このコマンドは、次にサーバーを再起動するまで、一時的にアクセスを有効にします。永続的アクセスを有効にするには、コマンドに
DVD ISO イメージファイルの
SYSLINUX
パッケージからpxelinux.0
ファイルにアクセスします。ここで、my_local_directory は、作成するディレクトリーの名前です。# mount -t iso9660 /path_to_image/name_of_image.iso /mount_point -o loop,ro
# cp -pr /mount_point/AppStream/Packages/syslinux-tftpboot-version-architecture.rpm /my_local_directory
# umount /mount_point
パッケージをデプロイメントします。
# rpm2cpio syslinux-tftpboot-version-architecture.rpm | cpio -dimv
tftpboot/
にpxelinux/
ディレクトリーを作成し、そのディレクトリーからpxelinux/
ディレクトリーにすべてのファイルをコピーします。# mkdir /var/lib/tftpboot/pxelinux
# cp /my_local_directory/tftpboot/* /var/lib/tftpboot/pxelinux
pxelinux/
ディレクトリーにpxelinux.cfg/
ディレクトリーを作成します。# mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg
default
という名前の設定ファイルを作成し、以下の例のようにpxelinux.cfg/
ディレクトリーに追加します。default vesamenu.c32 prompt 1 timeout 600 display boot.msg label linux menu label ^Install system menu default kernel images/RHEL-9/vmlinuz append initrd=images/RHEL-9/initrd.img ip=dhcp inst.repo=http://192.168.124.2/RHEL-9/x86_64/iso-contents-root/ label vesa menu label Install system with ^basic video driver kernel images/RHEL-9/vmlinuz append initrd=images/RHEL-9/initrd.img ip=dhcp inst.xdriver=vesa nomodeset inst.repo=http://192.168.124.2/RHEL-9/x86_64/iso-contents-root/ label rescue menu label ^Rescue installed system kernel images/RHEL-9/vmlinuz append initrd=images/RHEL-9/initrd.img inst.rescue inst.repo=http:///192.168.124.2/RHEL-8/x86_64/iso-contents-root/ label local menu label Boot from ^local drive localboot 0xffff
注記-
このランタイムイメージなしでは、インストールプログラムは起動できません。
inst.stage2
起動オプションを使用して、イメージの場所を指定します。または、inst.repo=
オプションを使用して、イメージおよびインストールソースを指定することも可能です。 -
inst.repo
で使用したインストールソースの場所には、有効なtreeinfo
ファイルが含まれている必要があります。 -
インストールソースとして RHEL9 インストール DVD を選択すると、
.treeinfo
ファイルが BaseOS リポジトリーおよび AppStream リポジトリーを指定します。単一のinst.repo
オプションを使用することで両方のリポジトリーを読み込むことができます。
-
このランタイムイメージなしでは、インストールプログラムは起動できません。
/var/lib/tftpboot/
ディレクトリーに、ブートイメージファイルを保存するサブディレクトリーを作成し、そのディレクトリーにブートイメージファイルをコピーします。この例のディレクトリーは、/var/lib/tftpboot/pxelinux/images/RHEL-9/
になります。# mkdir -p /var/lib/tftpboot/pxelinux/images/RHEL-9/ # cp /path_to_x86_64_images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/pxelinux/images/RHEL-9/
tftp.socket
サービスを開始して有効にします。# systemctl enable --now tftp.socket
これにより、PXE 起動サーバーでは、PXE クライアントにサービスを提供する準備が整いました。クライアント (Red Hat Enterprise Linux のインストール先システム) を起動し、起動ソースを指定するように求められたら、PXE ブート を選択してネットワークインストールを開始できます。
2.6.5. UEFI ベースのクライアント向けに TFTP サーバーの設定
この手順に従って、TFTP サーバーおよび DHCP サーバーを設定し、UEFI ベースの AMD64、Intel 64、および 64 ビット ARM システム用に、PXE サーバーで TFTP サービスを開始する方法を説明します。
- 本セクションのすべての設定ファイルは例となります。設定の詳細は、アーキテクチャーや特定の要件によって異なります。
-
Red Hat Enterprise Linux 9 UEFI PXE ブートは、MAC ベースの grub メニューファイルの小文字のファイル形式に対応します。たとえば、grub2 の MAC アドレスのファイル形式は
grub.cfg-01-aa-bb-cc-dd-ee-ff
です。
手順
root で、次のパッケージをインストールします。
# dnf install tftp-server
ファイアウォールで、
tftp service
サービスへの着信接続を許可します。# firewall-cmd --add-service=tftp
注記-
このコマンドは、次にサーバーを再起動するまで、一時的にアクセスを有効にします。永続的アクセスを有効にするには、コマンドに
--permanent
オプションを追加します。 - ISO インストールファイルの場所によっては、HTTP などのサービスの着信接続を許可しないといけない場合があります。
-
このコマンドは、次にサーバーを再起動するまで、一時的にアクセスを有効にします。永続的アクセスを有効にするには、コマンドに
DVD ISO イメージから EFI ブートイメージファイルにアクセスします。
# mount -t iso9660 /path_to_image/name_of_image.iso /mount_point -o loop,ro
DVD ISO イメージから EFI ブートイメージをコピーします。
# mkdir /var/lib/tftpboot/redhat # cp -r /mount_point/EFI /var/lib/tftpboot/redhat/ # umount /mount_point
コピーしたファイルのパーミッションを修正します。
# chmod -R 755 /var/lib/tftpboot/redhat/
/var/lib/tftpboot/redhat/EFI/BOOT/grub.cfg
の内容を次の例に置き換えます。set timeout=60 menuentry 'RHEL 9' { linuxefi images/RHEL-9/vmlinuz ip=dhcp inst.repo=http://192.168.124.2/RHEL-9/x86_64/iso-contents-root/ initrdefi images/RHEL-9/initrd.img }
注記-
このランタイムイメージなしでは、インストールプログラムは起動できません。
inst.stage2
起動オプションを使用して、イメージの場所を指定します。または、inst.repo=
オプションを使用して、イメージおよびインストールソースを指定することも可能です。 -
inst.repo
で使用したインストールソースの場所には、有効なtreeinfo
ファイルが含まれている必要があります。 -
インストールソースとして RHEL9 インストール DVD を選択すると、
.treeinfo
ファイルが BaseOS リポジトリーおよび AppStream リポジトリーを指定します。単一のinst.repo
オプションを使用することで両方のリポジトリーを読み込むことができます。
-
このランタイムイメージなしでは、インストールプログラムは起動できません。
/var/lib/tftpboot/
ディレクトリーに、ブートイメージファイルを保存するサブディレクトリーを作成し、そのディレクトリーにブートイメージファイルをコピーします。この例のディレクトリーは、/var/lib/tftpboot/images/RHEL-9/
になります。# mkdir -p /var/lib/tftpboot/images/RHEL-9/ # cp /path_to_x86_64_images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/images/RHEL-9/
tftp.socket
サービスを開始して有効にします。# systemctl enable --now tftp.socket
これにより、PXE 起動サーバーでは、PXE クライアントにサービスを提供する準備が整いました。クライアント (Red Hat Enterprise Linux のインストール先システム) を起動し、起動ソースを指定するように求められたら、PXE ブート を選択してネットワークインストールを開始できます。
2.6.6. IBM Power システム用のネットワークサーバーの設定
この手順に従って、GRUB2 を使用して、IBM Power システム用のネットワーク起動サーバーを設定する方法を説明します。
本セクションのすべての設定ファイルは例となります。設定の詳細は、アーキテクチャーや特定の要件によって異なります。
手順
root で、次のパッケージをインストールします。
# dnf install tftp-server dhcp-server
tftp
サービスへの着信接続をファイアウォールで許可します。# firewall-cmd --add-service=tftp
注記-
このコマンドは、次にサーバーを再起動するまで、一時的にアクセスを有効にします。永続的アクセスを有効にするには、コマンドに
--permanent
オプションを追加します。 - ISO インストールファイルの場所によっては、HTTP などのサービスの着信接続を許可しないといけない場合があります。
-
このコマンドは、次にサーバーを再起動するまで、一時的にアクセスを有効にします。永続的アクセスを有効にするには、コマンドに
TFTP のルート内に 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 設定で設定する必要があるファイル名をユーザーに通知します。
PXE サーバーを x86 マシンで実行している場合は、tftp root に
GRUB2
ネットワーク起動ディレクトリーを作成する前に、grub2-ppc64-modules
をインストールする必要があります。# dnf install grub2-ppc64-modules
以下の例のように、GRUB2 設定ファイル (
/var/lib/tftpboot/boot/grub2/grub.cfg
) を作成します。set default=0 set timeout=5 echo -e "\nWelcome to the Red Hat Enterprise Linux 9 installer!\n\n" menuentry 'Red Hat Enterprise Linux 9' { linux grub2-ppc64/vmlinuz ro ip=dhcp inst.repo=http://192.168.124.2/RHEL-9/x86_64/iso-contents-root/ initrd grub2-ppc64/initrd.img }
注記-
このランタイムイメージなしでは、インストールプログラムは起動できません。
inst.stage2
起動オプションを使用して、イメージの場所を指定します。または、inst.repo=
オプションを使用して、イメージおよびインストールソースを指定することも可能です。 -
inst.repo
で使用したインストールソースの場所には、有効なtreeinfo
ファイルが含まれている必要があります。 -
インストールソースとして RHEL8 インストール DVD を選択すると、
.treeinfo
ファイルが BaseOS リポジトリーおよび AppStream リポジトリーを指定します。単一のinst.repo
オプションを使用することで両方のリポジトリーを読み込むことができます。
-
このランタイムイメージなしでは、インストールプログラムは起動できません。
このコマンドを使用して DVD ISO イメージをマウントします。
# mount -t iso9660 /path_to_image/name_of_iso/ /mount_point -o loop,ro
ディレクトリーを作成し、DVD ISO イメージから
initrd.img
ファイルおよびvmlinuz
ファイルをコピーします。以下に例を示します。# cp /mount_point/ppc/ppc64/{initrd.img,vmlinuz} /var/lib/tftpboot/grub2-ppc64/
以下の例のように、
GRUB2
に同梱されているブートイメージを使用するように DHCP サーバーを設定します。DHCP サーバーがすでに設定されている場合は、DHCP サーバーでこの手順を実行します。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
を変更します。file name
パラメーターは、この手順のステップで、grub2-mknetdir
コマンドで出力したファイル名となります。 DHCP サーバーで
dhcpd
サービスを開始して有効にします。localhost で DHCP サーバーを設定している場合は、ローカルホストでdhcpd
サービスを開始して有効にします。# systemctl enable --now dhcpd
tftp.socket
サービスを開始して有効にします。# systemctl enable --now tftp.socket
これにより、PXE 起動サーバーでは、PXE クライアントにサービスを提供する準備が整いました。クライアント (Red Hat Enterprise Linux のインストール先システム) を起動し、起動ソースを指定するように求められたら、PXE ブート を選択してネットワークインストールを開始できます。