第10章 qemu-img および QEMU ゲストエージェント
/usr/share/doc/qemu-*/README.systemtap。
10.1. qemu-img の使用 リンクのコピーリンクがクリップボードにコピーされました!
チェック
ディスクイメージの filename で整合性チェックを実行します。
qemu-img check -f qcow2 --output=qcow2 -r all filename-img.qcow2
# qemu-img check -f qcow2 --output=qcow2 -r all filename-img.qcow2
qcow2 および vdi 形式のみが整合性チェックに対応します。
-r を使用すると、チェック中に見つかった不整合を修復しようとしますが、-r leaks クラスターのリークで使用されると修復され、-r all ですべての種類のエラーが修正されます。これには、間違った修正を選択したり、すでに発生している可能性のある破損の問題を隠したりするリスクがあることに注意してください。
Commit
指定したイメージファイル (filename) に記録された変更を、qemu-img commit コマンドでファイルのベースイメージにコミットします。オプションで、ファイルのフォーマットタイプ (format) を指定します。
qemu-img commit [-f format] [-t cache] filename
# qemu-img commit [-f format] [-t cache] filename
convert
convert オプションは、認識されているイメージ形式を別のイメージ形式に変換するために使用されます。
qemu-img convert [-c] [-p] [-f format] [-t cache] [-O output_format] [-o options] [-S sparse_size] filename output_filename
# qemu-img convert [-c] [-p] [-f format] [-t cache] [-O output_format] [-o options] [-S sparse_size] filename output_filename
-p パラメーターはコマンドの進捗を示し (すべてのコマンドではなく任意)、-S フラグは、ディスクイメージに含まれる sparse file の作成を許可します。ゼロのみを含む (何も含まない) 物理ブロックを除いて、あらゆる目的のスパースファイルは標準ファイルのように機能します。オペレーティングシステムがこのファイルを認識すると、たとえ実際にはディスクを使用していなくても、存在しているものとして扱われ、実際のディスク領域を消費します。ゲスト仮想マシン用のディスクを作成する場合に特に役立ちます。これにより、ディスクに必要なディスク領域よりもはるかに多くのディスク領域が使用されるようになります。たとえば、10Gb のディスクイメージで -S を 50Gb に設定すると、実際には 10Gb しか使用されていなくても、そのディスク領域の 10Gb は 60Gb に見えます。
filename 形式を使用して、ディスクイメージ output_filename をディスクイメージ output_format に変換します。ディスクイメージは、-c オプションで圧縮するか、-o encryption を設定して -o オプションで暗号化できます。-o パラメーターで使用できるオプションは、選択した形式とは異なることに注意してください。
qcow2 形式のみが暗号化または圧縮をサポートします。qcow2 暗号化は、安全な 128 ビット鍵で AES 形式を使用します。qcow2 圧縮は読み取り専用であるため、圧縮したセクターが qcow2 形式から変換されると、非圧縮データとして新しい形式に書き込まれます。
Create
サイズsize、フォーマットformat、新しいディスクイメージの ファイル名を作成します。
qemu-img create [-f format] [-o options] filename [size][preallocation]
# qemu-img create [-f format] [-o options] filename [size][preallocation]
-o backing_file=filename で指定されている場合は、イメージ自体とベースイメージの違いのみが記録されます。バッキングファイルは、commit コマンドを使用しない限り変更されません。この場合、サイズの指定は必要ありません。
-o preallocation=off|meta|full|falloc が含まれます。事前に割り当てられたメタデータを持つイメージは、イメージよりも大きくなります。ただし、イメージサイズが大きくなると、イメージのサイズが大きくなるとパフォーマンスが向上します。
full 割り当ての使用には、イメージのサイズが大きい場合に時間がかかる可能性があることに注意してください。完全な割り当てと時間が経つ必要がある場合、フラックを使用 falloc 時間を節約できます。
Info
info パラメーターは、ディスクイメージのfilenameに関する情報を表示します。info オプションの形式は、以下のとおりです。
qemu-img info [-f format] filename
# qemu-img info [-f format] filename
qcow2 イメージが使用している領域を表示します。これは、qemu-img を実行して行います。使用中のイメージが、qemu-img check コマンドで qemu-img info コマンドの出力と一致するイメージであることを確認できます。「qemu-img の使用」 を参照してください。
マップ
# qemu-img map [-f format] [--output=output_format] filename コマンドは、イメージファイル名のメタデータとそのバッキングファイルチェーンをダンプします。具体的には、このコマンドは、指定されたファイルのすべてのセクターの割り当て状態を、それをバッキングファイルチェーンに割り当てる最上位のファイルとともにダンプします。たとえば、c.qcow2 -f フォーマットオプションは、指定されたイメージファイルのフォーマットです。raw、qcow2、vhdx、vmdk などの形式を使用できます。可能な出力オプションには、human と json の 2 つがあります。
humanがデフォルト設定です。人間の目に読みやすくなるように設計されているため、この形式は解析しないでください。明確さと単純さのために、デフォルトのhumanフォーマットは、ファイルの既知のゼロ以外の領域のみをダンプします。ファイルの既知のゼロの部分は完全に省略され、同様にチェーン全体に割り当てられていない部分も省略されます。コマンドが実行されると、qemu-img 出力は、データを読み取ることができるファイルと、ファイル内のオフセットを識別します。出力は、4 列のテーブルとして表示されます。最初の 3 つは 16 進数です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow json、つまり JSON (JavaScript Object Notation) は、人間が読むこともできますが、プログラミング言語であるため、解析することも前提に設計されています。たとえば、パーサーで qemu-img map の出力を解析する場合は、オプション--output=jsonを使用する必要があります。qemu-img map -f qcow2 --output=json /tmp/test.qcow2
# qemu-img map -f qcow2 --output=json /tmp/test.qcow2 [{ "start": 0, "length": 131072, "depth": 0, "zero": false, "data": true, "offset": 327680}, { "start": 131072, "length": 917504, "depth": 0, "zero": true, "data": false},Copy to Clipboard Copied! Toggle word wrap Toggle overflow JSON 形式の詳細については、qemu-img (1) の man ページを参照してください。
リベース
イメージのバッキングファイルを変更します。
qemu-img rebase [-f format] [-t cache] [-p] [-u] -b backing_file [-F backing_format] filename
# qemu-img rebase [-f format] [-t cache] [-p] [-u] -b backing_file [-F backing_format] filename
qcow2 形式のみです。
サイズの変更
サイズ sizeで作成されたかのように、ディスクイメージのfilenameを変更します。バージョンに関係なく、サイズ変更できるのは raw 形式のイメージのみです。Red Hat Enterprise Linux 6.1 以降では、qcow2 フォーマットでイメージを拡大 (縮小はしない) する機能が追加されています。
qemu-img resize filename size
# qemu-img resize filename size
+ を付けて拡大するか、- を付けてディスクイメージのサイズをそのバイト数だけ縮小します。ユニットの接尾辞を追加すると、イメージのサイズをキロバイト (K)、メガバイト (M)、ギガバイト (G)、またはテラバイト (T) で設定できます。
qemu-img resize filename [+|-]size[K|M|G|T]
# qemu-img resize filename [+|-]size[K|M|G|T]
スナップショット
イメージ (ファイル名) の既存のスナップショット (スナップショット) を一覧表示、適用、作成、または削除します。
qemu-img snapshot [ -l | -a snapshot | -c snapshot | -d snapshot ] filename
# qemu-img snapshot [ -l | -a snapshot | -c snapshot | -d snapshot ] filename
サポート対象の形式
qemu-img は、ファイルを次のいずれかのフォーマットに変換するように設計されています。
-
raw - Raw ディスクイメージ形式 (デフォルト)これは、ファイルベースで最も高速な形式になります。ファイルシステムがホールをサポートしている場合 (たとえば、Linux の ext2 または ext3、Windows の NTFS)、書き込まれたセクターのみがスペースを予約します。qemu-img info を使用して、イメージが使用する実際のサイズを取得するか、Unix/Linux の ls -ls を取得します。Raw イメージは最適なパフォーマンスを提供しますが、Raw イメージで使用できるのは非常に基本的な機能のみです (たとえば、スナップショットは使用できません)。
-
qcow2 - QEMU イメージ形式。最も汎用性が高く、機能セットが最適な形式です。これを使用して、オプションの AES 暗号化、zlib ベースの圧縮、複数の VM スナップショットのサポート、およびホールをサポートしないファイルシステム (Windows 上の非 NTFS ファイルシステム) で役立つ小さなイメージを使用します。この拡張機能セットはパフォーマンスに影響を与えることに注意してください。
raw、または qcow2 形式に変換するために、以下の形式も認識してサポートします。イメージの形式は、通常、自動的に検出されます。この形式を raw または qcow2 に変換することに加えて、raw または qcow2 から元の形式に戻すことができます。
- bochs
- Bochs ディスクイメージ形式。
- cloop
- Linux Compressed Loop イメージ。Knoppix CD-ROM などにある直接圧縮 CD-ROM イメージを再利用する場合にのみ役立ちます。
- cow
- User Mode Linux Copy On Write イメージ形式。cow 形式は、以前のバージョンとの互換性のためにのみ同梱されています。Windows では動作しません。
- dmg
- Mac ディスクイメージフォーマット。
- nbd
- ネットワークブロックデバイス。
- parallels
- Parallels 仮想化ディスクイメージフォーマット。
- qcow
- 古い QEMU イメージフォーマット。古いバージョンとの互換性にのみ含まれます。
- vdi
- Oracle VM VirtualBox ハードディスクイメージ形式。
- vmdk
- VMware 互換のイメージフォーマット (バージョン 1 および 2 の読み取り/書き込みサポート、およびバージョン 3 の読み取り専用サポート)。
- vpc
- WindowsVirtualPC のディスクイメージフォーマット。
vhd、または Microsoft 仮想ハードディスクイメージフォーマットとも呼ばれます。 - vvfat
- 仮想 VFAT ディスクイメージフォーマット。