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にしておく必要があります。