2013年7月6日土曜日

CentOS 6.3 on VirtualBox 4.2.12で Gnomeを起動するまで

Virtual Box上にCentOSを入れるのが、結構大変だったので、
はまりポイントを中心に記録しておく。

1. HostOS上にVirtualBoxをinstallする。

親マシン(ホスト)はFreeBSD 9.1。portupgrade -Nで
emulators/virtualbox-ose
emulators/virtualbox-ose-kmod
をインストールする。ただのvirtualbox-oseが先。
何か、gusetをinstallしようとして怒られて、virtualbox-ose-kmodを入れたのだけど、何があったかの記録が見つからない。

!! emulators/virtualbox-ose-kmodはkernel moduleなので、/usr/src/などを参照する。
したがって、「/usr/src/はkernelを作るときにしかマウントしない」とか運用していると/usr/src/が見つからなくて、installに失敗する。

!! portupgradeは*.koを作るところまでやってくれる。
まずは、kldloadで手動でkernel panicしないか試してみるよろし。
もし、panicしてもrebootしたら元に戻る。

!! 自動でkernel moduleを読み込みたいなら、/etc/rc.conf.localにkld_list="vboxdrv"のように追加する。
FreeBSD 9.1から/boot/loader.confに書かなくてもよくなったので、事故があっても、single user modeであがって助かれる(はず)。
(参考:Toshio Uchiyama's Diary(http://www.uchi-yama.info/wp/?p=57) http://lists.freebsd.org/pipermail/freebsd-hackers/2012-February/037780.html(FreeBSDのメーリングリスト)

2. Virtual Machineを用意する。

「New」のアイコンをクリックして、GUIで作る。

Type/VersionをLinux/other Linuxとすると、64bitを選べないように見えるが、実際は、64bit仮想マシンになる。
(64bitのinstalldiscでインストールできたのだから)
ここで選ぶ内容はアイコンにしか関係ないのか?

Memoryをデフォルトの256MByteにしたら、installするときに「メモリが小さすぎ」と怒られた。512MByteにしたら大丈夫。Memory sizeはいつでも大きくできる。
普通は、Hostの半分位にするものらしい。

Execution CapはGuestがどんだけ物理マシンのCPUを食ってよいか。
ホストが2core 2thereadなので、1CPU(core)を100%食ってよいことにした。
この数字もあとから変えられる。

HDDの大きさは20GBにした。GnomeとX用のフォントが入った段階で、
半分強埋まっている。HDDの拡大は少し面倒らしいので( くしゃみ日記(http://kei-pon.cocolog-nifty.com/blog/2013/04/virtualbox-hdd-.html))、
もう少し大きめにしたほうがよかったかもしれない。
dynamically allocatedなら、物理HDDを占領するわけでもないし。
あるいは、物理マシンでの大きなHDDへの引越しと同じことはできるはずので、
そんなに心配はいらないかもしれない。
(FreeBSDなら、新しいHDDのpartitionを手で切って、dumpとrestoreでごにょごにょとやるんだけど、linuxはどうやるんだろう??)

3. CentOSをinstall discからインストール

CentOS本家(http://www.centos.org) からリンクをたどって、CentOS-6.4-x86_64-bin-DVD1.isoとCentOS-6.4-x86_64-bin-DVD2.isoをダウンロードする。
Virtual Boxの設定画面で、CentOS-6.4-x86_64-bin-DVD1.isoをCDに入れて、電源Onする。

discのcheckは省略してよい。

時計は、親(ホスト)のSystem ClockがUTCなので、Use system clock UTCを選んだ。

CentOSで自宅サーバー構築(http://centossrv.com/centos6.shtml) を参考にしようとしたのだけど、VMだからか「赤と青と灰色の昔ながらのUnixのインストール画面」になる。
参考ページのように、色々聞かれたりしない。
discからインストールできるのは、kernelまで。gnomeを含むpackageはこの段階ではインストールできない。
Congratulations, your CentOS installation is complete.となったら、Rebootする。

Rebootすると、ログイン画面が出る。install時に決めたパスワードで、rootログインできたら、うまく行っている。

4. CentOS最低限の環境整備

まず初めに、一般ユーザーを追加した。
uidを親(ホスト)と合わせておくと、将来的に苦労しなさそうな気がする。
(親の環境でのuidは
$ id
とすれば表示される。)
# adduser -u 8888 username (8888は自分のユーザーidにする。)
# passwd username

他、最低限のpackageを入れる。
うちのCentOSは、目的があって、完全ローカルで運用する。
なので、yumもinstall disc頼り。
think-tの晴耕雨読 RSSフィード(http://d.hatena.ne.jp/think-t/20101207/1291733637 )が参考になった。
CentOS-6.4-x86_64-bin-DVD1.isoをCDに入れてmountする。
# mkdir /media/CentOS
# mount /dev/cdrom /mdeia/CentOS

# yum --disablerepo=\* --enablerepo=c6-media search emacs
で正しく動くか確かめよう。

うまく動いたら、次のコマンドで色々インストールする。
# yum --disablerepo=\* --enablerepo=c6-media install <package name>
次のものを入れた。
emacs(依存関係でいろいろなものが入る。)
man
rsync(このあと使うのだ)
sudo (rootでの作業気持ち悪い)

5. Gnomeのインストールまで

install discは2枚になっていて、2枚目の中身は、そのままでは使えない。
1枚目と2枚目の中身を同じディレクトリにおいておく必要がある。

CentOS-6.4-x86_64-bin-DVD1.isoをCDに入れた状態で、
# umount /media/CentOS
# mount /dev/cdrom /mnt/
# rsync -av /mnt/ /media/CentOS/
# umount /mnt/

CentOS-6.4-x86_64-bin-DVD2.isoに入れ替えて
# mount /dev/cdrom /mnt/
# rsync -av /mnt/ /media/CentOS/

さあ、gnomeをインストールしよう。
# yum --disablerepo=\* --enablerepo=c6-media groupinstall "X windows system"
# yum --disablerepo=\* --enablerepo=c6-media groupinstall "Desktop"

!!古い参考文献には、"Gnome Desktop Envrionment"と書いてあるけれど、今は"Desktop"です。要注意。
東の森(http://morrey22.hatenablog.com/entry/2013/04/14/212837) さんに感謝を。

!! ここでおもむろに
# startx
すると、文字が豆腐になるので、ちょっと待て。豆腐のgnomeからlogoutするの大変。

X用のフォントを追加したら出来上がり。
# yum --disablerepo=\* --enablerepo=c6-media install xorg-x11-font*

# startx
するとgnomeが立つ。「rootでXやめろよ」と警告が出るけど気にしない。
一般ユーザでも
$ startx
でgnome が立つ。ふう。
!! なお、この段階でも
# X -configure
はerrorしてしまう。これは気にしないことにした。

runlevelは上げると、起動時にXが起動するのは知っているのだけれど、テストマシンで不安定な見込みなので、しばらくは黒画面でブートさせる予定。

ふう、一仕事。

!! 私は、OS、Gnomeは英語環境で運用しているし、今回のCentOSも英語版のものしか入れていない。(エラーとかが文字化けで読めなかったりするのが嫌だから)
なので、日本語環境を整えたい人は、追加の情報が必要だと思う。
もちろん、普段の環境では、font、emacs、tex、firefoxなどは日本語対応にして生活しているけど、逆にそれ以外のアプリケーションが日本語である必要はあんまり感じないので。

参考にさせていただいたみなさま、どうもありがとうございます。