GeekFactory

int128.hatenablog.com

ノートPCで無線LANによるネットワークブート

ディスクを積んでいないノートPCを使い、無線LANによるネットワークブートをやってみました。今回起動したディストリビューションGentoo Linuxです。11gのためかそこそこ速く、意外と快適に使えています。

仕組みはこんな感じになっています。


(1)(2)

最初の起動手段は有線LANです。これはノートPCのネットワークブートが無線LANに対応していないためです。いつか対応してくれるといいなー。今回はネットワーク上にすでにDHCPサーバがあるため、Proxy DHCPサーバ(pxe-pdhcp)を使いました。

(3)(4)

ブートローダはTFTPサーバからブートイメージを取得します。

今回はgPXEを経由してGRUBを読み込ませていますが、TFTPサーバがカーネルイメージを返してもよいです。GRUBUSBメモリにそのままコピーするだけで動くようになるので、この方が後々楽です。

(5)

gPXEはiSCSI Targetにイニシエーションを要求します。これはgPXEのsanbootコマンドを使います。

(6)

iSCSI Targetに接続したらGRUBが起動します。GRUBカーネルイメージを読み込み、制御を移します。カーネルは起動中にinitramfsに制御を移します。

initramfsでは、まず無線LANデバイスを初期化し、ネットワークに接続します。

(7)(8)

今度はLinuxが入っているボリュームに接続します。iSCSI接続が確立したらルートファイルシステムをマウントします。ここまでくればあと少し。ルートファイルシステム上の/sbin/initに制御を移します。ディストリビューションの初期化が走り、ログインプロンプトが見えれば起動完了です。

これ何に使うの?

Windowsが入ったノートPCで一時的にLinuxを使いたいとか。USBメモリから起動するLinuxに比べるとずいぶん高速だし、自由に書き込みができるので重宝しています。