Upload
ryo-onodera
View
537
Download
1
Embed Size (px)
Citation preview
NetBSD on Conoha VPS
Ryo ONODERA<[email protected]>
2014-07-12
NetBSD BoF at JNUG A.G.M. 2014Takeda building in the University of Tokyo
Conoha VPSの問題
● KDDI Web comminicationsのCloudCore VPSで知られている問題を抱えているようで、無修正のNetBSD/amd64を起動することはできない(NetBSD/i386は試していない)
● CloudCore VPSでの情報は、以下を参照してください。一時期消えていましたが、復活してもらえました。ありがとうございます。http://www.aktado.net/netbsd-on-ccvps.html
– NetBSD/amd64 currentであれば、sys/arch/amd64/conf/GENERIC.local にoptions PCI_CONF_MODE=1 と指定するだけ。
● しかも、自分でbuild.sh iso-imageしたiso imageはなぜか起動しない(bootable iso imageとして起動してもらえない)。nyftpのsnapshotやNetBSDのrelease版は起動する。
– 実機では起動するのに…
解決方法
● どうにもならないように思ったが、以下のような方策がありそう。
● ddでイメージを書き込む
● PXEブートする
●
● ddは気が向かなかったので、PXEブートをやってみることにした。
PXEブートの準備
● ConoHa VPSにlocal network機能があれば、netbootで修正したkernelを起動できるのではないか?
● global IP addressな環境のままでもnetbootできるかもしれないが、local network機能があるのであれば、それを使うに越したことはなさそう。
もう一台のVPSを申し込む(1/2)
もう一台のVPSを申し込む(2/2)
local networkを申し込む
local networkの確認
local networkの有効化(1/2)
local networkの有効化(2/2)
母艦側の設定(1/5)
● CentOS/x86_64 6.5が標準でインストールされているので、以下のようにdhcpdとtftpdを設定する。
●
● host# yum install dhcp
● host# yum install tftp-server
● host# yum install nfs-utils●
● まずは、local networkを使えるようにする。
● VPSを選び、local networkを有効にする。
● これで、CentOSでeth1、iPXEでnet1が追加される。
● ここで、2台のVPSのMACアドレスは控えておく。
● Host: FA:16:3E:01:A8:11
● Client: FA:16:3E:01:A2:F1
母艦側の設定(2/5)
● host# ifconfig eth1 10.0.0.1 netmask 0xffffff00●
● ホスト/クライアント双方のfirewallを無効にし、global IP addressの
● 割り当てられたeth0を消す。
●
● host/client# /etc/init.d/iptables stop
● host/client# ifconfig eth0 down
母艦側の設定(3/5)
● dhcpdをセットアップする。
● host# man 5 dhcpd.conf
● としてみると、ISC DHCPDがinstallされたらしい。
●
● host# cat /etc/dhcp/dhcpd.conf
● subnet 10.0.0.0 netmask 255.255.255.0 {
● range 10.0.0.12 10.0.0.100;
● }●
● host pxehost {
● hardware ethernet FA:16:3E:01:A2:F1;
● fixed-address 10.0.0.12;●
● # stage 1:
● filename "pxeboot_ia32.bin";●
● # stage 2:
● next-server 10.0.0.11;
● option root-path "/export/amd64/root";
● }●
● のようにして、読み込むファイルと、root filesystemの場所を指定する。
●
母艦側の設定(4/5)
● \u6b21\u306btftpd\u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3059\u308b\u3002●
● host# /etc/init.d/xinetd start
● host# cd /var/lib/tftpboot
● host# wget http://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/201406222200Z/amd64/installation/misc/pxeboot_ia32.bin●
●
● \u6b21\u306b\u3001NFS server\u3092setup\u3059\u308b\u3002●
● host# cat /etc/exports
● /export/amd64/root 10.0.0.12(rw,sync)
● host# exportfs -a
● host# /etc/init.d/rpcbind start
● host# /etc/init.d/nfslock start
● host# /etc/init.d/nfs start
● host# showmount -e
● (snip)
● /export/amd64/root 10.0.0.2
母艦側の設定(5/5)
● host# cd /export/amd64/root
● host# wget http://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/201406222200Z/amd64/binary/sets/base.tgz
● host# wget http://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/201406222200Z/amd64/binary/sets/etc.tgz
● host# wget http://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/201406222200Z/amd64/binary/sets/modules.tgz
● host# wget http://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/201406222200Z/amd64/binary/sets/kern-GENERIC.tgz
● host# for name in *tgz; do tar zxvf $name; done
● host# mv netbsd /var/lib/tftpboot
● host# cat etc/fstab
● 10.0.0.1:/export/amd64/root / nfs rw 0 0●
クライアント側の設定
● クライアント側 (NetBSDをインストールする側) を再起動させる。
● これはHTML 5なconsoleから実施すること。sshなconsoleではnetbootの
● 選択の段階を表示できない。●
● Ctrl-bでiPXEのメニューに入り以下を実行する。
●
● iPXE> autoboot net1●
おわりに
● あとは、VPSのコントロールパネルからvirtioを無効にしてPXEブートさせ、sysinstを使わずにinstallするだけです。
– virif(4)ではPXEブートできません。● installさえしてしまえば、virtio機能も使えました(負荷はかけていないので安定性とかは不明)。
ライセンス
● This is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0).
●
● http://creativecommons.org/licenses/by/4.0/