Debianによる開発環境の構築

この記事は古いです

Webアプリ開発用にネイティブなLinux環境が欲しいけれどもVM使うまでもないなという向きにおすすめ。ここではあくまで開発を念頭に置いてTAP環境でNATする方法にてcolinuxを配置していきたいと思います。

install

http://www.colinux.org/ というか http://sourceforge.net/project/showfiles.php?group_id=98788 から取得。この記事を書いている時点ではcoLinux-0.7.5.exe

ダウンロードしたcoLinux-0.7.5.exeをクリックするとインストーラが起動するので、ポチポチと進めます。rootfsのダウンロードは後でも出来るのでここではダウンロードせず本体だけとっといれてしまいます。途中「TAP-Win32 Adapter」のドライバ警告が出る可能性がありますが「続行」してください。

rootfsの取得

またまた http://sourceforge.net/project/showfiles.php?group_id=98788 から取得します。

今回は「Images 2.6.x Debian」の中の「Debian 5.0 Lennyを利用します。7zipで45M程度ですが、展開すると2Gにもなるファイルが含まれているので容量の注意が必要です。 中身は結構変わっていくのですが、現時点(2009.10.30)では以下の4つが含まれていました

  • Debian-5.0r2-lenny.ext3.2gb
  • debian-lenny.bat
  • README.txt
  • debian-lenny.conf

何だかいろいろとコンソールに関しての設定が加わったようなのですが、ここではとりあえず無視してDebian-5.0r2-lenny.ext3.2gbのみcolinuxのインストールフォルダに放りこみます。

お試し起動

最近のバージョンは設定ファイルがXMLでなくなりつつなおかつコマンドラインで設定ファイルを与える必要があるのでバッチファイルを書いておくのが楽でしょう。example.confを雛形に適当に書き換えてみます。

ここではDebian-5.0r2-lenny.ext3.2gbをrootfsとして起動するようなconfを書いています(相対パスでOK)。

#cobd0="c:\coLinux\root_fs"
cobd0="Debian-5.0r2-lenny.ext3.2gb"

これで試しに起動してみるわけです。コマンドラインだとこんな具合

colinux-daemon.exe @debian.conf

DOSがわかる人はコマンドプロンプトから起動してみましょう。そうでなければまぁ次いきましょう。

とりあえず起動できたらroot/rootで入れます(root/colinuxに変更されてました。おいおい)。

まだやる事はあまり無いのでシャットダウンしときます。

起動用ショートカットを書く

バッチファイルでも可。適当にcolinux-daemon.exeへのショートカットを作って

\colinux-daemon.exe "@debian.conf"

みたいに引数を追加してやると楽かと思います。これでプロンプトから起動しなくても安心。

ネットワークの設定

注: dhcpで取ればよかったので以下の設定は必要ありません。設定もそのようになっています。もしipが取れないようでしたらifdown eth0; ifup eth0を行ってください。ただしサーバのipを確実に固定化したい場合も多いでしょうから、そのような場合は以下の設定を施す必要はあります。

現状だとネットワークが生きていないため、これを何とかする必要がありますが、今回は持ち運び型Linux環境という用途に限定してしまい、TAPを使ってNATする方法だけ書きます。その他の方法は適当にググってみてください。

まずネットワーク接続を開くとデバイス名にTAP-Win32 Adapterとか書いてあるものが入ってると思われます。これはcolinuxインストール時に警告が出るとともにインストールされたもの

とりあえずこれがあればOK(ただしTAP-Win32が複数個ある場合はちょっと厄介。適当にググれば解決できます)。でWindowsの機能を使ってNATするので実際に外向き通信を行うカードのプロパティを開いてみます。この例だとRealtekとかになっているやつですね

こんな感じで共有化します。

設定をちょっと弄ります

eth0=tuntap

これでcolinuxを起動すると自動的にTAPが立ちあがるかと。ipconfigとかで確認しておくと良いでしょう

colinuxのネットワークの設定

インターネット接続の共有を行うとTAPに192.168.0.1が割り当てられ24ビットのサブネットが利用可能になります。 従ってcolinux側のインタフェースもこれに倣って設定する必要があります。

viが無いのでnanoあたりで/etc/network/interfacesを書き換えます(実はeth1がTAPを使うように想定されていてコメントアウトされているのでそれを利用してもok、ただインタフェース名間違えないように)。

(注: viは追加されたようです)

続いて/etc/resolv.confも書き換えときます。192.168.0.1を指定すればOK

nameserver 192.168.0.1

その後ifdown eth0; ifup eth0とかやってインタフェースを初期化した後、apt-get updateとかします。接続できてそうならOK

# apt-get update

apt-lineの設定は後から書きかえます

他諸々の設定

ssh

colinuxのコンソールは使い辛いのでSSHをいれてそちらで作業しとくと良いと思います。おすすめ

# apt-get install ssh

apt

とりあえずいれるのは最低限欲しいパッケージにしておいて、満足したら/etc/apt/sources.listを書き換えときます。 こんな感じで良いかと

