🌟
iPXE+UEFI+IPv6 static IPを使ってLinuxをインストールする
この記事について
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