FileFix Ultimate
日本語

VMDK・QCOW2の仮想マシンディスクから削除したファイルを復元する方法

仮想マシン内で削除したファイルは、物理ディスクの場合と同じく、ホスト上の仮想ディスクファイルの中にたいてい残っています。VMを停止し、フォルダーを安全な場所にコピーしてから、形式に対応した復元ツールでVMDKやQCOW2ファイルを直接開きましょう。VMを起動しなくても、ゲストのNTFS、FAT、ext4をスキャンし、見つかったファイルをホストに保存できます。

最終更新:

今すぐ行うこと

  1. ゲストがディスクに書き込まないよう、仮想マシンをシャットダウンします。
  2. 小さな記述ファイル(descriptor)とすべてのエクステントファイルを含め、VMのフォルダー全体を別ドライブにコピーします。
  3. 削除ファイルの復元で.vmdkの記述ファイルか.qcow2ファイルを開き、ゲストのパーティションをスキャンします。
  4. 復元したファイルは仮想マシンの中ではなく、ホストのフォルダーに保存します。

手順

  1. 仮想マシンを止める

    ゲストを正常にシャットダウンするか電源を切ります。一時停止したまま使い続けないでください。動作中のゲストはログ、更新、スワップを仮想ディスクに書き続け、その書き込みが削除ファイルの場所に入る可能性があります。

  2. VMフォルダーをコピーする

    仮想ディスクのあるフォルダーを別の物理ドライブにコピーします。VMwareでは小さな記述用.vmdkと、名前-flat.vmdkや名前-s001.vmdkのようなエクステントファイルで構成され、QEMUやKVMでは通常.qcow2ファイル1つです。原本には触れずコピーで作業します。

  3. エクステントを記述ファイルの隣に置く

    VMDKの記述ファイルは、エクステントファイル名を列挙した短いテキストです。それらが元の名前のまま同じフォルダーにないとディスクを組み立てられません。データストアからダウンロードした場合は、記述ファイルと大きなデータファイルの両方が届いているか確認してください。

  4. 仮想ディスクを開く

    FileFix Ultimateで削除ファイルの復元を開き、ディスクイメージファイルを選んでイメージファイルを開くを押します。記述用.vmdkか.qcow2を選ぶと、ディスクが読み取り専用で開かれ、物理ディスクと同様にパーティションが一覧表示されます。

  5. ゲストのパーティションをスキャンする

    ファイルがあったパーティションを選びます。Windowsゲストなら通常は大きなNTFSボリューム、Linuxならext4のルートかホームです。バランス スキャンを開始し、ファイルシステムを認識できない場合は詳細シグネチャスキャンで既知の形式を探します。

  6. ホストに保存する

    結果をプレビューし、必要なものを選んでホストのフォルダーか別のディスクに保存します。状態表示を確認してください。検証済みのファイルは独立した形式チェックに合格しています。

開ける仮想ディスク形式とその違い

VMwareのディスクにはいくつかの構造があります。モノリシックなsparse VMDKはゲストの書き込みに応じて大きくなります。streamOptimized VMDKは圧縮形式で、OVAやOVFのエクスポートによく含まれます。flat VMDKは事前割り当ての生ファイルで、別の小さな記述ファイルが説明します。FileFix Ultimateはこの3種類を読み、QEMU・KVM・ProxmoxのQCOW2バージョン2と3、Hyper-VのVHD・VHDX、生の.imgファイルも開けます。

sparseやQCOW2では、ゲストが一度も書かなかった領域はファイルに保存されません。ファイルが小さく済む反面、ゲストが解放してホストが回収したブロックは、ファイル内にもう存在しない可能性があります。

スナップショット、シンディスク、ゲスト内のTRIM

VMにスナップショットがある場合、その後の変更はベースディスクの隣の差分ファイルに入ります。ベースファイルだけを開くとスナップショット時点のゲストが見え、ファイルをその後に削除したのならむしろ好都合です。最新の状態が必要なら、ハイパーバイザーでVMのコピーを先に統合し、その結果を開くのが通常は最も簡単です。

最近のゲストは削除領域にTRIMやunmapを送ることがあり、一部のハイパーバイザーはそれに応じてシンやsparseのディスクを縮小します。その場合はSSDと同じく、削除ブロックがファイルから消えている可能性があります。復元はthickやflatのディスク、領域回収が無効なゲストでうまくいきやすい傾向があります。

よくある失敗

復元ソフトを入れるためにVMを起動すると、復元したいディスクそのものに書き込んでしまいます。原本ディスクにハイパーバイザーの修復や圧縮(compact)コマンドを実行すると、空き領域が捨てられることがあります。エクステントファイルの名前を変えてから記述ファイルを開くと両者の関係が切れるため、名前は変えず、フォルダー構成もそのままにしてください。

復元できない場合

  • 暗号化された仮想マシンは、ハイパーバイザーによる復号なしでは読めません。ゲスト内のBitLockerには回復キーが必要です。
  • ReFS、Btrfs、ZFSなど未対応のファイルシステムを使うゲストは、名前やフォルダーなしのシグネチャ検索のみになります。
  • エクステントファイルの欠落や改名でディスクの一部が欠けると、その部分にあったファイルは復元できません。
  • ゲストがTRIMし、ホストがシンやsparseのディスクから回収した領域には、通常は以前のデータが残っていません。
  • 親ディスクを必要とするスナップショット(子)VMDK、seSparse・vmfsSparse ディスク、RDM(物理デバイスマッピング)は開けません。ベースのディスクを使うか、先に仮想化ソフトでスナップショットを統合してください。

FileFix Ultimateでできること

  • VMDK(sparse、streamOptimized、flat)、QCOW2 v2・v3、VHD、VHDX、E01、生イメージを読み取り専用で開きます。
  • 仮想ディスク内のパーティションを表示し、NTFS、FAT32、exFAT、ext2・ext3・ext4のゲストを読んで名前とフォルダーを復元します。
  • ゲストのファイルシステムを認識できない場合は、68種類のファイル形式のシグネチャ検索に切り替えます。
  • VMDKを含む複数のディスクイメージを、仮想RAID 0、1、5、JBODとして組み合わせられます。

FileFix Ultimate は個人利用なら無料で、オフラインで動作し、復元元のドライブには書き込みません。業務利用にはPC 1台ごとに1年間のライセンスが必要です。実行前に署名を確認してください。

よく寄せられる質問

ホストで削除したVMDKファイル自体も復元できますか?

それは別の作業です。.vmdkはホストのドライブから消えたので、ホストのドライブをスキャンして記述ファイルと大きなデータファイルを探します。大きなflatやsparseのエクステントは断片化していることが多く、一部しか戻らない場合があります。

ディスクを開くのにVMwareやQEMUは必要ですか?

いいえ。仮想ディスクファイルを直接読むので、Windows 10・11のPCにファイルがあれば十分です。ハイパーバイザーはスナップショットを先に統合したいときにだけ使います。

小さいファイルと大きいファイル、どちらを選びますか?

VMwareなら小さな記述用.vmdkを選んでください。データのエクステントがどこにあるかをアプリに伝えます。記述ファイルを失った場合は、flatエクステントを生イメージとして開くこともできます。

ディスクを開くとVMが変わったり壊れたりしますか?

いいえ。ファイルは読み取り専用で開かれ何も書き込まれないため、VMはこれまでどおり起動します。それでもコピーで作業するのが最も安全です。

このページを共有