CentOS 5.3をcoLinuxで使う
CentOS 5.3をcoLinuxで使えるようにするメモ
Windowsで軽快なLinux環境を実現するcoLinux。 PentiumM + MEM 512MBのような古めのマシンでも軽快に動作するので大変重宝する。
はじめはcoLinuxのDebian-etchイメージを利用して導入しようかと挑戦したが、 yumの設定やらバージョンの違いやらがめんどくさいのでやめ。
今回はすでにCentOS5.3がインストールされたVMwareを利用して、 yumをつかってcoLinux用のCentOS5.3イメージを作成することにした。 VMwareでCentOS5.3を動作させる方法については省略。
ディスクイメージを作成する
ディスクイメージを作成する。最初にCentOS 5がインストールされたマシンを用意する。 今回はMacのVMware Fusionを利用したが、実マシンからでも可能だとおもう。
空のディスクイメージの作成
最初に空のディスクイメージを作成する。
rootドライブのサイズはここで決まる。
VMware Fusion/Server/Workstationの場合、次の条件でディスクを作成すればよい。
1.大きさは好みで、4GBくらいがいいかも。
2.2GBごとにファイルを分割せず単一ファイルにする
3.あらかじめ領域を確保しておくようにする
4.SCSIでもIDEでもかまわない
ファイル名-flat.vmdk というファイルがイメージファイルになる。
VMweare Playerで利用する場合
VMware Playerでも空のflatイメージを利用できるようにする簡単なPerlスクリプトを用意した。
PerlスクリプトなのでWindowsで作成する場合Perl実行環境が必要。
perl create_flatdisk.pl CentOS5 4000
上記のコマンド実行するとCentOS5.vmdkが作成される。
CentOS5-flat.vmdkファイルをfsutilsコマンドか、ddコマンドで作成するように促されるので、
それでブランクディスクイメージを作成する。
私の場合はMacで作成するのでddコマンドを使った。
dd if=/dev/zero of=CentOS5-flat.vmdk bs=1048576 count=4000
4GBの空のファイルができあがる。
次に、Perlスクリプトで作成されたvmdkファイルをCentOS5.vmdkを起動するvmxファイルに追記する。
ide0:0.present = "TRUE" ide0:0.fileName = "/path_to_vmdk/CentOS5.vmdk"
上記の例の場合hdaにHDDが接続されたことになる。
実マシンの場合
ddコマンドで作成したブランクイメージでもうまくいくとおもう。
その場合 mountするときは mount -o loop だったかな。
vmxファイルをダブルクリックしてVMware環境の起動
以降、coLinux環境の構築先が/dev/hdaで、かつVMware+CentOS5.3にてrootユーザでの作業。
reiserfsを利用できるようにする
ext3でもかまわないけど、せっかくなのでreiserfsにしてみる。
reiserfsを利用する場合はcentosplusにする必要がある。
wget ftp://ftp.iij.ad.jp/pub/linux/centos/5.3/centosplus/i386/RPMS/kernel-2.6.18-128.1.10.el5.centos.plus.i686.rpm rpm -ivh kernel-2.6.18-128.1.10.el5.centos.plus.i686.rpm yum --enablerepo=centosplus install reiserfs-utils yum --enablerepo=centosplus update reboot
... centosplus-kernelで再起動
フォーマット
coLinux用のディスクイメージを/dev/hdaに作成する。
間違えたら大変なので注意。
パーティッションはつくらないで丸ごと利用する。
mkfs.reiserfs -f /dev/hda
マウントする
mkdir /mnt/colinux mount -t reiserfs /dev/hda /mnt/colinux
環境の構築
cd /mnt/colinux mkdir work cd work wget ftp://ftp.iij.ad.jp/pub/linux/centos/5.3/os/i386/CentOS/centos-release-5-3.el5.centos.1.i386.rpm rpm --import http://ftp.iij.ad.jp/pub/linux/centos/5.3/os/i386/RPM-GPG-KEY-CentOS-5 rpm --root=/mnt/colinux --import http://ftp.iij.ad.jp/pub/linux/centos/5.3/os/i386/RPM-GPG-KEY-CentOS-5 rpm2cpio centos-release-5-3.el5.centos.1.i386.rpm | (cd /mnt/colinux ; cpio -id) mkdir -p /mnt/colinux/var/log
yumの設定、ミラーの設定
$reposにお近くのミラーを設定してください。 最後のEOPまでコピペ
perl << 'EOP'
use strict;
my $repos="ftp.iij.ad.jp/pub/linux";
my $exclude="firstboot-tui";
open(FHI,"/mnt/colinux/work/yum.conf"); {local $/;$_=<FHI>}
s/\$releasever/5/sg; s/\$basearch/i386/sg;
s!\Qmirror.centos.org\E!$repos!sg; s!^(mirrorlist=)!#$1!mg;
s!^#(baseurl=)!$1!mg; s!^#(baseurl=)!$1!mg;
s/(\n\[base\]\n.+?)\n\n/$1\nexclude=$exclude\n\n/s;
print FHO;
EOP
インストール
yum -c /mnt/colinux/work/yum.conf \ --installroot=/mnt/colinux --enablerepo=centosplus \ groupinstall Base "Development Tools"
お好みでどうぞ
yum -c /mnt/colinux/work/yum.conf \ --installroot=/mnt/colinux --enablerepo=centosplus \ install reiserfs-utils openssh-server vim-enhanced
各種設定
cofs用ディレクトリの用意
mkdir -p /mnt/colinux/cofs
fstabの設定
cat > ... << EOSとなっているものは、その内容のかかれたテキストファイルの作成です。 最後のEOSまでまとめてコピペすると楽です。
cat > /mnt/colinux/etc/fstab << EOS proc /proc proc defaults 0 0 /dev/cobd0 / ext3 noatime,errors=remount-ro 0 0 /dev/cobd7 none swap sw 0 0 /dev/cofs0 /cofs cofs defaults 0 0 EOS
文字コード
echo LANG="ja_JP.UTF-8" > /mnt/colinux/etc/sysconfig/i18n
タイムゾーン 上書き
cp /mnt/colinux/usr/share/zoneinfo/Asia/Tokyo /mnt/colinux/etc/localtime
ネットワーク DHCPでIPアドレスを取得する
touch /mnt/colinux/etc/resolv.conf cat > /mnt/colinux/etc/sysconfig/network << EOS NETWORKING=yes EOS cat > /mnt/colinux/etc/sysconfig/network-scripts/ifcfg-eth0 << EOS DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes EOS
setfontとhwclockのダミーを用意する
これをやっておかないと画面がエラーメッセージで埋まる。
mv /mnt/colinux/bin/setfont /mnt/colinux/bin/setfont.orig cat > /mnt/colinux/bin/setfont << 'EOS' #!/bin/bash if ! uname -r | grep -q -e "-co-" then /bin/setfont.orig $@ fi EOS chmod 755 /mnt/colinux/bin/setfont mv /mnt/colinux/sbin/hwclock /mnt/colinux/sbin/hwclock.orig cat > /mnt/colinux/sbin/hwclock << 'EOS' #!/bin/bash if ! uname -r | grep -q -e "-co-" then /sbin/hwclock.orig $@ fi EOS chmod 755 /mnt/colinux/sbin/hwclock
rootユーザの整備
cp /mnt/colinux/etc/skel/.bash* /mnt/colinux/root/
chrootでcolinux環境に入る
chroot /mnt/colinux pwconv
rootパスワードの設定
passwd
いらないサービスを無効にする
chkconfig hidd off chkconfig bluetooth off chkconfig kudzu off chkconfig auditd off chkconfig sendmail off chkconfig pcscd off chkconfig autofs off chkconfig smartd off
環境をでる
exit
mount解除してVMware環境をシャットダウンする
cd umount /mnt/colinux rmdir /mnt/colinux poweroff
ここまででVMware上での作業は終わり
イメージのコピー
実マシンでイメージを作成した場合は対象のWindowsマシンにイメージをコピーしておく。
VMwareで作成した場合、今回の例では CentOS5-flat.vmdk がディスクイメージになるので、
これをWindowsマシンにコピーする。
以降coLinux導入先のWindowsでの作業
前提条件
Windowsのバージョン
Windows XP Professional SP3
coLinuxのバージョン
0.7.3
coLinuxがインストールされているディレクトリ
C:\Program Files\coLinux
CentOS5をインストールされているディレクトリ
C:\vm\coLinux\CentOS5.3
一般的なルータ経由のNAT+DHCP+ローカルネットワークな環境
ネットワークはtuntapをbridgeして使用する。名前は「TAP coLinux」とする
coLinuxのmacアドレスは 00:FF:01:00:00:10
coLinuxのインストール
http://sourceforge.net/project/showfiles.php?group_id=98788&package_id=107317
上記から coLinux-0.7.3.exe からダウンロード。 メニューに従ってインストール。コンポーネントはすべて選択。 「root file system image」は不要。
TAPデバイスのリネームとブリッジの作成
マイネットワークのプロパティーを開いて、「TAP-Win32 Adapter V8 (coLinux)」の 名前を「ネットワークアダプタ」などから「TAP coLinux」に変更する。
完了したら上記の「TAP coLinux」と実マシンのネットワークデバイスをCTRLを押しながら選択。 2つ選択された状態で、右クリックして「ブリッジ接続」を選択。 必要に応じて「ブリッジ接続」のIPアドレスなどを設定。
環境をインストールするディレクトリを作成
コマンドプロンプトを開いて作業
mkdir C:\vm\coLinux cd /d C:\vm\coLinux mkdir CentOS5.3 cd CentOS5.3 explorer .
移動とコピー
最初に作成した CentOS5-flat.vmdk を上記ディレクトリに移動してリネーム
reiserfsでつくったので拡張子をreiserfsにしておく。好みでOK
ren CentOS5-flat.vmdk CentOS5.reiserfs
起動に必要なファイルをコピー
copy "C:\Program Files\coLinux\initrd.gz" . copy "C:\Program Files\coLinux\vmlinux" . copy "C:\Program Files\coLinux\vmlinux-modules.tar.gz" .
cofs用のディレクトリ
mkdir cofs
swap用領域を作成 1GB
fsutil file createnew swap 1073741824
※DOSのコマンドプロンプトから簡単にファイルを作成するには、
内容をコピーして、コマンドプロンプトで右クリック、「貼り付け(P)」を選択、
ペーストできたら、CTRL+ZのあとにEnterを押すと、内容が記述されたテキストファイルが作成される。
以降、点線内はそのようにしてテキストファイルを作成する前提です。
CentOS5.confを作る
下記点線内をコピペ、最後にCTRL+Z Enter
----------------------------------------------------- copy con CentOS5.conf kernel=vmlinux cobd0=CentOS5.reiserfs cobd7=swap cofs0=cofs root=/dev/cobd0 initrd=initrd.gz mem=128 eth0=tuntap,"TAP coLinux",00:FF:01:00:00:10 -----------------------------------------------------
CentOS5.cmdを作る
下記点線内をコピペ、最後にCTRL+Z Enter
----------------------------------------------------- copy con CentOS5.cmd @echo off "C:\Program Files\coLinux\colinux-daemon.exe" -t nt @CentOS5.conf -----------------------------------------------------
coLinux環境の起動
CentOS5.cmdをダブルクリックして起動。うまくいけばコマンドプロンプト型で立ち上がる。
rootでログイン
swap領域の有効化
mkswap /dev/cobd7
shutdownして終了
poweroff
以上で作業完了。
あとは、好みに環境を整備して、CentOS5.reiserfsも含めてバックアップしておけば
テスト環境などを分けたり、ほかのマシンでもそのまま使えるので便利です。
coLinuxのTIPS
サービスとして登録
サービスとして登録しておくとバックグラウンドで動くので便利。
シャットダウンもきちんとやってくれるし。
以下のバッチファイルを作成すればダブルクリックだけでインストールほかの作業ができる。
以下コマンドプロンプトで作業
cd C:\vm\coLinux\CentOS5.3
下記点線内をコピペ、最後にCTRL+Z Enter
----------------------------------------------------- copy con CentOS5_service_install.cmd @echo off "C:\Program Files\coLinux\colinux-daemon.exe" @CentOS5.conf --install-service "coLinux CentOS5.3" pause -----------------------------------------------------
下記点線内をコピペ、最後にCTRL+Z Enter
----------------------------------------------------- copy con CentOS5_service_start.cmd @echo off net start "coLinux CentOS5.3" ping localhost -n 1 > nul start "" "C:\Program Files\coLinux\colinux-console-nt.exe" pause -----------------------------------------------------
※pingはsleepのかわり。いらないかも。
※複数同時に動作させる場合は、colinux-console-nt.exeの起動のしかたに工夫がいる。
下記点線内をコピペ、最後にCTRL+Z Enter ----------------------------------------------------- copy con CentOS5_service_stop.cmd @echo off net stop "coLinux CentOS5.3" pause -----------------------------------------------------
下記点線内をコピペ、最後にCTRL+Z Enter ----------------------------------------------------- copy con CentOS5_service_uninstall.cmd @echo off net stop "coLinux CentOS5.3" "C:\Program Files\coLinux\colinux-daemon.exe" --remove-service "coLinux CentOS5.3" pause -----------------------------------------------------
CentOS5_service_install.cmd サービスのインストール CentOS5_service_start.cmd サービスの起動 CentOS5_service_stop.cmd サービスの停止 CentOS5_service_uninstall.cmd サービスのアンインストール
起動時の自動起動とかは、「マイコンピュータ」→「管理」→「サービスとアプリケーション」→「サービス」 とかからどうぞ。
複数のTAPデバイスを作成する。
同時起動するときとか。複数デバイス割り当てるとか。
http://colinux.wikia.com/wiki/TAP-Win32_Adapter_V8_(coLinux)
以下コマンドプロンプトで作業
cd /d C:\Program Files\coLinux\netdriver
一覧表示
tapcontrol.exe hwids TAP0801co
追加
tapcontrol.exe install OemWin2k.inf TAP0801co
一括削除、coLinux関連のTAPが全部消える。
tapcontrol.exe remove TAP0801co