NetBSD install の pxe からの起動
概要
pxe で boot し NetBSD の installer を走らせたい。 また、その際の出力は com0 とする。
用意するもの
- src の入った NetBSD 環境
- grub の make 出来る環境
Kernel 作り
出力を com0 にした kernel を作成する。 今回は INSTALL というコンフィグを元にした。
# cd /usr/src/sys/arch/i386/conf # cp INSTALL INSTALL_com0
INSTALL_com0 内の以下の行がコメントアウトされているので、有効にする。
options CONSDEVNAME="\"com\"",CONADDR=0x3f8,CONSPEED=9600
kernel の build
# config INSTALL_com0 # cd ../compile/INSTALL_com0/ # make depend # make # ls netbsd
diskimage 作り
# /usr/src/distrib/i386/floppies/ramdisk-big # make
install 用の disk image が作成される。
# ls ramdisk-big.fs
diskimage と kernel の結合
# mkdir/md_install # cd /md_install # cp /usr/src/sys/arch/i386/compile/INSTALL_com0/netbsd ./ # mdsetimage -v netbsd \ /usr/src/distrib/i386/floppies/ramdisk-big/ramdisk-big.fs
すると kernel file (ここでは netbsd) が netbsd t remdisk-big.fs が一緒になったものに 置き換わる。
pxe 対応 grub の作成
source を get して展開したのち
# cd/grub-xx.x # ./configure --enable-eepro100 --enable-diskless # gmake
stabe2/pxegrub が、pxe に対応した grub となる。
tftp server 及び dhcp server の設定
dhcp server にて、起動時に pxegrub を読み込むように dhcp server の設定を行う。
pxegrub は、起動時に tftp 上の /boot/grub/menu.lst を読みに行く。そこで、 build した pxegrub が、読むべきファイル(/boot/grub/menu.lst)を tftp サーバの適切な場所に置く。
# network config bootp # serial console serial --unit=0 --speed=9600 --word=8 --parity=no terminal --timeout=5 serial console # Boot automatically after 30 secs. timeout 30 # By default, boot the first entry. default 0 # For boot NetBSD title NetBSD root (nd) kernel --type=netbsd (nd)/netbsd
menu.lst の記述において "(nd)/" は、tftp server における "/" をしめす。