Solaris on VirtualBox on Mac OS X

昨日に続いて Solaris の話。
VirtualBox 特有のことや、忘れていた Solaris の癖など。


まずはじめに、VirtualBox に割り当てるメモリは 768MB 以上ないと、インストーラさえ動いてくれません。なかなか贅沢ですね。
そこで、メモリは 1GB にして、ビデオメモリも 32MB にしました。
インストール自体は時間はかかるものの、特に問題なく進みます。
ただし、気をつけたいのは Solaris Express Developer Edition のバージョンです。
Developer Edition として公開されている B79B ではインストールに失敗します。
Community Edition として公開されている B86 の方から、Developer Edition を選んでやる必要があります。
インストールが無事終わって、リブートするとログイン画面が出てきます。
ここでは root ではなく、インストール時に作成した一般ユーザでログインします。
次の壁はネットワーク。
昔からそうだったのを思い出しましたが、Solaris の DHCP クライアントは、DNS サーバの設定をしてくれません。
そこで、/etc/resolv.conf に VirtualBox の仮想 DNS サーバのアドレス(10.0.2.3) を設定します。
これで nslookup などはちゃんと動くようになりますが、Web ブラウザ等からアクセスができません。
そうです。/etc/nsswitch.conf の存在を忘れていました。ここに hosts: files dns と書けば、ちゃんと Web ブラウザからもインターネットにアクセス出来るようになりました。
これで一通り終わったと思い、一度シャットダウンして再度起動してみると、以下のメッセージが出てブートしなくなってしまいました。

diskread: reading beyond end of ramdisk
krtld: failed to open ‘/platform/i86pc/kernel/unix’

よくわからないのでセーフモードで立ち上げて /platform/i86pc/kernel/unix の存在を確認したりしましたが、特に問題なく存在しています。
同じような症状で困っている人はいないかと思い、ググってみたところ、このページにたどり着きました。
kernel ではなくて、ramdisk の方が問題だったみたいです。
ここにある通り、/boot/solaris/bin/create_ramdisk -R /a をしてみました。
そうしたら、/a が溢れてしまいました。df で見たところ、確かに VirtualBox で最初に割り当てた 8GB のディスクを使い果たしています。
Solaris Developer Edition 大きすぎます。。。
しょうがないので、ディスクを 16GB に作り直して最初からインストールのやり直しです。
今度はちゃんとリブートしても立ち上がってくるようになりました。
ちなみに、上で説明した /etc/resolv.conf の問題は、/etc/nsswitch.conf の方に dns を指定すれば、ちゃんと DHCP で自動設定されることが判明しました。少しは進歩しているみたいです。