🌟

iPXE+UEFI+IPv6 static IPを使ってLinuxをインストールする

2024/12/13に公開

この記事について

iPXEはとてもパワフルなブートファームウェアであり、様々な方法でのマシンの起動をサポートしています。ここではIPv6 StaticIPを使ってネットワーク越しにLinuxをインストールするにはどうすればいいのかを説明します。iPXEの起動の仕方としてはここではbootable CD-Romを作成してインストールをすることにします。

IP addressについて

ここでは下記のIPv6 addressを想定します。使用時にはここを変更して使って下さい。

IP
Linuxのディストリビューションを置いているサーバーのIP 2001:db8:ffff::1
インストール先のサーバに設定するIP/prefix 2001:db8::1:1/64
インストール先のサーバが使うゲートウェイ 2001:db8::1:ffff

また以下の形でhttpサーバが設定されていることを想定します

  • http://[2001:db8:ffff::1]/fedora にFedoraのディストリビューションがコピーされている
  • http://[2001:db8:ffff::1]/test.ks にkickstartファイルがある

Note: iPXEは組み込みという性質上、https等の最新の暗号処理のコードが入っていません。ですのでセキュリティ的には問題があるというのがあるのですが、httpを使うことをお勧めします。一時的にインストール時だけ立ち上げる等の運用をお勧めします。

iPXE スクリプトの作成

iPXEが起動した時に実行するスクリプトを作成します。

#!ipxe
set base http://[2001:db8:ffff::1]/fedora
set kspath http://[2001:db8:ffff::1]/test.ks

set net0/ip6:ipv6 2001:db8::1:1
set net0/len6:int8 64
set net0/gateway6:ipv6 2001:db8::1:ffff
ifopen net0

kernel ${base}/images/pxeboot/vmlinuz initrd=initrd.img inst.repo=${base} ip=[2001:db8::1:1]::[2001:db8::1:ffff]:64:test001:eth0:none inst.ks=${kspath}
initrd ${base}/images/pxeboot/initrd.img
imgstat
boot

補足

  • NIC(ネットワークカード)の指定
    PCIのバス順にnet0, net1, net2という形でiPXEは独自にインターフェイス名を割り当てます。自分が使いたいNICがどこにあるか確認して設定しましょう。

  • kernelに渡すネットワーク設定
    ipxeで設定したネットワーク(set net0/ip6...)設定はは残念ながらLinuxのインストーラに引き継がれません。LinuxのDocumentation/filesystems/nfs/nfsroot.txtを参考にIPの設定を追加しましょう。

Discussion