NetBSD3.0(BETA)になると、いろいろセキュリティ関係がきつめの 設定になっていて、NetBSD2.0の感覚でいると困ったことがいろいろ起こる。
3.0では標準でXEN0,XENUのバイナリーが配布バイナリに含まれているので、
別のところからとってくる必要がない。また、MAKEDEVにも標準でxenが含まれているので、
手作業でデバイスを作成する必要がない。
要するに、Howto.htmlに書かれているとおりにすれば動く。
inetdから呼び出される telnetd の標準のオプションが、-a valid になっていて、このままだと、TeraTermからだと loginできない。 後で対策を考えることにして、とりあえず、試験中は -a none で動かす。
NetBSDではパケットフィルタが、pfかipfilterが標準。
どちらも、FreeBSDにもポートされてはいるのだが(pfは5.x以降)、ipfwは使えない。
pf だと、ipfw では外付けの nat 機能がはじめから埋め込まれている。
pkgsrcからsendmailを入れると、no-profit の警告がでる。
あれっ? ライセンス形態が変わったのかと戸惑う。
Howtoには、パーティションを一つ割り当てるように書かれているか、 vnconfig を使って、ファイルを仮想ディスクとして割り当てることにする。
/etc/fstabの内容# dd if=/dev/zero of=xenu30 bs=8225280 count=60 # vnconfig vnd0 xenu30 # disklabel -e -I vnd0 # mount /dev/vnd0a /b ... NetBSD3.0(BETA)のバイナリイメージを /b 以下に書き込む
/etc/rc.confの内容/dev/xbd0a / ffs rw 1 1 kernfs /kern kernfs rw procfs /proc procfs rw,noauto
(前半は省略) # If this is not set to YES, the system will drop into single-user mode. # rc_configured=YES # Add local overrides below # hostname="xenu30.hamaint.co.jp" net_interfaces="xennet0" ifconfig_xennet0="inet 192.168.0.2/30" defaultroute="192.168.0.1"
xennet0は、POINTTOPOINTの設定にした方がいいのかも知れない。
/etc/localtime
ls -l /etc/localtime lrwxr-xr-x 1 root wheel 25 May 1 21:06 /etc/localtime -> /usr/share/zoneinfo/Japan
マニュアルの通り
/grub/menu.lst
default=0 timeout=10 serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 terminal --timeout=10 serial console title Xen 2.0 / NetBSD (hda0, serial) root(hd0,0) kernel (hd0,a)/xen.gz dom0_mem=131072 com1=115200,8n1 module (hd0,a)/netbsd-XEN0 root=/dev/hda1 ro console=ttyS0 title Xen 2.0 / NetBSD (hda0, vga) root(hd0,0) kernel (hd0,a)/xen.gz dom0_mem=196608 module (hd0,a)/netbsd-XEN0 root=/dev/hda1 ro console=tty0 title NetBSD 3.0-BETA root (hd0,a) kernel --type=netbsd /netbsd-GENERIC
# grub-install --no-floppy wd0d
/netbsd と実際に起動した kernelを同じにしておかないと、netstat コマンドなどが 正常に動作しないようだ。
ちなみに FreeBSDをロードしたい場合は、kernelに/boot/loaderを指定する(らしい)
# sample title FreeBSD root (hd0,0,a) kernel /boot/loader
XENUの設定ファイルは、基本的にはサンプルのまま
ハードディスクイメージに vnd0d を使うところだけ違う
/etc/xen/xenu1
(省略)
% xm create xenu1
Howto.htmlのサンプル通りで基本的によいのだが、実行フラグを付けるのを 忘れないように。
xenuのdmesg
NetBSD 3.0_BETA (XENU) #2: Fri Apr 8 17:56:35 CEST 2005 bouyer@pop.lip6.fr:/local/pop1/bouyer/tmp/i386/obj/local/pop1/bouyer/net bsd-3/src/sys/arch/i386/compile/XENU total memory = 124 MB avail memory = 121 MB mainbus0 (root) cpu0 at mainbus0: (uniprocessor) cpu0: Intel Celeron (Mendocino) (686-class), 501.15 MHz, id 0x665 cpu0: features 183fbffcpu0: features 183fbff cpu0: features 183fbff cpu0: I-cache 16 KB 32B/line 4-way, D-cache 16 KB 32B/line 4-way cpu0: L2 cache 128 KB 32B/line 4-way cpu0: ITLB 32 4 KB entries 4-way, 2 4 MB entries fully associative cpu0: DTLB 64 4 KB entries 4-way, 8 4 MB entries 4-way cpu0: 8 page colors hypervisor0 at mainbus0 debug events interrupting at irq 0 misdirect events interrupting at irq 1 Domain controller: using irq 2 xencons0 at hypervisor0: Xen Virtual Console Driver xencons0: console major 143, unit 0 Initialising Xen virtual ethernet frontend driver. npx0 at hypervisor0: using exception 16 xennet0 at hypervisor0: Xen Virtual Network Interface Xen clock: using irq 3 xennet0: using irq 4 xennet0: MAC address aa:00:00:50:02:f0 raidattach: Asked for 8 units Kernelized RAIDframe activated crypto: assign driver 0, flags 2 crypto: driver 0 registers alg 1 flags 0 maxoplen 0 crypto: driver 0 registers alg 2 flags 0 maxoplen 0 crypto: driver 0 registers alg 3 flags 0 maxoplen 0 crypto: driver 0 registers alg 4 flags 0 maxoplen 0 crypto: driver 0 registers alg 5 flags 0 maxoplen 0 crypto: driver 0 registers alg 17 flags 0 maxoplen 0 crypto: driver 0 registers alg 6 flags 0 maxoplen 0 crypto: driver 0 registers alg 7 flags 0 maxoplen 0 crypto: driver 0 registers alg 15 flags 0 maxoplen 0 crypto: driver 0 registers alg 8 flags 0 maxoplen 0 crypto: driver 0 registers alg 16 flags 0 maxoplen 0 crypto: driver 0 registers alg 9 flags 0 maxoplen 0 crypto: driver 0 registers alg 10 flags 0 maxoplen 0 crypto: driver 0 registers alg 13 flags 0 maxoplen 0 crypto: driver 0 registers alg 14 flags 0 maxoplen 0 crypto: driver 0 registers alg 11 flags 0 maxoplen 0 crypto: driver 0 registers alg 18 flags 0 maxoplen 0 xbd: using irq 5 xbd0 at hypervisor0: Xen Virtual Block Device 470 MB Searching for RAID components... boot device: xbd0 root on xbd0a dumps on xbd0b mountroot: trying smbfs... mountroot: trying coda... mountroot: trying msdos... mountroot: trying cd9660... mountroot: trying ntfs... mountroot: trying nfs... mountroot: trying lfs... mountroot: trying ext2fs... mountroot: trying ffs... root file system type: ffs init: copying out path `/sbin/init' 11 xenu30: {6}
4つの非特権OSを動かしたところ
katsura@bsd5[1]_% xm list Name Id Mem(MB) CPU State Time(s) Console Domain-0 0 159 0 r---- 148.5 xenu2 1 47 0 -b--- 21.7 9601 xenu3 6 47 0 -b--- 15.8 9606 xenu4 4 47 0 -b--- 19.0 9604 xenu5 7 47 0 -b--- 16.1 9607
katsura@bsd5[2]_% ifconfig -a tlp0: flags=8843mtu 1500 address: 00:90:cc:37:99:30 media: Ethernet autoselect (100baseTX full-duplex) status: active inet 192.47.37.15 netmask 0xffffff80 broadcast 192.47.37.127 lo0: flags=8009 mtu 33192 inet 127.0.0.1 netmask 0xff000000 pflog0: flags=0 mtu 33192 xvif1.0: flags=8863 mtu 1500 address: aa:00:00:51:02:f0 inet 192.168.0.5 netmask 0xfffffffc broadcast 192.168.0.7 xvif4.0: flags=8863 mtu 1500 address: aa:00:00:51:04:f0 inet 192.168.0.13 netmask 0xfffffffc broadcast 192.168.0.15 xvif6.0: flags=8863 mtu 1500 address: aa:00:00:51:03:f0 inet 192.168.0.9 netmask 0xfffffffc broadcast 192.168.0.11 xvif7.0: flags=8863 mtu 1500 address: aa:00:00:51:05:f0 inet 192.168.0.17 netmask 0xfffffffc broadcast 192.168.0.19