ディスクを積んでいないノートPCを使い、無線LANによるネットワークブートをやってみました。今回起動したディストリビューションはGentoo Linuxです。11gのためかそこそこ速く、意外と快適に使えています。
仕組みはこんな感じになっています。
(1)(2)
最初の起動手段は有線LANです。これはノートPCのネットワークブートが無線LANに対応していないためです。いつか対応してくれるといいなー。今回はネットワーク上にすでにDHCPサーバがあるため、Proxy DHCPサーバ(pxe-pdhcp)を使いました。
(3)(4)
ブートローダはTFTPサーバからブートイメージを取得します。
今回はgPXEを経由してGRUBを読み込ませていますが、TFTPサーバがカーネルイメージを返してもよいです。GRUBをUSBメモリにそのままコピーするだけで動くようになるので、この方が後々楽です。
(5)
gPXEはiSCSI Targetにイニシエーションを要求します。これはgPXEのsanbootコマンドを使います。
(6)
iSCSI Targetに接続したらGRUBが起動します。GRUBはカーネルイメージを読み込み、制御を移します。カーネルは起動中にinitramfsに制御を移します。
initramfsでは、まず無線LANデバイスを初期化し、ネットワークに接続します。
(7)(8)
今度はLinuxが入っているボリュームに接続します。iSCSI接続が確立したらルートファイルシステムをマウントします。ここまでくればあと少し。ルートファイルシステム上の/sbin/initに制御を移します。ディストリビューションの初期化が走り、ログインプロンプトが見えれば起動完了です。