Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

21.13. virt-diff: 仮想マシンファイル間の差異の一覧表示

virt-diff コマンドラインツールを使用すると、2 つの仮想マシンディスクイメージのファイルの相違点を一覧表示できます。出力には、実行後の仮想マシンのディスクイメージへの変更が表示されます。このコマンドを使用して、オーバーレイ間の差異を表示することもできます。
注記
読み取り専用アクセスのみが必要であるため、ライブゲスト仮想マシンでは virt-diff を安全に使用できます。
このツールは、ファイル名、ファイルサイズ、チェックサム、拡張属性、実行中の仮想マシンと選択されたイメージの違いを検索します。
注記
virt-diff コマンドは、ブートローダー、パーティションまたはファイルシステム内の未使用の領域、または「hidden」セクターを確認しません。したがって、これをセキュリティーまたはフォレジリックツールとして使用しないことが推奨されます。
virt-diff をインストールするには、以下のいずれかのコマンドを実行します。
# yum install /usr/bin/virt-diff
または
# yum install libguestfs-tools-c
2 つのゲストを指定するには、1 番目のゲストに -a オプションまたは -d オプション、および 2 番目のゲストに -A オプションまたは -D オプションを指定する必要があります。以下に例を示します。
$ virt-diff -a old.img -A new.img
libvirt として知られる名前を使用することもできます。以下に例を示します。
$ virt-diff -d oldguest -D newguest
以下のコマンドオプションは、virt-diff で使用できます

表21.3 virt-diff オプション

コマンド 説明
--help 特定のコマンドまたは virt-diff ユーティリティーに関する簡単なヘルプエントリーを表示します。その他のヘルプは、virt-diff の man ページを参照してください。 virt-diff --help
-a [file] or --add [file]
指定したファイルを追加します。これは、最初の仮想マシンのディスクイメージでなければなりません。仮想マシンに複数のブロックデバイスがある場合、すべてのブロックデバイスを個別の -a オプションで指定できます。
ディスクイメージの形式は自動検出されます。これを上書きして、特定の形式を強制するには、--format オプションを使用します。
virt-customize --add /dev/vms/original.img -A /dev/vms/new.img
-A [URI] or --add [URI] リモートディスクを追加します。URI 形式は guestfish と互換性があります。「guestfish を使用したファイルの追加」 virt-diff -a rbd://example.com[:port]/pool/newdisk -A rbd://example.com[:port]/pool/olddisk
--all --extra-stats --times --uids --xattrs と同じ virt-diff --all
--atime デフォルトでは、virt-diff は、ファイルアクセス時間の変更に関心があるためです。アクセス時間の違いを表示するには、--atime オプションを使用します。 virt-diff --atime
-A [file] 指定したファイルまたは URI を追加します。これは、2 番目の仮想マシンのディスクイメージでなければなりません。 virt-diff --add /dev/vms/original.img -A /dev/vms/new.img
-c [URI] or --connect [URI] libvirt を使用している場合は、指定の URI に接続します。省略されている場合は、デフォルトの libvirt ハイパーバイザーに接続します。ゲストブロックデバイスを直接指定する場合(virt-diff -a)、libvirt は全く使用されません。 virt-diff -c qemu:///system
--csv 結果をコンマ区切りの値(CSV)形式で提供します。この形式は、データベースおよびスプレッドシートに簡単にインポートできます。注記 virt-diff --csv
-d [guest] or --domain [guest] 指定したゲスト仮想マシンからすべてのディスクを最初のゲスト仮想マシンとして追加します。ドメインの UUID は、ドメイン名の代わりに使用できます。 $ virt-diff --domain 90df2f3f-8857-5ba9-2714-7d95907b1c9e
-D [guest] 指定したゲスト仮想マシンからすべてのディスクを 2 番目のゲスト仮想マシンとして追加します。ドメインの UUID は、ドメイン名の代わりに使用できます。 virt-diff --D 90df2f3f-8857-5ba9-2714-7d95907b1cd4
--extra-stats 追加の統計を表示します。 virt-diff --extra-stats
--format or --format=[raw|qcow2] -a/-A オプションのデフォルトは、ディスクイメージの形式を自動検出することです。これを使用すると、コマンドラインでの -a/-A オプションのディスク形式が強制的に実行されます。--format auto スイッチを使用すると、後続のオプション(上記の -a コマンドを参照)の自動検出に戻ります。 virt-diff --format raw -a new.img -A old.img は、new.img および old.img の raw 形式(自動検出なし) を強制しますが、virt-diff --format raw -a new.img --format auto -a old.img では、new.img の raw 形式(auto-detection) を適用し、old.img の自動検出に戻ります。信頼できない未フォーマットのゲストディスクイメージがある場合は、このオプションを使用してディスク形式を指定する必要があります。これにより、悪意のあるゲストでセキュリティー上の問題を回避することができます。
-h または --human-readable ファイルサイズを人間が判読できる形式で表示します。 virt-diff -h
--time-days
これまでに変更したファイルの時間フィールドを表示します(今後はその場合も同様です)。
出力の 0 は、前から 86,399 秒(23 時間、59 分、および 59 秒)から、今後 86,399 秒の間を意味する点に注意してください。
virt-diff --time-days
-v or --verbose デバッグの目的で詳細なメッセージを有効にします。 virt-diff --verbose
-v または --version virt-diff バージョン番号を表示して終了します。 virt-diff -V
-x libguestfs API 呼び出しのトレースを有効にします。 virt-diff -x
注記
コンマ区切りの値(CSV)形式は、解析が困難な場合があります。そのため、シェルスクリプトでは csvtool およびその他の言語を使用し、CSV 処理ライブラリー(Perl や Python の組み込み csv ライブラリー用の Text::CSV など)を使用することが推奨されます。さらに、ほとんどのスプレッドシートやデータベースは CSV を直接インポートできます。