14.4. イメージのマッピング

qemu-img map コマンドを使用すると、指定されたイメージファイル (imgname) とそのバッキングファイルチェーンのメタデータをダンプできます。ダンプにより、imgname の各セクターの割り当て状態が、バッキングファイルチェーンでそれを割り当てる最上位のファイルとともに表示されます。任意で、ファイルの形式 (fmt) を指定します。
 # qemu-img map [-f fmt] [--output=fmt] imgname
human 形式と json 形式の 2 つの出力形式があります。

14.4.1. human 形式

デフォルト形式 (human) は、ファイルのゼロが設定されていない割り当て済みの部分のみをダンプします。データの読み取り可能な場所と、ファイルのオフセットから出力はファイルを識別します。各行には 4 つのフィールドが含まれます。以下は出力の例になります。
Offset          Length          Mapped to       File
0               0x20000         0x50000         /tmp/overlay.qcow2
0x100000        0x10000         0x95380000      /tmp/backing.qcow2
最初の行は、イメージのオフセット 0 で開始する 0x20000 (131072) バイトが、オフセット 0x50000 (327680) で開始する tmp/overlay.qcow2 (raw 形式で開かれた) で利用可能であることを意味します。human 形式が指定されている場合は、圧縮または暗号化されたデータ、または raw 形式で利用できないデータが原因でエラーが発生します。

注記

ファイル名には改行文字が含まれる場合があります。そのため、スクリプト内で human 形式の出力を解析するのは安全ではありません。

14.4.2. json 形式

json オプションが指定されている場合、出力は JSON 形式の辞書の配列を返します。出力には、human オプションで提供された情報のほかに、以下の情報が含まれます。
  • data - セクターにデータが含まれるかどうかを示すブール値のフィールド。
  • zero: データがゼロとして読み取られると認識されているかどうかを示すブール値のフィールド。
  • depth - filename の曝気イングファイルの深さ。

注記

json オプションが指定された場合、offset フィールドは任意です。
qemu-img map コマンドおよび追加オプションについての詳細は、関連の man ページを参照してください。