ubuntu on Gentoo チラシの裏ばーじょん
本館ではさくっと結果だけ書いたubuntu on Gentooですが、実際のところは苦難の連続でした…。そもそもubuntuを全く使ったことがないのにいきなりXenのDomUにしようってのが間違いだったのかもしれません。VineとCentOSでaptに馴染みがあったのがせめてもの救いでした。
まず最初にして最大の問題は、ubuntu on non-ubuntuの事例が異常に少ないこと。私のググり方が悪いのかもしれないんですが、先人の知恵に全然たどり着けませんでした。MRK Laboratoryさんのエントリに出会わなかったら今でも途方に暮れていたに違いありません。
やっと取っ掛かりが掴めてうひょうひょしながらDomUを起動したら、
ERROR Invalid kernel: xc_dom_compat_check: guest type xen-3.0-x86_32 not supported by xen kernel, sorry
と、つれないお言葉。
何じゃろーと思って調べてみたら、Yoichi's diaryさんのところでDom0カーネルにPAEサポートがないとダメなことを知る。私も一応Gentoo使いの端くれとして、カーネルコンパイルにはそれほど抵抗がありません。CONFIG_HIGHMEM64GをセットしてDom0カーネルの再構築。そして再起動。
そろそろ起動したかな〜と思いながらsshで接続するも、うんともすんとも言わず。別の開発区画(DomU)も一緒に落ちちゃってるので、このままでは大変まずい!と慌ててマシンルームにダッシュ。そしたらkernel panic起こして再起動ループに入っちゃってました。そんな事もあろうかと直前のカーネルは保存してあったので、そっちで起動しようとしたもののこちらもkernel panic(先ほどとは別のタイミングでしたが)。仕方ないのでさらに前のカーネルに戻したら、今度はxendの立ち上げでハング。最後の手段としてnon-Xenのカーネルで起動。何とか無事に立ち上がってほっと一安心。
non-Xenの状態でxenとxen-toolsを再emergeしてみたものの状況は改善せず。さてどうしたもんかな…とemergeと睨めっこしていたら、ふとxenのUSEフラグにpaeなるオプションを発見。藁にも縋る気持ちでUSE="pae" emerge xenとしてみたら、何とかXen環境復活!とにもかくにも開発区画を立ち上げなければ…とxm createしたら、見事に失敗。さすがにこれはDomUカーネルのPAEサポートのせいだとすぐ気が付いたので、さくっとカーネルコンパイルして解決。これでとりあえず人様に迷惑をかけない状態まで復活しました。
で、改めてubuntuの環境を起動してみたのですが、最後の最後まで行っておきながらログインプロンプトが出ず。最初はrc.localのどこかで問題が起きてるのかと思ったんですが、前に似たような事象があったことに気付き、gettyをxvc0に立ち上げるよう設定を変えたら解決。inittabが無かったのにはちょっとだけびっくりしましたけど。
やっと無事にDomUが立ち上がった…と思ったら、今度はネットワークが使えない。Xenでネットワークに不具合が起こるのは結構良くあることなので(Gentoo on Gentooの環境でもXenを3.2にするとネットワークがうまく動かないので私は今でも3.1.3を使ってます)、今回もここで打ち止めかな〜と思ったのですが、一人前のプログラマを目指す日記さんのところでUbuntuのXen対応カーネルに問題があることを発見。hiranotakaさんバージョンのカーネルを使うことで無事にネットワークが開通しました。
いやはや、長い道のりでした…。
でも、いろいろ苦労したおかげで前よりちょっと詳しくなった気がします。
しかしubuntuいいですね〜。比較対象がGentooってのも何がアレではありますが、とにかく取り回しがいい!アプリの導入はaptitude一発だし、コンパイルのための資源も膨大な一時領域も使わずに済みます。Webサーバ程度ならほんの30分で作れますし、ディスクが2GBもあれば動いちゃうのも魅力。
ただ、Dom0は数多のDomUを支える屋台骨なので、各種のニーズに応える懐の広さと拡張性の高さが求められるところ。そう考えるとGentooはすごく向いているのかもしれません。