CentOS Stream 8
Sponsored Link

PXE Boot : ディスクレスクライアント2021/06/24

 
ハードディスクを搭載していないクライアントコンピューターから、PXE サーバーに配置した OS イメージを読み込んでシステムを起動します。
[1]
[2] PXE サーバーへ追加でパッケージをインストールします。
[root@dlp ~]#
dnf -y install dracut-network nfs-utils
[3] PXE サーバー上にクライアント配信用システムを用意します。インストールパッケージは必要に応じて変更ください。
[root@dlp ~]#
mkdir -p /var/lib/tftpboot/centos-st8/root

[root@dlp ~]#
dnf group -y install "Server with GUI" --installroot=/var/lib/tftpboot/centos-st8/root/
# root パスワード生成 (後で入力するのでメモしておく)

[root@dlp ~]#
/usr/libexec/platform-python -c 'import crypt,getpass; \
print(crypt.crypt(getpass.getpass(), \
crypt.mksalt(crypt.METHOD_SHA512)))'
Password:
$6$EC1T.oKN5f3seb20$y1WlMQ7Ih424OwOn.....
[root@dlp ~]#
vi /var/lib/tftpboot/centos-st8/root/etc/shadow
# クライアント配信用システムの root パスワードを設定

root:
$6$EC1T.oKN5f3seb20$y1WlMQ7Ih424OwOn.....
:16372:0:99999:7:::
# クライアント配信用システムのロケール設定

[root@dlp ~]#
vi /var/lib/tftpboot/centos-st8/root/etc/locale.conf
LANG="en_US.UTF-8"
# クライアント配信用システムのホスト名設定

[root@dlp ~]#
vi /var/lib/tftpboot/centos-st8/root/etc/hostname
localhost.localdomain
[4] クライアント配信用のファイルをネットワークで共有できるよう NFS サーバーを起動します。
[root@dlp ~]#
vi /etc/exports
/var/lib/tftpboot/centos-st8/root 10.0.0.0/24(rw,no_root_squash)
[root@dlp ~]#
systemctl enable --now nfs-server
# Firewalld 稼働中の場合はサービス許可

[root@dlp ~]#
firewall-cmd --add-service=nfs --permanent

[root@dlp ~]#
firewall-cmd --reload

[5] BIOS ベースでネットワークブートするクライアントシステムへは以下のように設定します。
[root@dlp ~]#
wget -P /var/lib/tftpboot/centos-st8/ \
http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/images/pxeboot/vmlinuz \
http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/images/pxeboot/initrd.img
[root@dlp ~]#
vi /var/lib/tftpboot/pxelinux.cfg/default
# 新規作成

default centos-st8

label centos-st8
    kernel centos-st8/vmlinuz
    append initrd=centos-st8/initrd.img root=nfs:10.0.0.30:/var/lib/tftpboot/centos-st8/root rw selinux=0 
[6] 以上で設定完了です。
ネットワークブートが有効なクライアントコンピューターを起動すると、以下のように PXE サーバーからファイルを読み込み、システムが起動します。
関連コンテンツ