スキップしてメイン コンテンツに移動

投稿

3月, 2025の投稿を表示しています

CD イメージを作成し iPXE 経由で nfs に配置した Ubuntu 24.04 amd64 インストーラ をセキュアブート

iPXEの公式サイトにはサイン済みの iPXE バイナリは公開されてないのですが、調べていると broadcom 社の kb サイトにそれらしき物 ( https://knowledge.broadcom.com/external/article/280113/updated-64bit-ipxeefi-ipxe-v1211+-binari.html 64bit_ipxe_efi.zip ) があるとのことでした。そこでファイルをダウンロード・解凍し tftp にファイル ( snponly.efi ) を配置し kea-dhcp4 の設定をして、セキュアブートを有効にしたクライアントを起動したところ、iPXE でブートはするものの、次のステージは特定のhttp ポート(4433)かつ特定のパス ( Altiris/iPXE/GetPxeScript.aspx )を取得しようとしているため、何もしていない状態だと connection が reset されブートに失敗してしまいます。 そこで、apache2 を /srv/tftp を DocumentRoot にして、さらに port 4433 でも待ち受けし、かつ、/srv/tftp/ 以下に Altiris/iPXE/GetPxeScript.aspx を以下のような最小限の内容の ipxe スクリプトで記述したところ、ipxe shell に入れました。 #!ipxe shell ipxeメニュが起動したので、よしこれでOKだと思ったのですが、実はここからが難題でした。 というのも、今回の ipxe.efi/snponly.efiは CD イメージのブートには対応するものの、linux kernel をブートする機能は含まれていない様子でした。また、efiファイルを試してみてもダメでしたが、wimbootは受付けたのでそういう作りこみになっているのだと判断せざるを得ませんでした。 また前述の通り CDイメージの grub までのブートには成功するのですが、Debian 12の場合 netinstでは(対応していないネットワークカードもあるようですが)インストーラを起動できるものの、Ubuntu 24.04はDesktop/Serverともにインストーラ・ライブデスクトップまで到達できませんでした...

Ubuntu 24.04 Desktop Live をSecure boot が有効な状態で nfsroot にて Netboot

最近の Ubuntu は Netboot で Secure boot をサポートしているとのことだったので、Ubuntu 24.04 Desktop Live を Netboot + NFS root で試してみました。なお、dhcp server は kea dhcp4 をつかい、ipxe ではなく サイン済みの bootx64.efi 経由でブートさせていますので 直接 grub のメニューに入ります。なお今回の環境はサーバはUbuntu 24.04 で構成しています。 早速ですが設定です。まず tftpd-hpa をインストールします。 apt-get install tftpd-hpa 続いて net boot する iso イメージファイルをダウンロードしマウントしておきます。 cd /srv/tftp wget https://releases.ubuntu.com/24.04.2/ubuntu-24.04.2-desktop-amd64.iso mkdir -p /srv/tftp/ubuntu-24.04.2-desktop-amd64 mount -o loop /srv/tftp/ubuntu-24.04.2-desktop-amd64.iso /srv/tftp/ubuntu-24.04.2-desktop-amd64 さらに Netbootで使用するファイル類を取得し展開・配置等しておきます。 cd /srv/tftp wget https://releases.ubuntu.com/24.04/ubuntu-24.04.2-netboot-amd64.tar.gz tar xzvpf ubuntu-24.04.2-netboot-amd64.tar.gz cp -a amd64/bootx64.efi /srv/tftp/ cp -a amd64/grubx64.efi /srv/tftp/ grub-mknetdir --net-directory=/srv/tftp cp -a /srv/tftp/boot/grub /srv/tftp/ cat > /srv/tftp/grub/grub.cfg << EOF menuentry 'Ubuntu 24.04.2 amd64 nfsroot...