フリーのエミュレータQEMUを使おう |
||
YAMAMORI Takenori ●yamamori |
QEMUに-snapshotオプションを付けて起動するとスナップショットモードになります. スナップショットでは,QEMUの仮想ディスクは読み出し専用になり, 仮想ディスクに対するゲストOSからの書き込みは,別途,差分データとして 記録されるようになります.この差分データは,QEMUの終了時に破棄されます.
したがって,ゲストOSのインストール直後などの安定な状態の仮想ディスクを 保存しておき,その後は専ら-snapshotを付けてQEMUを起動するようにすれば, いつまでもゲストOSを安定な状態に保てます.
また,-snapshotを使用中に,本当に仮想ディスクを更新したくなった場合は, QEMUモニター上でcommitコマンドを実行して,変更分を仮想ディスクに 書き込むことができます.
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」を実行し, ハードディスクのデバイスファイルを一般ユーザが読めるように変更しなければ なりません.このため,セキュリティ上のリスクを伴うことに注意してください.