僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
lxc を試す。概念としてはFreeBSDのjail(8)と似たようなものか。
debian wiki を斜め読みして、必要なパッケージ(lxc とか iprote とか debootstrap とか) をぶち込み、lxc-create -n $CONTAINER -t debian とコマンドを叩く。
debootstrap がシステムを構築してくれたので、lxc-start -n $CONTAINER する。
パスワードは作成時に出た通り。しかしなにげに/etc/apt/sources.listを見て、
システムがlennyになってることに気づく。
lxc-create はシェルスクリプトだった。これから -t オプションで 用意されたパッケージを入れるらしい。-t debian の場合は /usr/lib/lxc/templates/lxc-debian がそれをやってくれるようになる。
$ grep -n lenny /usr/lib/lxc/template/lxc-debian 113: lenny $cache/partial-$arch http://ftp.debian.org/debian
s/lenny/squeeze/ する。これでいいはずだ。
しかし、もう一度実行してみても、出来たのはやっぱりlenny。
最初よりずっと早く出来た。ことの意味合いには、すぐには思い当たらなかった。
/var/cache/lxc/debian に lenny があり、それをコピーしていたというわけだ。
それを消すと、今度は、
I: Checking component main on http://ftp.debian.org/debian... E: Couldn't find these debs: dhcp-client Failed to download the rootfs, aborting. Failed to download 'debian base' failed to install debian failed to execute template 'debian'
squeeze なマシンで dpkg -l | grep dhcp すると、 isc-dhcp-client が使われている。パッケージ名が 変っていたようだ。
$ grep -n dhcp-client /usr/lib/lxc/template/lxc-debian 93:dhcp-client,\
ここをisc-dhcp-clientと書き換えて、無事にsqueezeが入った。
あと、ネットワーク。
同じLANから独立したIPノードとして見られるように、ホスト側
の/etc/network/interfaces を
uto lo iface lo inet loopback auto br0 iface br0 inet dhcp bridge_ports eth0
のように、そして/var/lib/lxc/$CONTAINER/config に
lxc.utsname = $HOSTNAME lxc.network.type = veth lxc.network.flags = up lxc.network.link = br0
を追記すると、LANの他のホストからも、一つのノードとして見えるようになった。
NATにする方法は、えーと。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。