QEMUというフリーのエミュレータを使って、Windows上でFreeBSDを動かしてみました。けっこうすんなりと動きます。速度も、速くはないけど、遅すぎはしない、という程度です。実用性があるのか?というと、個人的には、んん~?と疑問がありますが、まあおもしろいので、いいんじゃないでしょうか。
今日は、とりあえず、FreeBSDをインストールするまでです。
■QEMUをダウンロード&インストールする
QEMU on Windows
からqemu-0.7.0-windows.zipをダウンロードしました。
インストールは、zipファイルを展開するだけでOKです。
ちょっとだけ、気になった点があります。
- WindowsXPのあるPCにて。バージョン0.7.0が、起動したとたん固まる?、ウィンドウの枠が描画されるけど、中身が描画されない。回避方法わからず。
- 同じPCにて。バージョン0.6.1を使って、ゲストOSとしてFreeBSDを動かしていると、負荷が高くなったとき、QEMUが異常終了することがたびたびあった。HTT(ハイパースレッディング)をdisableしたところ、なんとなくましになった感じ。
■ディスクイメージファイルを作成する
ディスクイメージファイルというのは、QEMUがエミュレートするパソコンにとっての、ハードディスクとして使われるものです。qemu-img.exeというコマンドを使って作成するのですが、これは、コマンドプロンプト上で実行します。
スタートメニューの[ファイル名を指定して実行]を選択し、「cmd」と入力し、コマンドプロンプトを実行し、qemuを展開したディレクトリへ移動します。ここでは、「C:\pub\qemu」としています。
イメージファイルの名前はfreebsd.img、サイズは4Gバイトとします。
C:\pub\qemu>qemu-img create -f qcow freebsd.img 4G
Formating 'freebsd.img', fmt=qcow, size=4194304 kB
qcow形式のイメージなので、いきなり4GBのファイルが作られるわけではありません。詳しくは、3.6.1 ディスクイメージの作成のクイックスタートを参照してください。
C:\pub\qemu>dir freebsd.img
ドライブ C のボリューム ラベルは XXXXXXX です
ボリューム シリアル番号は AAAA-BBBB です
C:\pub\qemu のディレクトリ
2005/06/15 21:22 16,432 freebsd.img
1 個のファイル 16,432 バイト
0 個のディレクトリ 3,620,438,016 バイトの空き領域
■FreeBSDのインストール用CDイメージファイルを入手する
このへんから、ダウンロードできます。
ftp://ftp2.jp.freebsd.org/pub/FreeBSD/ISO-IMAGES-i386/
5.4/5.4-RELEASE-i386-disc1.iso
これ1つだけでかまいません。ダウンロードしたら、QEMUをインストール(展開)したディレクトリに置いておきます。
■QEMUを実行する
もともとある、qemu-win.batをベースにして、以下のような内容でqemu-freebsd.batという名前のバッチファイルを作成します。
REM Start qemu on windows.
@ECHO OFF
START qemu.exe -L . -m 128 -hda freebsd.img -enable-audio -localtime -cdrom 5.4-RELEASE-i386-disc1.iso -boot d
CLS
EXIT
意味は以下のとおり。
- ハードディスクのイメージファイルを指定
- CD-ROMのイメージファイルを指定
- ブートドライブをD(CD-ROM)に指定
qemu-freebsd.batを実行すると、さささーと起動して、しばらくすると、FreeBSDのインストーラが起動します。
あとは、普通と同じようにインストールできます。私は、いつもCustomでインストールしています(それ以外を選んだことがない)。

partitionの設定
スライスの設定です。とりあえず、使える分、すべてFreeBSDに割り当てます。たったの4Gバイトですから。

Labelの設定
FreeBSDのパーティションは、swapとルートの2つだけでいいでしょう。ルートパーティションはSoft Updateがデフォルトでは無効にされているので、有効にしておきます。

