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などは日本語対応にして生活しているけど、逆にそれ以外のアプリケーションが日本語である必要はあんまり感じないので。
参考にさせていただいたみなさま、どうもありがとうございます。