仮想化ソフトウェアの1つQEMU(GUIフロントエンドQtEmu・AQEMU)で作成した仮想マシンのゲストOS(ターゲット)としてDarwin/OpenDarwin/PureDarwinをインストール及び起動する方法について記します。
今回は、OpenDarwin 6.6.2及びDarwin 8.0.1(下記ISOディスクイメージ)を使用させて頂きました。
Darwinは、主にMach 3.0+FreeBSDから成り、Mac OS XやiOSのベースとなっているPOSIX準拠のオペレーティングシステムであり、Apple Public Source License/APSLの下、オープンソース及びフリーソフトウェアです。
時期的にApple社が、いわゆるIntel Macに移行する前に既にDarwinがオープンソース化されていたこともあり、Mac OS X v10.4 TigerからIntel Core Duoにおいて対応したといわれるIntel Mac移行当初(2006年1月)こそ未対応だったようですが、数ヶ月後には、対応が計られ実現したことでMacintosh以外のIntelを積んだいわゆるIBM PC/AT互換機の一部でも動作するようになったようです。
ただ、実際には、Darwinのオープンソース化と並行してDarwinベースのOpenDarwinプロジェクトが2002年発足するも完成に至ることなく活動停止、その後もApple社がオープン化に消極的になり、2005年、Darwin 8.0.1を最後にオープンソースとしてのDarwinのリリースも停止されましたが、以後もSourceforge.net上でダウンロードすることはできるようになっています。
それから、しばらく経った2007年、OpenDarwinの後継を意図したPureDarwinプロジェクトが発足、Darwin 10ベースも意図されている模様もリリースには至っていませんが、Darwin 8ベース、Darwin 9ベースの成果物はあるようで少なくとも2012年までは、インストール用isoディスクイメージや仮想マシンとしてのQEMU用.qcow2、VMware用.vmdk等、なんらかのリリースがなされた模様で、以後も入手可能となっています。
現時点でインストールできたのは、OpenDarwin 6.6.2とDarwin 8.0.1、起動できたのは、OpenDarwin 6.6.2でOpenDarwin 6.6.2は、shellによるCLIベースであり、QEMUで最小は確認していませんが、64MBではメモリ配置(アロケート)エラー、メモリ128MBで試したところ充分でした。
特に指定がない限り、このページで示すRAM値は、各仮想化ソフトウェアでの仮想マシン作成時に指定した値であり、少なくとも一定以上のRAM値を指定した場合においては、そこから仮想化ソフトウェアが消費するメモリを差し引いた値が、ゲストOSで利用可能なRAM総容量として割り当てられているようです。
尚、各種アプリケーションが必要とするメモリ量は考慮していません。
最初は、Darwin 8.0.1は、QEMUのGUIフロントエンドAQEMU、OpenDarwin 6.6.2は、QtEmuでインストールしました。
尚、[ホスト環境]にあるように検証に使うホストマシンのCPUは、仮想化支援機能のない32bit Intel Core 2です。
OpenDarwin 6.6.2とDarwin 8.0.1のインストーラは、shellによるCLIです。
異なるフロントエンドでやってみたのは、ただ、なんとなく、Mac OS X系は、64bitが基本、32bitはできてもイレギュラー、もしくは、ハードウェア仮想化支援機能(Intel VT-x)がないとインストールできないかもという思いがありつつ、ホストは、Intel VT-x機能のない32bitである一方、AQEMUは仮想マシンの作成にホスト設定上、IBM PCとしては、32bitという選択肢はなく、x86_64があったのでx86_64と指定すれば、それらしく振る舞ってインストールできちゃうかも?なんていう無茶苦茶な薄い淡い期待からでした。
実際には、その淡い期待は現実となり、AQEMUでは、ホストを[IBM PC x86_64]と設定することでIntel VT-xに対応していないマシンでもインストールできました。
と言うことは。。。同じQEMUなのにフロントエンドが異なるだけでインストールできたりできなかったりするわけはないよね?ということでQtEmuでOpenDarwin 6.6.2をインストールしてみた次第です。
また、念の為、その後、Intel VT-xとか、ホストを[IBM PC x86_64]としたりといった指定項目がないQtEmuにおいてDarwin 8.0.1をインストールしてみたら、最初は、うまくいかず、もしかして?と思い、起動コマンドを[qemu-system-i386]から[qemu-system-x86_64]としてみたところQtEmuでもインストールできました。。。というか、AQEMUで[IBM PC x86_64]を選んだ場合、[qemu-system-x86_64]で起動するということなのでしょう。
ちなみにこれに気づいたのには、前例があったからです。
それは、ホストがWindows Vistaだった時は考えたこともありませんでしたが、ホストをFedora(Linux)としてrpm版QtEmuのインストール、QtEmuだと仮想マシンが起動できないな。。。と思っていたものの、[File] > [Configure]にある[QEMU Start command]に[qemu]とあるのを見て、そういえば、QEMUの起動コマンドは[qemu]ではなく、CPUアーキテクチャごとのものがインストールされていたな・・・と思い出し、[qemu-system-i386]に変更することでQtEMUでも仮想マシンを起動できるようになった経緯があったこと。
ここまでの流れからするとCLIでインストールする場合には、OpenDarwin 6.6.2は、[qemu-system-i386]コマンドでもインストールできますが、Darwin 8.0.1は、[qemu-system-x86_64]コマンドでないとインストールできない(ようになっている)ということのようです。
尚、AQEMUでのDarwin 8.0.1のインストールで最初に失敗した際にACPIうんぬんというエラーが出た気がし、AQEMUでは[Advanced]タブの[Additional Options]タブ内に[Enable ACPI]という項目をチェックしましたが、後にGUI上にそうした設定項目のないQtEmuで再現させたときには、何も指定せずにインストールできたので、この点は、フロントエンドによって実装が異なるようですが、本来必要ないのか、QtEmuがデフォルトで、または、自動判定するなりして有効にしているのかについては、ソースを確認したわけではないので定かではありません。
少し、前置きが長くなってしまいましたが、OpenDarwin 6.6.2とDarwin 8.0.1のインストールについては以下のようになりました。
OpenDarwin 6.6.2では、タイマー付きブートメニュー、[boot:]、作成済みディスク選択、[1) Auto-partition...]で自動的にフォーマットを含むfdisk操作が行われ、あとは自動的にインストールされるので簡単です。
一方、Darwin 8.0.1は、qemu起動コマンドだけでなく、フォーマットにも注意が必要です。
Darwin 8.0.1の場合、デフォルトでは、ホストをMac、フォーマット(ファイルシステム)をboothfs、hfsとしている為だと思いますが、ホストがMacでない場合には、[1) Auto-partition...]ではエラーとなってしまいます。
より具体的には、Darwin 8.0.1で[1) Auto-partition...]を選んだ場合、fdiskのusage(使用方法)と[auto-patition]の書式リストが表示され、defaultがboothfsとなっていることが確認でき、[Would you like to do a clean install? (yes/no)]と問われ、yesを選ぶと[Desired Volumename:]の入力を促され、それを終えても[Aborting the installation]と失敗を告げられ、[Press enter to reboot]と再起動するなら[enter]を押してねといった旨のメッセージが表示され、インストールできません。
そこでホストがLinuxの場合には、[2) Manually partition...]を選択、fdisk用プロンプトが表示された状態で[auto partition_type]のようにしてブート用のパーティションとシステムルートとするパーティションを作成する必要があります。
また、前述の通り、起動コマンドが[qemu-system-x86_64]ではなく、[qemu-system-i386]だとブートパーティションを選択できず、結果的に失敗するので[qemu-system-x86_64]を使い(QtEmuでは、[File] > [Configure]の[QEMU Start command]でこれを設定し)ます。
今回ホストがLinuxなのでufs(Unix File System)やbootufsが適切な候補と考えてよいでしょう。
その上で[fdisk>]プロンプトが表示されたら、[auto bootufs]とすれば、[fdisk>print]で確認できるようにブートパーティションのほか、自動的にルートパーティションも作成されます。
次に、これら設定を書き込む為に[write]、終了させる為に[quit]と入力してfdiskを抜けると利用可能なパーティションが表示され、ルートパーティションはどれ?と問われるので/dev/disk0s*([/dev/disk0s1]がブートパーティション、[/dev/disk0s2]がルートパーティションとなっていれば[/dev/disk0s2])のように適切なパスを入力し、その後、クリーンインストールしたいかを聞かれるので[yes]とするとボリューム名の設定を促され、その後、指定したディスクほか、そこまでの設定が正しければ、インストールが始まります。
ちなみにこのインストーラは、fdisk含め、途中で間違えた場合などには、その場で修正することができない為、リセットする以外に正しくインストールを進める方法はありません。
ただ、こうしてインストールできるDarwin 8.0.1も起動してみると[Booting From Hard Disk...]と表示されたまま、動いているのか止まっているのかわからず、しばらく待っても起動しませんでした。(もちろん、QtEmuでもAQEMUでも同様。)
他方、OpenDarwin 6.6.2の方は、冒頭のスクリーンショットにもあるように起動もしますし、もちろん使用もできます。
OpenDarwin 6.6.2のデフォルトのログインshellは、tcshです。
デフォルトでは、アカウントは[root]とし、パスワードは未設定なので[Enter]でスルーすればログインできます。
DarwinのベースがFreeBSDであるならOpenDarwin 6.6.2のパッケージ管理は、pkg_add/pkg_delete/pkg_info...などなのか、MacPorts(旧DarwinPorts)なのか、/sbin、/bin、/usr/sbin、/usr/binなどをザッと眺めてみるとOpenDarwin 6.6.2には、yumやaptなども入っているようです。
インストール直後のOpenDarwin 6.6.2は、CLIであり、ウィンドウマネージャや統合デスクトップ環境はインストールされていないようです。
OpenDarwinのスクリーンショットとしてGNOMEをインストールしたものもあったように思いますし、後継のPureDarwinのサイトを見るとMac OS Xに似たXFceによる実装があるようですし、リポジトリ設定してなんらかのパッケージマネージャを使えば、インストールできるのでしょう。きっと。
PureDarwinについては、インストール用のisoディスクイメージがない?ようで見あたらず、.qcow2や.vmdkなど仮想マシン用ファイル(の圧縮ファイル)をいくつかダウンロードしてみましたが、変換含めてVirtualBox/VMware Playerでは、Intel VT-xに対応していないというエラーにより、同じ理由だとは思いますが、AQEMU/QtEmu/qemu-system-*についても起動させることができませんでした。
OpenDarwinについては、プロジェクト停止からだいぶ経過していることもあって配布元は結構、限られている模様である中、"OpenDarwin"をキーワードとした検索結果にmit.edu(マサチューセッツ工科大学のサイト)があったこと、同じくhttp://lists.apple.com/...のページにもリンク切れではあったものの、ダウンロード先としてmit.eduへのリンクがあったことから検索結果にあったhttp://web.mit.edu/...からダウンロードさせて頂くことにしました。