CentOS Stream 8
Sponsored Link

PXE Boot : ネットワークインストール (UEFI)2021/06/24

 
UEFI で起動するクライアントコンピューターから PXE サーバーに配置した ISO イメージを読み込んでネットワークインストールします。
[1]
[2] ネットワーク経由でブートさせたい OS の ISO イメージを前もって適当な場所へダウンロードしておき、以下の作業を行います。
下例は事前に CentOS Stream 8 の ISO イメージを [/home] 配下にダウンロードしています。
[root@dlp ~]#
mkdir rpm

[root@dlp ~]#
dnf -y install --downloadonly --downloaddir=/root/rpm shim grub2-efi-x64
[root@dlp ~]#
cd rpm

[root@dlp rpm]#
rpm2cpio shim-x64-*.rpm | cpio -dimv

[root@dlp rpm]#
rpm2cpio grub2-efi-x64-*.rpm | cpio -dimv

[root@dlp rpm]#
cp ./boot/efi/EFI/BOOT/BOOTX64.EFI /var/lib/tftpboot/

[root@dlp rpm]#
cp ./boot/efi/EFI/centos/grubx64.efi /var/lib/tftpboot/

[root@dlp rpm]#
chmod 644 /var/lib/tftpboot/{BOOTX64.EFI,grubx64.efi}

[root@dlp rpm]#
[root@dlp ~]#
mkdir -p /var/pxe/centos-st8

[root@dlp ~]#
mkdir /var/lib/tftpboot/centos-st8

[root@dlp ~]#
mount -t iso9660 -o loop,ro /home/CentOS-Stream-8-x86_64-20210617-dvd1.iso /var/pxe/centos-st8

[root@dlp ~]#
cp /var/pxe/centos-st8/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/centos-st8/
[root@dlp ~]#
vi /var/lib/tftpboot/grub.cfg
# 新規作成

# PXE サーバーのホスト名 または IP アドレスは自身の環境に置き換え

set timeout=10
menuentry 'Install CentOS Stream 8' {
    linuxefi centos-st8/vmlinuz ip=dhcp inst.repo=http://10.0.0.30/centos-st8
    initrdefi centos-st8/initrd.img
}
[3] こちらを参考に Apache httpd をインストールして起動しておきます
その後、追加で以下の設定をします。
[root@dlp ~]#
vi /etc/httpd/conf.d/pxeboot.conf
# 新規作成

Alias /centos-st8 /var/pxe/centos-st8
<Directory /var/pxe/centos-st8>
    Options Indexes FollowSymLinks
    # アクセス許可範囲
    Require ip 127.0.0.1 10.0.0.0/24
</Directory>

[root@dlp ~]#
systemctl restart httpd

[4] UEFI ブートのクライアントコンピューターでネットワークブートを有効にして起動すると、 PXE サーバーからの読み込みが開始され、以下のように設定したメニューが表示されます。Enter キーを押下するとインストールが開始されます。
[5] インストールが正常に終了し、以下のように起動できれば OK です。
関連コンテンツ