debootstrapをDebian以外のディストリビューションで使う + VIVER CORE Server

ディスクレスシステムやLinux-VServer用の環境を作るときに非常に便利なdebootstrapですが、Debian以外のディストリビューションではパッケージが用意されていることは少ない上に、debootstrapのソースもDebian上でビルドすることが前提になっているようで、なかなか導入が面倒です。

というわけで、Debianのdebパッケージを拝借して、お手軽にdebootstrapをインストールする方法を書いておきます。


debootstrapのサイトはここで、debパッケージはDebianのミラーのpool/main/d/debootstrapにあります。まずはここからdebootstrap_1.0.3_all.debをダウンロードしてきます。

ダウンロードしてきたら、arとtarで展開します。

wget http://ftp.jp.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.3_all.deb
ar xv debootstrap_1.0.3_all.deb
tar zxvf data.tar.gz


そうするとusrというディレクトリが出てくるので、このディレクトリを適当なところに移動します。たとえば~/self/debootstrapにしてみます。

mkdir -p ~/self
mv usr ~/self/debootstrap


最後に、PATHの通ったところに起動スクリプトを置きます。起動スクリプトは↓こうなります。instdirは適宜修正してください。

#!/bin/sh
instdir=/home/frsyuki/self/debootstrap
DEBOOTSTRAP_DIR=$instdir/lib/debootstrap $instdir/sbin/debootstrap "$@"


これで終わりです。試しにetchをインストールしてみます。

sudo ~/mybin/debootstrap --arch i386 etch ~/myetch http://ftp.jp.debian.org/debian


カンタン!


VIVER CORE Serverを使うと、この~/myetchをそのままネットワークブートできます。debootstrapと同じくらいカンタンです。
というわけでやってみます。

Debian etchをVIVER CORE Serverでネットワークブート

まずはVIVER CORE Serverをダウンロードして展開します。

wget http://syuki.skr.jp/core/release/viver-core-server-0.0.2.tar.gz
tar zxvf viver-core-server-0.0.2.tar.gz
cd viver-core-server-0.0.2


./mkviverrdを使ってVIVER COREイメージを作り、tftpbootディレクトリに置きます。ついでにカーネルもtftpbootディレクトリに持ってきます。

./mkviverrd ./tftpboot/viver-core.img ./skel/viver-core-skel.tar.gz `uname -r`
cp /boot/vmlinuz-`uname r` ./tftpboot/


先ほどdebootstrapで作った~/myetchを.tar.gzで固めます。このときにカーネルモジュールをコピーしておくのを忘れずに。

sudo cp -a /lib/modules/`uname -r` ~/myetch/lib/modules/
sudo tar -C ~/myetch -czpf ./tftpboot/myetch.tar.gz .


TFTPサーバーとPXEサーバーとHTTPサーバーを起動します。全部VIVER CORE Serverパッケージに入っているので、スクリプトを起動するだけです。TFTPサーバーとPXEサーバーはwell-knownポートを使うので、root権限が必要です。HTTPサーバーは9000/tcpで起動します。

sudo ./srv/start-tftpd
sudo ./srv/start-pxe-pdhcp eth0
./srv/start-httpd

※同じホストでDHCPサーバーが動いている場合は、PXEサーバーは使えないので注意!その場合はDHCPサーバーの設定を変更してください。



最後に./tftpboot/pxelinux.cfg/defaultファイルにブートパラメータを書きます。./tftpboot/pxelinux.cfg/default.inにひな形が置いてあるので、コピーして使ってください。
基本的には↓このようになります。kernelの欄とrooturl=のIPアドレスは変えてください。

default viver
prompt 0

label viver
kernel vmlinuz-2.6.19.7
append initrd=viver-core.img debug rootsize=230m rooturl=http://192.168.0.2:9000/myetch.tar.gz

これで準備完了です。近隣のマシンをPXEでブートしてください。PXEでブートするには、BIOSの設定の中の、起動デバイスの優先順位の設定で、ネットワークブートを先頭に持ってきてください。

VMware Serverの場合は、F12を押せばPXEでブートします。ただし仮想マシンのネットワークはShared Networkではなくて、Bridged Networkにしておく必要があります。