Distribution
そんなにたくさんいれる必要はありません。Customにして、base、dict、doc、games、info、manくらいあればいいでしょう。使わないのは、いれなくていいです。perlなんかも、あとで、最新のものをpackageからインストールすればいいでしょう。
X Window System(Xorg)はインストールしません。QEMUのなかで動かしても、苦痛でしょうから。あとで、CygwinのXサーバをインストールして使ったほうがましだと思います。Xorg関係の必要なものは(libraryとclientくらいか?)、あとで、packageで最新のものをインストールします。
Media
とうぜんCD-ROMを選びます。選択肢はCD/DVDです。
Commit
ディスクが初期化され(イメージファイルのディスクですよ)、ファイルのコピーがはじまります。エミュレータなので、ちょっと時間がかかります。

ファイルのコピーが終わったら、最後の設定作業を行います。
Root Password
一応設定します。
User Management
普段ログインするユーザーを登録しておきます。

Console
Keymap
Japanese 106など、適宜、設定しておきます。
Timezone
Is this machine's CMOS clock set to UTC?にはNoとする。
Asia、Japanを選ぶ。JSTでOK。
Mouse
Enable
動作確認。QEMUのウィンドウ内をクリックすると、キーボードとマウスがQEMUの管理下にはいります(とられてしまう)。QEMUの中で、マウスポインタが動くのを確認してください。
CtrlキーとAltキーの両方を押すと、マウスポインタがQEMUの外へでられるようになります。
この、QEMUに、キーボードとマウスをゆだねたり、とりもどしたりする方法を、ちゃんと覚えておいてください。
Network
Interfaces
QEMUがイーサネットインターフェイスをエミュレートします。ed0というインターフェイスとしてみえます。適当に設定しちゃいましょう。
Networkingを選択。
Interfacesを選択。
ed0を選択。
IPv6うんぬんはNoでよい。
DHCPうんぬんはYesを選択。QEMUがDHCPサーバもやってくれているのです。
数秒するとこんな画面になるので、HostとDomainを適当に決める。

ほかには、sshdを有効にしておく。あとで、Windows上から、puttyなどのSSHクライアントを使ってログインできるようにするためです。
Startup
とくになし。デフォルトでOK。
Exit Installをえらんでおしまいです。
しばらくすると、再起動がはじまります。しばらくだまりこんだあと、急に、またCD-ROMから起動してインストーラが動き出してしまうので、インストーラが起動している途中で、QEMUを終了させます。×ボタンをクリック。
■FreeBSDを起動する
qemu-freebsd.bat中の、qemuを実行する部分を、以下のように書き換えます。
START qemu.exe -L . -m 128 -hda freebsd.img -enable-audio -localtime
qemu-freebsd.batを実行します。おお~こんな感じに。

きた、きた。

インストール直後の1回目だけ、こんなのがでるので、てきとうにキーボードをたたいて、Enterキーを押します。

loginプロンプト、でます。
ネットワーク環境や、インストール時の設定によっては、ここまでたどりつかずに、途中で、だんまりになってしまうことがあるかもしれません。どう
も、DNSの名前引きでひっかかっているらしいです。とりあえず、Ctrlキーを押しながらCキーを押し(Ctrl+C)、中断させて、次にすすませてく
ださい。resolv.confを修正して、ネームサーバーを使わないようにしてしまいます。もっとも、DHCPを使っていると、毎回
resolv.confが作り直されてしまいます。/etc/以下のどこかのシェルスクリプトファイルを書き換えると、resolv.confを作るのを
やめさせることができます(あんまり、いい方法じゃない。だれか美しい方法を教えて)。

loginできます。
今日はここまで。shutdown -p nowしておしまいにする。

ほったらかしておくと、またブートしてしまうので、QEMUを終了させる。
■用語
- ホストOS ・・・ QEMUが動いているOS。ここでは、Windowsが、ホストOSになる
- ゲストOS ・・・ QEMUの中で動いているOS。ここでは、FreeBSDが、ゲストOSになる
■あとがき
QEMUが、けっこうおもしろいので、いろいろなネタを書き足していっています。
とりあえず、ココにまとめました。
そのあとも、どんどん追加しています。まとめ第2弾をいつかつくりますが、それまでは、左のgoogleで検索してください。