数日前から、Windows上での簡単なLinux環境を作りたくて、Virtual PC 2007上にLinux環境をインストールしてみようと試みていました。
そんなわけで今回はUbuntu9.04 Desktop版をインストールしてみました。今回はその時のメモ。
結構苦労しましたがポイントさえ分かれば応用が利くようです。
■Ubuntu9.04のインストール
用意するものは、
Virtual PC 2007と
Ubuntu9.04Desktop版のISOイメージ。
http://www.microsoft.com/japan/windows/products/winfamily/virtualpc/default.mspx
http://www.ubuntulinux.jp/
まずは普通に「
Ubuntuをインストール」を選択してインストールしてみます。
すると、end traceで処理がストップしてしまいます。
原因は最初わかりませんでしたが、調べてみるとどうやらLinuxのカーネル2.6.24以降から追加されたXenによる仮想化対応パッチである
「paravirt_ops」(paravirtパッチ)が、VirtualPCやVMWare環境ではプロセッサエラーを引き起こすため、停止したり起動エラーが起こるようです。
(詳しくはこちら↓)
【連載】仮想化の教室 [第3回] 仮想マシンの限界 ~Linuxゲストの時計が狂う!?~ : Windows Server - Computerworld.jp
何にしても、素のインストールコマンドではVirtualPC上だと不具合が回避できそうにありません。
そこで、GRUBの起動コマンドを以下のように変更。
1.タイトル画面で「
Ubuntuをインストール」を選択
2.F4を押して「
セーフグラフィックモードでubuntuを起動」を選択
3.F6を押して起動コマンドを表示、次のような表示が出ます。
file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity initrd=/casper/initrd.gz quiet splash tz=Asia/Tokyo utc=no --
4.表示された起動コマンドを次のように変更を加える
4-1."
quiet"、"
splash"の削除
4-2.コマンドの末尾に "
vga=788 clocksource=pit nosmp noapic nolapic noreplace-paravirt" を追加
ここで、削除及び追加したコマンドの説明を書くと、
[boot時設定コマンド]
quiet … boot処理中にデバッグ情報を表示しないことを指定
splash … boot処理中にスプラッシュ画面を表示することを指定
[画面補正コマンド]
vga=788 … boot処理中の画面解像度の指定
[時間誤差調整コマンド]
clocksource=pit … 高精度タイマーによる補正はPITのみ利用(補正なし)
nosmp … SMPサーバ上のSMPカーネルがシングルプロセッサモード指定
noapic … APICの起動抑制
nolapic … ローカルAPICの起動抑制
[仮想化対応パッチ抑制コマンド]
noreplace-paravirt … 仮想化対応処理(paravirtパッチ)抑制
になっています。
vgaのパラメータに関してはこの通り。24bitはWindows環境では画面が崩れてしまうので、16bitのパラメータを設定してください。(よくある記事には "
vga=791" とおまじないのように書かれていますが、最適なものを選んだ方がいいです。)
|
800x600 |
1024x768 |
1280x1024 |
8bit |
771 |
773 |
775 |
16bit |
788 |
791 |
794 |
24bit |
789 |
792 |
795 |
これらを設定して、再度インストールを行うとインストール処理画面まで進むことができ、インストールを行えます。以降は普通にインストールを行ってください。
■Ubuntu9.04 on Virtual PC 2007の起動時設定
次にインストール後の起動設定について。
インストールが完了しても再起動がうまくいくとは限りません。上に書いた通り、VirtualPC上で起動するにはGRUBによるカーネルレベルでの設定が必要です。
ということで、上と同様に通常の起動コマンドで起動するとどうなるか敢えて試してみます。
何も表示されません。では先ほど同様に起動コマンドを変更します。
1.GRUBの起動選択時、「Esc」ボタンを入力
2.起動カーネル選択メニューで、「
Ubuntu 9.04 kernel 2.6.28-11-generic」を選択して、「e」ボタンを入力
3.「
kernel~」を選択して、「e」ボタンを入力、起動コマンドを編集する。
上記の通りにインストールした場合の起動コマンドは以下の通り。
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=*************** ro noreplace-paravirt clocksource=pit nosmp noapic nolapic xforcevesa quiet splash
4.表示された起動コマンドを以下の通りに変更する
4-1.コマンドの末尾に "
vga=788" を追加
5.「Enter」ボタンを入力して編集を終了
6.「b」ボタンを入力してbootを開始する
ここまでで起動は可能です。ですが、残念ながら編集した起動コマンドは保存されません。つまり今度継続的にこの設定を用いたい場合は、GRUBがカーネル起動に参照しているファイルを編集する必要があります。
ということで、そのファイルを編集します。
7.起動したUbuntuにログインして、端末(アプリケーション→アクセサリ→端末)をあげ、"
gksudo gedit /boot/grub/menu.lst"でmenu.lstを変更
8.ファイルの後半に起動コマンドが記載されているので、"
title" が "
Ubuntu 9.04, kernel 2.6.28-11-generic" となっている設定の、 "
kernel" のパラメータの末尾に "
vga=788" を追加して保存する
これで起動の設定は完了です。
また、不具合発生時にrecovery modeで起動することがあるかもしれないので、recovery modeの起動パラメータも変更しておくことをお勧めします。
とりあえず気になったのが
paravirtパッチの所存です。GUIの表示が崩れるのは以前からあったのでわかっていた話しなのですが、kernelのレベルの話だと、今後、テスト環境を仮想化していた時に、Update処理がきっかけでシステム環境を破壊するやもしれません。
そして、他のOSではどうなんでしょうか。そこのところも少し気になるのでそのうち調べます。
■関連記事
GRUBによるboot時のVGA設定に関するまとめ
■参考
【連載】仮想化の教室 [第3回] 仮想マシンの限界 ~Linuxゲストの時計が狂う!?~ : Windows Server - Computerworld.jp
Virtual PC 2007にUbuntu 8.04を入れてみた。:めもメモ とにかく メモめも:So-net blog
ubuntu 8.04 を Virtual PC 2007 へインストール - 取りあえず要点だけ - ふるた技工所(てっこうしょ) - 楽天ブログ(Blog)
プログラマの実態: Virtual PCにUbuntu 9.04 Serverをインストールする
Virtual PC 2007でUbuntuを入れてみた :: Webプログラマー+WebデザイナーなZARU日記PR