14.4. HTTP ブート用の HTTP サーバーの設定

サーバーがネットワーク上で HTTP ブートリソースを提供できるように、サーバーに httpd サービスをインストールして有効にする必要があります。

前提条件

  • サーバーのネットワークアドレスがわかっている。

    次の例では、サーバーには IPv4 アドレス 192.168.124.2 のネットワークカードが搭載されています。

手順

  1. HTTP サーバーをインストールします。

    # yum install httpd
  2. /var/www/html/redhat/ ディレクトリーを作成します。

    # mkdir -p /var/www/html/redhat/
  3. RHEL DVD ISO ファイルをダウンロードします。All Red Hat Enterprise Linux Downloads を参照してください。
  4. ISO ファイルのマウントポイントを作成します。

    # mkdir -p /var/www/html/redhat/iso/
  5. ISO ファイルをマウントします。

    # mount -o loop,ro -t iso9660 path-to-RHEL-DVD.iso /var/www/html/redhat/iso
  6. マウントされた ISO ファイルからブートローダー、カーネル、initramfs を HTML ディレクトリーにコピーします。

    # cp -r /var/www/html/redhat/iso/images /var/www/html/redhat/
    # cp -r /var/www/html/redhat/iso/EFI /var/www/html/redhat/
  7. ブートローダー設定を編集可能にします。

    # chmod 644 /var/www/html/redhat/EFI/BOOT/grub.cfg
  8. /var/www/html/redhat/EFI/BOOT/grub.cfg ファイルを編集し、次のように内容を置き換えます。

    set default="1"
    
    function load_video {
      insmod efi_gop
      insmod efi_uga
      insmod video_bochs
      insmod video_cirrus
      insmod all_video
    }
    
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_gpt
    insmod ext2
    
    set timeout=60
    # END /etc/grub.d/00_header #
    
    search --no-floppy --set=root -l 'RHEL-9-3-0-BaseOS-x86_64'
    
    # BEGIN /etc/grub.d/10_linux #
    menuentry 'Install Red Hat Enterprise Linux 9.3' --class fedora --class gnu-linux --class gnu --class os {
        linuxefi ../../images/pxeboot/vmlinuz inst.repo=http://192.168.124.2/redhat/iso quiet
        initrdefi ../../images/pxeboot/initrd.img
    }
    menuentry 'Test this media & install Red Hat Enterprise Linux 9.3' --class fedora --class gnu-linux --class gnu --class os {
        linuxefi ../../images/pxeboot/vmlinuz inst.repo=http://192.168.124.2/redhat/iso quiet
        initrdefi ../../images/pxeboot/initrd.img
    }
    submenu 'Troubleshooting -->' {
        menuentry 'Install Red Hat Enterprise Linux 9.3 in text mode' --class fedora --class gnu-linux --class gnu --class os {
       	 linuxefi ../../images/pxeboot/vmlinuz inst.repo=http://192.168.124.2/redhat/iso inst.text quiet
       	 initrdefi ../../images/pxeboot/initrd.img
        }
        menuentry 'Rescue a Red Hat Enterprise Linux system' --class fedora --class gnu-linux --class gnu --class os {
       	 linuxefi ../../images/pxeboot/vmlinuz inst.repo=http://192.168.124.2/redhat/iso inst.rescue quiet
       	 initrdefi ../../images/pxeboot/initrd.img
        }
    }

    このファイル内で、次の文字列を置き換えます。

    RHEL-9-3-0-BaseOS-x86_64 および Red Hat Enterprise Linux 9.3
    ダウンロードした RHEL のバージョンと一致するようにバージョン番号を編集します。
    192.168.124.2
    サーバーの IP アドレスに置き換えます。
  9. EFI ブートファイルを実行可能にします。

    # chmod 755 /var/www/html/redhat/EFI/BOOT/BOOTX64.EFI
  10. ファイアウォールでポートを開いて、HTTP (80)、DHCP (67、68)、および DHCPv6 (546、547) トラフィックを許可します。

    # firewall-cmd --zone public \
                   --add-port={80/tcp,67/udp,68/udp,546/udp,547/udp}
    注記

    このコマンドは、次にサーバーを再起動するまで、一時的にアクセスを有効にします。永続的アクセスを有効にするには、コマンドに --permanent オプションを追加します。

  11. ファイアウォールルールを再読み込みします。

    # firewall-cmd --reload
  12. HTTP サーバーを起動します。

    # systemctl enable --now httpd
  13. html ディレクトリーとそのコンテンツを読み取り可能および実行可能にします。

    # chmod -cR u=rwX,g=rX,o=rX /var/www/html
  14. html ディレクトリーの SELinux コンテキストを復元します。

    # restorecon -FvvR /var/www/html