2005年6月16日木曜日

Windows上でQEMUを使ってFreeBSDを動かす

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でインストールしています(それ以外を選んだことがない)。



qemu01



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



qemu02



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



qemu05



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
ディスクが初期化され(イメージファイルのディスクですよ)、ファイルのコピーがはじまります。エミュレータなので、ちょっと時間がかかります。
qemu13



ファイルのコピーが終わったら、最後の設定作業を行います。



Root Password
一応設定します。



User Management
普段ログインするユーザーを登録しておきます。
qemu18



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を適当に決める。



qemu31





ほかには、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を実行します。おお~こんな感じに。









qemu40



きた、きた。



qemu41


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



loginプロンプト、でます。



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



qemu42



loginできます。
qemu43


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



ほったらかしておくと、またブートしてしまうので、QEMUを終了させる。





■用語



  • ホストOS ・・・ QEMUが動いているOS。ここでは、Windowsが、ホストOSになる


  • ゲストOS ・・・ QEMUの中で動いているOS。ここでは、FreeBSDが、ゲストOSになる


■あとがき



QEMUが、けっこうおもしろいので、いろいろなネタを書き足していっています。
とりあえず、ココにまとめました。





そのあとも、どんどん追加しています。まとめ第2弾をいつかつくりますが、それまでは、左のgoogleで検索してください。





0 件のコメント:

コメントを投稿