deb http://ftp.jp.debian.org/debian/ etch main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ etch main contrib non-free

ただし、security.debian.orgは残しておきます。apt-get updateした後、apt-get upgradeしておしまい。

host名の書き換え

/etc/hostnameを書き換えます。debianとかになっているのはいかにもちょっと。。。って感じなのでcolinuxとかにしておきます。 /etc/mailnameもいたりするのでこれもやはり同じにしときます。とりあえず再起動すれば変わるのでほっときましょう。

ディスクを増やす

ddなり何なりで適当なブロックサイズのファイルを作る(もちろん、windows側で作る)。

% dd if=/dev/zero of=data1.img bs=1M count=512

これを設定ファイルに

cobd1="data1.img"
sda1=:cobd1

こんな感じにしておくと/dev/sda1として扱う事ができように(sda1:cobd1は必須ではないですが、LVMなどを構成する場合は必須)。パーティションの関係はちょっと面倒になっているので注意が必要。

追記: lvmで使いたいだけなら、こんな事をしなくても/etc/lvm/lvm.confを変更する

    # List of pairs of additional acceptable block device types found
    # in /proc/devices with maximum (non-zero) number of partitions.
    # types = [ "fd", 16 ]
    types = [ "cobd", 32 ]

ディスクを増やす(どうせならLVMでいこう)

↑の設定で1G確保したとして、何らかの拍子でデータ領域を増やしたくなる事もあるかもわからないので、こういう時のためにLVMにしといた方が後々のメンテナンスでは楽。とりあえずディスクが繋がった状態で起動してlvm2をインストールします。

# apt-get install lvm2

pvreateします

# pvcreate /dev/sda1
  Physical volume "/dev/sda1" successfully created

vgcreateします

# vgcreate vg1 /dev/sda1
  Volume group "vg1" successfully created

vgdisplayしてみます

colinux:~# vgdisplay
  --- Volume group ---
  VG Name               vg1
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               1020.00 MB
  PE Size               4.00 MB
  Total PE              255
  Alloc PE / Size       0 / 0
  Free  PE / Size       255 / 1020.00 MB
  VG UUID               BHztlk-yD3O-gHDc-vQCB-l3Ft-K8bp-pZyW86

255PEがあるのがわかるので全部LVに割り当ててしまいます。

# lvcreate -l 255 -n lv1 vg1
  Logical volume "lv1" created

FS作ります。

# mke2fs -j /dev/vg1/lv1

tuneします

# tune2fs -r0 /dev/vg1/lv1
tune2fs 1.40-WIP (14-Nov-2006)
Setting reserved blocks count to 0

あとは適当にmountして使います

colinux:~# mkdir /data
colinux:~# mount /dev/vg1/lv1 /data
colinux:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/cobd0           1007M  216M  740M  23% /
tmpfs                 253M     0  253M   0% /lib/init/rw
udev                   10M   12K   10M   1% /dev
tmpfs                 253M     0  253M   0% /dev/shm
/dev/mapper/vg1-lv1  1004M   18M  987M   2% /data

自動的にmountしたい場合は/etc/fstabに書きます

/dev/vg1/lv1   /data   ext3   defaults,errors=remount-ro 0   2

ディスク容量を増やす

ディスクが一杯になったとしてこんな感じでディスクを増やしたとします

cobd1="data1.img"
sda1=:cobd1
cobd2="data2.img"
sdb1=:cobd2

とりあえずpvcreateします

# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created

vgedtendします

colinux:~# vgextend vg1 /dev/sdb1
  Volume group "vg1" successfully extended

vgdisplayしてみます

colinux:~# vgdisplay
  --- Volume group ---
  VG Name               vg1
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               1.99 GB
  PE Size               4.00 MB
  Total PE              510
  Alloc PE / Size       255 / 1020.00 MB
  Free  PE / Size       255 / 1020.00 MB
  VG UUID               BHztlk-yD3O-gHDc-vQCB-l3Ft-K8bp-pZyW86

Free PEが増えました。LVの方もextendします

colinux:~# lvextend -l +255 /dev/vg1/lv1
  Extending logical volume lv1 to 1.99 GB
  Logical volume lv1 successfully resized

filesystemも引きのばします。ext3ならext2onlineを使います。ext2resizeパッケージに入ってるのでなければインストール。(追記。最近はresize2fs)

colinux:~# df -h | grep data
/dev/mapper/vg1-lv1  1004M   18M  987M   2% /data
colinux:~# ext2online /dev/vg1/lv1
ext2online v1.1.19 - 2001/03/18 for EXT2FS 0.5b
colinux:~# df -h | grep data
/dev/mapper/vg1-lv1   2.0G   18M  2.0G   1% /data

というわけで2Gに増えましたね。詳しくはlvm2の項目を見てください(まだページないw

colinux/installdev.txt · 最終更新: 2012/04/07 10:32 (外部編集)
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0