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してくれてスコスコブートしてくれたす。
なのでもうちょっといけそうかなーと思うのですがちと保留。