フリーのエミュレータQEMUを使おう

 
  YAMAMORI Takenori ●yamamori@kt.rim.or.jp

●スナップショットを使う

QEMUに-snapshotオプションを付けて起動するとスナップショットモードになります. スナップショットでは,QEMUの仮想ディスクは読み出し専用になり, 仮想ディスクに対するゲストOSからの書き込みは,別途,差分データとして 記録されるようになります.この差分データは,QEMUの終了時に破棄されます.

したがって,ゲストOSのインストール直後などの安定な状態の仮想ディスクを 保存しておき,その後は専ら-snapshotを付けてQEMUを起動するようにすれば, いつまでもゲストOSを安定な状態に保てます.

また,-snapshotを使用中に,本当に仮想ディスクを更新したくなった場合は, QEMUモニター上でcommitコマンドを実行して,変更分を仮想ディスクに 書き込むことができます.

○qemu-imgによる差分ファイル

QEMUの終了時に差分データを破棄するのではなく,差分を保存したい場合は, あらかじめ次のように,qemu-imgコマンドのcreate -bオプションを使って, ベースイメージ(hda.img)に対する差分ファイル(hda-diff.qcow)を用意します.

$ qemu-img create -b hda.img -f qcow hda-diff.qcow

このあと,次のように差分ファイルを仮想ディスクに指定してQEMUを起動すれば, 差分データが差分ファイルに書き込まれて保存されるようになります.

$ qemu -m 256 -hda hda-diff.qcow

なお,差分ファイルに対して-snapshotを使うことや, 差分ファイルの差分ファイルを作成すること (差分ファイルのネスティング)も可能です.

○実ディスクでスナップショット

仮想ディスクではなく,次のように,ホストOSが使用中の 実のハードディスクに対してスナップショットを使うことができます.

$ qemu -snapshot -hda /dev/hda

実ディスクを使う場合,ゲストOSからの書き込みが起きないようにするため, -snapshotオプションは必須です.この方法では, 実ディスクの別パーティションにすでにインストールされているOSを ゲストOSとして起動することができます.

なお,実ディスクを使うには,ホストOS上で「chmod o+r /dev/hda」を実行し, ハードディスクのデバイスファイルを一般ユーザが読めるように変更しなければ なりません.このため,セキュリティ上のリスクを伴うことに注意してください.


To『フリーのエミュレータQEMUを使おう』[index]


このページは、技術評論社 Software Design 2005年7月号、『QEMU使いこなしテクニック(Linux編)』の原稿を元に、Web 用に再構成したものです。
To 謎の処理系 SunOS 4.1.4 [Home]
yamamori@kt.rim.or.jp