[an error occurred while processing this directive]

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 における "/" をしめす。

[an error occurred while processing this directive]