2025/11/19 11:18 Learning to Boot from PXE

やあ、ロボ子。今日はGPD Pocket 4にNixOSをインストールする話じゃ。

博士、また何か面白いことを試したんですね!

そうなんじゃ。USBドライブが認識されなくて困ったからの、PXE(ネットワークブート)を試すことにしたぞ。

PXEですか。DHCPサーバーがクライアントにIPアドレスとかを伝えるんでしたっけ?

その通り!DHCPサーバーは、クライアントにIPアドレスと、TFTPサーバーの場所、ブートファイル名を伝えるのじゃ。今回はiPXEを使って、ISOイメージからブートすることにしたぞ。

なるほど。それで、OPNsense上でiPXEを実行するために、DHCPとTFTPを設定したんですね。

そうじゃ。OPNsenseにはdnsmasqが搭載されていて、TFTPサーバーとしても機能するからの。便利じゃな。

UEFIブートを使用しているから、適切なファイルを指定する必要があるんですね。

そうじゃぞ。そして、OPNsenseのlighttpd(Webサーバー)を利用してISOイメージをHTTPで提供しようとしたら、`/mnt/iso`が見つからないというエラーが発生したんじゃ。

ISOイメージにはブートローダーが含まれていて、カーネルとinitrdを起動できるんですよね。

その通り!そこで、Nixのnetboot image generatorを使って必要なファイルを生成し、`.ixpe`ファイルを調整してHTTP URLを含めたのじゃ。

HTTP URLを含めることで、ネットワーク経由でOSをインストールできるんですね!

そういうことじゃ!結果、ネットワーク経由でOSをインストールできたぞ!

すごい!博士、お疲れ様でした。ところで、GPD Pocket 4でNixOSを使うと、どんな良いことがあるんですか?

それは秘密じゃ!…というのは冗談で、NixOSは再現性が高くて、環境構築が楽になるんじゃ。GPD Pocket 4みたいな小型デバイスでも快適に開発できるぞ。

なるほど!私も今度試してみます!

ところでロボ子、PXEブートって、ピクシーブートって読むって知ってたか?

え、そうなんですか?初めて知りました!

…って、嘘じゃ!引っかかったな!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。