フリーのエミュレータQEMUを使おう |
||
YAMAMORI Takenori ●yamamori |
ゲストOSをインストールするための仮想ハードディスクは, qemu-imgコマンドで作成します.QEMUでは,次のように, rawまたはqcowのフォーマットの仮想ディスクを使用します.
rawディスクは,ハードディスクのイメージファイルをそのまま用いる, 最も単純な仮想ディスクです.普通のイメージファイルなので 「mount -o loop,offset=32256」のようにして直接マウントすることもできます.
rawディスクを作成するには,下図のようにディスクサイズを指定して qemu-imgコマンドを実行します.rawフォーマットを指定する-f rawオプションは 省略可能です. なお,rawディスクはholeを含んだファイル(※注)になり, ファイルサイズと実際のディスク使用量が一致しませんので, 図*のように,ls -lsを実行して,ディスク使用量を確認する必要があります.
・図 rawディスクを作成 ---- $ qemu-img create hda.img 1G ← 1Gバイトのrawディスクを作成 $ ls -ls hda.img 0 -rw------- 1 username mygroup 1073741824 May 8 14:10 hda.img === ========== ↑ディスク使用量は0Kバイト ↑ファイルサイズは1Gバイト
qcowディスクは,rawディスクとは違って,holeを含まずに効率良く 小さなファイルサイズに収めたフォーマットで, 下図のようにqemu-imgコマンドに-f qcowオプションを指定して作成します. 1Gバイトの仮想ディスクでも,初期状態ではファイルサイズは8Kバイト未満に なっていることがわかります.
・図 qcowディスクを作成 ---- $ qemu-img create -f qcow hda.qcow 1G ← 1Gバイトのqcowディスクを作成 $ ls -ls hda.qcow 8 -rw------- 1 username mygroup 4144 May 8 14:13 hda.qcow === ==== ↑ディスク使用量は8Kバイト ↑ファイルサイズは4144バイト (4kバイト単位切り上げで8kバイト)
qcowディスクは,ファイルシステムがholeに対応していなくてもディスク使用量を 節約できるため,たとえば,仮想ディスクをCD-Rなどに保存したい場合に便利です. さらに,圧縮(-c)や暗号化(-e)のオプションも使用できます. ただし,qcowはQEMU専用のフォーマットになるで,「mount -o loop」で 直接マウントすることはできません.
qemu-imgコマンドには,異なるフォーマットの仮想ディスクイメージを 変換する機能があり,たとえば次のようにして,rawディスクをqcowディスクに 変換することができます.
$ qemu-img convert hda.img -O qcow hda.qcow
さらに,VMware(バージョン3.xまたは4.x)の仮想ディスクにも対応しており, すでにVMwareでインストール済みの仮想ディスクがある場合, 次のように変換してQEMUで利用することができます. ここで,VMwareのディスクを明示する-f vmdkオプションを付けても構いませんが, 省略しても自動判定されます.
$ qemu-img convert guest.vmdk hda.img