CentOS5をcoLinux上で動かす
個人的にはDebian系をよく使っているのですが、業務でCentOSを使うことになったので自宅にもCentOS環境を作成しました。手軽に出来るのはやっぱりcoLinuxなのですが、RHEL系は勝手が分からないのでなかなか苦労しました・・・・・・。今回やってみての手順をメモしておきます。
参考
CentOS 5.0のイメージを作る - masahilog
CentOS 5.0 の起動時エラーの回避 - masahilog
coLinux/CentOS 4.4 のインストールと初期設定 - digitalbox
準備するもの
準備
HDDイメージの準備
参考サイトではfsutil使ってたみたいだけど、これだとXP環境(Vistaもあるのかな?)でしか動かないので、2kpro環境だとqemu-img.exe使うことになると思う。なのでqemu-img.exeでHDDイメージを作成する。
qemuを展開したディレクトリにコマンドプロンプトで移動し、qemu-img.exeを使ってrawディスクイメージを作成する。以下のコマンドはC:?qemuにqemuを解凍した例。
>cd C:?qemu
>qemu-img create cent.fs 5G #5GBのrawディスクイメージを作成
>qemu-img create swap.fs 512kb #512kbのrawディスクイメージを作成
ファイル名(cent.fs等)や数値はお好みで。もし容量足りなくなったら後ほど追加も出来るんで、ある程度適当な数字でいいと思います。
qemuを使ってCentOSのインストール
qemuを使って先ほど作成したcent.fsにCentOSをインストールします。続けて以下のコマンドを入力するとqemuが立ち上がり、CentOSのインストールが始まります。
>qemu.exe -hda cent.fs -hdb swap.fs -cdrom CentOS_5.0_i386_bin_DVD.iso -m 256 -boot d -L .
オプションの意味なんかはqemuのヘルプを見てくださいな。
ここで注意すべきはインストール方法。テキストモードだろうがグラフィカルモードだろうが構いませんが、以下のことに気をつけてください。
- 言語はEnglishを選択。じゃないとcoLinuxでは文字化け起こします。
- キーボードはJapanese(jp106)を選択。USキーボードの人は当然USですが。
- タイムゾーンはUTC云々のチェックは外しておかないとAsia/Tokyo選んでも無意味です。
- パーティション構成は必ずカスタムにすること。/dev/hdaは丸々/に、/dev/hdbは丸々swapに割り当てること。くれぐれもお任せにしてはいけません。
- パッケージ選択はお好みで。後ほどVNC使うって人もまずはGUI部分は外しておいた方が簡単に済むと思う。
インストールが済むとRebootを求められますが、そのままRebootしても正常に起動できません。Atl + Ctrl + 2を同時にタイプするとプロンプトになりますのでquitで終了してください。
>(qemu) quit
これをせずに×やらAlt + F4で終わらせちゃうとqemuが起動しなくなりますのでご注意。
qemuを使ってCentOSの初期設定
初回起動時の設定などがありますのでもうしばらくqemuを使います。そのまま以下のコマンドを入力。
>qemu.exe -hda cent.fs -hdb swap.fs -L .
インストール時もそうですが、最後の"."を忘れるとエラーが出ますのでご注意。
起動して設定を済ませて、rootでログインしてください。その後coLinuxで使うcobdを作成します。これはそのまま参考サイトより引用。
>cd /dev
>for i in 1 2 3 4 5 6 7 8 9 10
> >do
> >mknod cobd$i b 117 $i
> >done
終わったらhaltコマンドでCentOSをシャットダウンしてください。Alt + Ctrl +2 でqemuを正常終了させるのをお忘れなく。
ddコマンドでcoLinux用のディスクイメージを切り出す
今の状態のcent.fsではcoLinuxでは使えません。ですので不要な部分をddコマンドで切り出します。cygwinコンソール(cygwin.bat)を起動して以下のコマンドを参考に各自の環境に合わせて入力。
>dd if=/cygdrive/c/qemu/cent.fs of=/cygdrive/c/qemu/root.fs bs=512 skip=63
root.fsのファイル名は何でも構いません。qemu-img.exeで作成するファイル名をroot.fsにしておいてddコマンドの時点でcolinuxのインストールディレクトリに直接書き出すのもありっちゃあり。
confファイルを書く
俺のconfファイルは以下です。最後は改行をお忘れなく。
kernel=vmlinux
initrd=initrd.gz
mem=256
cobd0="c:?Program Files?coLinux?centos?root.fs"
cobd1="c:?Program Files?coLinux?swap.fs"
eth0=tuntap
root=/dev/cobd0 fastboot
swap.fsは全OS共通にしていますが特に問題は起きていません。今のところ。
エラー回避
putfont: PIO_FONT:Function not implemented
>mv /bin/setfont /bin/setfont.old
>vim /bin/setfont#!/bin/bash
if ! uname -r | grep -q -e "-co-"
then
/bin/setfont.old $@
fi>chmod +x /bin/setfont
別にvimじゃなくてもnanoでも構いません。要は元からある/bin/setfontをリネームして、カーネルバージョンに-co-が入っていなかったらリネームした/bin/setfontを起動させているだけです。
hwclock
/etc/rc.d/init.d/haltと/etc/rc.d/rc.sysinitの該当行をそれぞれコメントアウトすれば問題なし。これも上記の通りに置き換えているのも参考サイトに上げていますので、心配な方はそちらをどうぞ。
raidautorun
不要なので/etc/rc.d/rc.sysinitの該当行をコメントアウトで対処。
ネットワーク設定
まず/etc/sysconfig/network-scripts/ifcfg-eth0がないので新規で作成。IPADDR等は適正環境に合わせて書き換えてくださいな。SSH接続やったり各種サーバとして使う場合は静的にIP割り振った方が効率的だと思います。
#これ自前で用意した後にsystem-config-networkというコマンドを知ったのですが、これで正常に設定できるかは分かりません。
静的IPの場合
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.11.11
NETMASK=255.255.255.0
GATEWAY=192.168.11.1
NETWORK=192.168.1.1
TYPE=Ethernet
参考サイトではTYPEが抜けていたけど、CentOS5ではこれがないと外部に繋がりません。4ではなくても動くのかは分かりませんが・・・・・・。
静的IPを割り振った場合のみ/etc/resolv.confを以下のように編集してください。DHCPの場合は自動で書き換えられますので不要です。
nameserver 192.168.11.1
ネットワークの再起動
>/etc/rc.d/init.d/network restart
これで上記の設定を読み込んでネットワークを再起動してくれます。
その他
その他のエラー
起動時/終了時にFailedが多いけど、ことごとくchkconfigでoffにしていって構わないのではないかと参考サイトでは言われています。まだそこまで手を付けていないのでやっていませんが。
yum -y update
ネットワークに繋がったらインストール済みのパッケージのアップデートがないか確認しておいたほうがいいかと思います。
useradd
rootのまま弄るのはある程度設定が終わるまでにしておいたほうが無難です。できれば最初にuseraddでユーザー作成してその後の設定はsu使った方がセキュリティ上は望ましいです。