VirtualBox 上の Gentoo ゲストのメモ

何度目かわからない VirtualBox ゲストに Gentoo を入れる作業。

実はゲストマシンを構成する HDD 自体はイメージファイルとして残っているんだけど、 VirtualBox のメジャーバージョンアップにともなって新規インストールしているのです。なんで今さらって感じがするけど MTA の入れ替えをして戸惑うと困るから仮想マシン上にテスト環境をつくろうかなと思ったのですよ。

それに Gentoo Linux LiveDVD 11.0 なんてのも出たしね!

カーネル設定

VirtualBox が 3 になってカーネルを 2.6.30 にした辺りからカーネルパニック起こしまくって不安定だった気がする Gentoo on VirtualBox Guest さんなんだけど、カーネル少しいじったら落ち着いた気がします。このへん。

Processor type and features  --->
    [*] Tickless System (Dynamic Ticks) [CONFIG_NO_HZ]
    [ ] High Resolution Timer Support   [CONFIG_HIGH_RES_TIMERS]
    [ ] Machine Check Exception         [CONFIG_X86_MCE_INJECT]
        Timer frequency (100 HZ)  --->  [CONFIG_HZ_100]

特に上2つはやっておいたほうがいい気がする。その他は以下を参照。

↑を見るとシングルプロセッサにしなさいってなっているけど、マルチにしても見たところ不具合はない気がします。

X の固有ドライバ (モジュール)

X 関連のモジュールは /etc/make.conf に以下のように記述して xorg-drivers をマージしてインストール。 xorg-server を入れれば勝手に入ります。もちろん X を使わない場合にはこの作業は必要ありません。

INPUT_DEVICES="virtualbox evdev"
VIDEO_CARDS="virtualbox vesa"

例によって vesa が入っているのは気にしない。


ただし、ホスト上の VirtualBox とゲスト上のドライバのバージョンは合わせたほうがいいと思います。ホストの VirtualBox は 4.0.4 で Gentoo で提供されている安定バージョンは 3.2.12 になっているので、以下の作業をやっておきます。

バージョンを確認

とりあえずバージョン確認です。対象となるものは x11-drivers/〜〜virtualbox です。

$ eix virtualbox -C x11-drivers

 * x11-drivers/xf86-input-virtualbox
     Available versions:  3.2.12 ~4.0.2-r2 ~4.0.4 {hal}
     Homepage:            http://www.virtualbox.org/
     Description:         VirtualBox input driver

 * x11-drivers/xf86-video-virtualbox
     Available versions:  3.2.12 ~4.0.2 ~4.0.4 {dri kernel_linux}
     Homepage:            http://www.virtualbox.org/
     Description:         VirtualBox video driver

安定版は 3.2.12 で、ホストと同じバージョンの 4.0.4 はキーワードマスク (~) されています。

キーワードマスクを外す

キーワードマスクを外します。今回 64bit 版を入れているので ~amd64 で外します。

$ sudo su -
# echo '=x11-drivers/xf86-input-virtualbox-4.0.4 ~amd64' >> /etc/portage/package.keywords
# echo '=x11-drivers/xf86-video-virtualbox-4.0.4 ~amd64' >> /etc/portage/package.keywords


あとはマージするだけです。一応外れているのを eix や emerge -p で確認して下さい。

$ eix virtualbox -C x11-drivers

 * x11-drivers/xf86-input-virtualbox
     Available versions:  3.2.12 ~4.0.2-r2 (~)4.0.4 {hal}
     Homepage:            http://www.virtualbox.org/
     Description:         VirtualBox input driver

 * x11-drivers/xf86-video-virtualbox
     Available versions:  3.2.12 ~4.0.2 (~)4.0.4 {dri kernel_linux}
     Homepage:            http://www.virtualbox.org/
     Description:         VirtualBox video driver

$ emerge -p xf86-input-virtualbox xf86-video-virtualbox
[ebuild  N    ] x11-drivers/xf86-input-virtualbox-4.0.4
[ebuild  N    ] x11-drivers/xf86-video-virtualbox-4.0.4


なお X の入れ方等に疑問がある人は以下のサイトを読むべきです。順に従ってやっていくとわかるでしょう。

ゲストサービス

ファイル共有や X でのクリップボードの共有やマウスカーソルの移動に必要です。これは X を入れない場合でも必要です。ホストとの共有を行わない!っていうなら入れなくてもいい気がしますが…

なお、 VirtualBox ホスト OS 上で VirtualBox をインストールした際に提供される ISO を使ってインストーラを走らせる方法もあるんですが、せっかく ebuild があるので ebuild を使ったほうが楽です。

またこれも X のドライバ同様ホストと同じバージョンにした方がいいでしょう。

バージョン確認

バージョンを確認します。先ほどと同様。 4.0.4 はやはりキーワードマスクされています。

 * app-emulation/virtualbox-guest-additions
     Available versions:  3.2.12 ~4.0.2 ~4.0.4 {X kernel_linux}
     Homepage:            http://www.virtualbox.org/
     Description:         VirtualBox kernel modules and user-space tools for Linux guests
キーワードマスクを外す

キーワードマスクを外します。今回 64bit 版を入れているので ~amd64 で外します。

$ sudo su -
# echo '=app-emulation/virtualbox-guest-additions-4.0.4 ~amd64' >> /etc/portage/package.keywords


念のため eix や emerge -p で確認した方がいいです。手順は先ほどと同様なので省きます。

マージと完了作業

マージします。

$ sudo emerge -av virtualbox-guest-additions


その後、サービスとして動かすためにちょっと作業をします。

$ sudo /etc/init.d/virtualbox-guest-additions start       ← サービス立ち上げ
$ sudo rc-update add virtualbox-guest-additions default   ← 起動時に自動で立ち上がるよう登録
ファイル共有ポイントのマウント

ホスト上で公開している共有ディレクトリをマウントする方法を一応書いておきます。

# mount -t vboxsf ${ホスト上の共有名} ${ゲストのマウントポイント}


例えば、ホスト上の VirtualBox で共有を『 public 』という名前で設定し『 /mnt/vbox 』にマウントする場合以下になります。

# mount -t vboxsf public /mnt/vbox

あとは普通に

あとは普通の Gentoo とかわりません。いろいろ試してみるといいと思います。Gentoo は難しいとか思っている人には仮想って向いているかな?と思います。仮想環境を作れるようなスペックの PC があれば emerge もガンガンやれるはずですし。