Ubuntu 16.04上にUbuntu 18.04のPXEブートサーバをセットアップ
はじめに
Ubuntu 16.04をルーター化 したところに Ubuntu 18.04のPXEブートサーバをセットアップしたメモです。
Ubuntu 18.04はリリース前の 2018-04-21版 を使いました。
手順は Ubuntu 16.04 / Debian 8: PXEブートサーバをインストールしてネットワークインストール環境を整える - Narrow Escape を参考にしましたが、preseedは今回は使わないようにしました。
tftpサーバのインストールと起動
tftpd-hpa
パッケージをインストール。
sudo apt install tftpd-hpa
うろ覚えですが、インストールして状態確認すると、起動して自動起動も有効になっていたと思います。
systemctl status tftpd-hpa
dhcpサーバのインストールと起動
isc-dhcp-server
パッケージをインストール。
sudo apt install isc-dhcp-server
設定ファイル /etc/dhcp/dhcpd.conf
に自分の環境に応じた設定を追記。
hardware ethernet
の後のMACアドレス xx:xx:xx:xx:xx:xx
は実際の値に置き換えてください。
PXEブートのときにコンソールに表示されていたのでそれを見ながら設定しました。
事前に設定するならBIOSで確認すれば良さそうです。
subnet 192.168.3.0 netmask 255.255.255.0 {
option domain-name-servers 192.168.2.1;
option routers 192.168.3.1;
filename "pxelinux.0";
}
host ubuntu-18.04-pxeboot {
hardware ethernet xx:xx:xx:xx:xx:xx;
fixed-address 192.168.3.2;
}
コマンドで追記にするなら以下の2つのどちらかで。後者のほうがクォートが不要というメリットがあります。
sudo sh -c 'cat <<EOF >> /etc/dhcp/dhcpd.conf
subnet 192.168.3.0 netmask 255.255.255.0 {
option domain-name-servers 192.168.2.1;
option routers 192.168.3.1;
filename "pxelinux.0";
}
host ubuntu-18.04-pxeboot {
hardware ethernet xx:xx:xx:xx:xx:xx;
fixed-address 192.168.3.2;
}
EOF
'
.. code-block:: console
sudo cat <<EOF | sudo tee -a /etc/dhcp/dhcpd.conf > /dev/null
subnet 192.168.3.0 netmask 255.255.255.0 {
option domain-name-servers 192.168.2.1;
option routers 192.168.3.1;
filename "pxelinux.0";
}
host ubuntu-18.04-pxeboot {
hardware ethernet xx:xx:xx:xx:xx:xx;
fixed-address 192.168.3.2;
}
EOF
こちらもうろ覚えですが、起動と自動起動有効化はすでにされていたと思うので、再起動して設定変更を反映しました。
sudo systemctl restart isc-dhcp-server
Ubuntu 18.04のネットブートイメージの取得と設置
参考にした記事ではpreseedを使うためにネットブートイメージのtarballを取得・展開した後、小分けにコピーしていましたが、preseed無しなら単にtarballをtfptd-hpaの公開ディレクトリ /var/lib/tftpboot
に展開して所有者を tftp
にするだけでOKでした。
curl -LO http://archive.ubuntu.com/ubuntu/dists/bionic/main/installer-amd64/current/images/netboot/netboot.tar.gz
sudo tar xf netboot.tar.gz -C /var/lib/tftpboot
sudo chown -R tftp:tftp /var/lib/tftpboot