gPXEを試してみた→が、失敗
id:viver に gPXE というのを教えてもらいました。
gPXEは、TFTPじゃなくてHTTPでkernelやinitramfsをダウンロードできるところにぐっときたのでちょっと試してみたメモ。
NICのROMを書き換えるのはちょっとアレなので、PXE→gPXEのchainloadingを試した。
内容は↓に書いてある通り。
if not ( option user-class = "gPXE" ) {
filename "undionly.kpxe";
} else {
filename "http://ore.no.webserver.local/bububunoboot";
}とか
if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
filename "undionly.kpxe";
} else {
filename "http://ore.no.webserver.local/bububunoboot";
}とか
option space gpxe;
option gpxe-encap-opts code 175 = encapsulate gpxe;
option gpxe.bus-id code 177 = string;
(snip)
if exists gpxe.bus-id {
filename "undionly.kpxe";
} else {
filename "http://ore.no.webserver.local/bububunoboot";
}とか試すも、gPXEがHTTPでゲットしてきてくれない。
ただ、gPXEは立ち上がり、C-b で対話モードには入れるので、そこで config で filename http://.../bububunoboot を指定して、後、autoboot すれば bububunoboot で書いた通り
#!gpxe kernel http://ore.no.webserver.local/boot/linux/vmlinuz initrd http://ore.no.webserver.local/boot/linux/initramfs boot
kernelとinitramfsをHTTPでGETしてくれてスコスコブートしてくれたす。
なのでもうちょっといけそうかなーと思うのですがちと保留。