壊れたVirtualboxマシン.vdiからファイルを回復する


23

virtualboxで実行しているUbuntu 12.04.1では、ソフトウェアをインストールしているときにスペースが不足し、現在は再起動していません。回復する必要があるファイルがあります。私が持っているubuntu64.vdi私のWindows 7(ホスト)、ラップトップ上のファイルをし、VDIファイルからファイルを回復するのいずれかの方法がある場合、私は思っていました。

並行して、同じラップトップ内のvirtualboxで新しい12.04.1マシンを生成しました。このマシンは、壊れたマシンの代わりに使用します。

vdi作動中のディスクのリストにborked を追加できます。次に、gnome nautilusを使用して、破損したディスクをマウントしました。

私はそこにファイルを見つけることができますが、それらは約2ヶ月前のものです。これは、マシンのvirtualboxスナップショットを最後に行ったときと一致すると思いますが、昨日であった稼働中のマシンを最後に取得したときではありません。vdi昨日の時点で、クラッシュする直前にマウントする方法はありますか?

編集済み:

ここにVirtual Media Manager私のubuntu64.vdiファイルについて教えてくれます: ここに画像の説明を入力してください

編集2:

ubuntu.vdi十分なディスク容量がある外部USB にコピーしました。Windowsを使用してクローンを作成しようとしましたが、エラーが発生しました。

ここに画像の説明を入力してください

USBドライブの共有フォルダーを介して、動作中のVMから同じことを試み、クローンを開始しました。しばらくかかりましたが、正常に終了しました:

root@precise64:/media/sf_E_DRIVE/copy_of_ubuntu64_vm_folder_20140224/ubuntu64# 
VBoxManage clonehd ubuntu64.vdi ubuntu64.raw --format RAW
0%...

10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'RAW'. UUID: 90f99198-18e1-40ee-85fe-c083dcbb1ac3

編集3:

生ファイルを作成した後、で実行するtestdiskDeeper Search、次のようなリストが表示されます。 ここに画像の説明を入力してください

Ater Deeper Searchが終了すると、次のようなリストが表示されます。

ここに画像の説明を入力してください

しかし、どのスナップショットがどのスナップショットなのかわかりません...アイデアはありますか?


@Takkat、かっこいいですね。どうやってやるの?
719016 14

@Takkat、私はそれを行い、gnome nautilusを使用してマウントしましたが、2か月前のバージョンのマシンをマウントしたと思います。
719016 14

2
ここでの問題は、ディスクを回復する方法ではなく、スナップショットとマージする方法です。VDIのクローンを作成しようとすると、別のUUIDが使用され、スナップショットが機能せず、最新のデータが失われます。過去にディスクが破損しており、ベースディスクを回復できたが、常にデルタが失われたため、スナップショットを定期的に使用しません。ここで誰かがベースとデルタの両方を回復する良いレシピを提供してくれることを願っています。
パブロマリンガルシア14

1
これは次回の予定です。データを仮想マシンに保存したり、常に外部ドライブをマウントしたり...で頻繁にバックアップ/同期を行ってくださいrsync
ディー14

1
元のディスクではなく、最新のスナップショットを複製してみてください。使用する必要がありますVboxmanage clonehd 2208...(最新のUUIDをここにコピー)。参照してくださいserverfault.com/a/506581/195528
Rmano

回答:


21

コマンドラインの

Ubuntuをホストとして使用する場合、次のコマンドを使用して.vdiディスクをrawディスクに変換できます。

VBoxManage clonehd <sourcename> <clone.raw> --format RAW

次に、このファイルでtestdisk テストディスクをインストールするを開いて、仮想ドライブのイメージ上のファイルを回復できます(以下も参照)。

testdisk <clone.raw>

仮想マシンの

壊れたVDIドライブイメージがVirtual Boxにまだ登録されている場合、このイメージをドライブとして新しい仮想マシンに追加できる場合があります。

ここに画像の説明を入力してください

壊れた.vdiを追加した仮想Ubuntuを起動しますが、ドライブはマウントしません

  1. 収穫したデータを保持するためにそこにパーティションをマウントに(例えばディレクトリを作成し~/rescued、)

  2. テストディスク テストディスクをインストールするを仮想マシンにインストールします。

  3. そこからターミナルからtestdiskを開始します。

    sudo testdisk
    
  4. データを収集する適切なドライブを選択し(ここに表示/sdb)、選択します[Proceed]

    ここに画像の説明を入力してください

  5. 適切なパーティションレイアウトを選択します(通常Intel

  6. 選択[Analyse]-[Quick Search]

  7. ハーベストするデータを含むパーティションを選択します(ここでは、単一のNTFSパーティションのみが存在しました)。

    ここに画像の説明を入力してください

  8. を押し P て、そのパーティションのファイルを一覧表示します。

  9. データを含むディレクトリを参照します。ファイル名を表示して、正しいファイルを選択したことを確認してください。

  10. を使用してハーベストするディレクトリまたはファイルを選択します : 。選択したすべてのファイル/ディレクトリが緑色でマークされます:

    ここに画像の説明を入力してください

  11. 大文字 C を押して、選択したすべてのディレクトリ/ファイルをレスキューディレクトリにコピーし、次の手順で選択します。

  12. Ubuntu VMのマウントされたパーティション上のディレクトリを選択して、レスキューされたデータを保持します。

    ここに画像の説明を入力してください

  13. を押し c て、破損した.vdiから正常なVMのレスキューディレクトリへのデータのコピーを開始します。

ノート:

  • 6.[Quick Search]オプションでファイルが表示されない場合、。を実行する必要があります。これにより、以前に削除および上書きされたパーティションもリストされます。そのため、データが存在する適切なパーティションを選択する必要があります。[Deeper Search]

  • 私たちが撮影していた場合は、スナップショット .vdiのを、私たちは、これらを見つけること~/.VirtualBox/Machines/<Name of Machine>/Snapshots/{###}.vmdkが、我々はバーチャルボックスのスナップショット機能を使用していた時はいつでもスナップショットからの変更は、差分ファイルに書き込まれます。

    差分ファイルをハードドライブにマージするには、すべてのスナップショットを削除する必要があります(データリカバリを呼び出すのではなく、以前のスナップショットに復元できるため、おそらく必要ではありません)。または、次を使用してマシンのドライブを複製する必要があります:

    VBoxManage clonehd <name_of_source> <clone>
    

    次に、上記のように、クローンをレスキューVMにバインドします。

  • 破損した.vdiへの書き込みは、データが安全になった後にのみ行う必要があります。これにより、ファイルシステムがさらに破損する可能性があります。

  • 私たちのレスキューUbuntuがレスキューされたデータを保持するには小さすぎる場合、VMにバインドする別の新しい仮想ドライブを作成できます。次に、このドライブをVMにマウントして、テストディスクからデータを保存できるようにする必要があります。


これらの見事に詳細な指示をありがとう。それらを正しく追跡し、救助されたフォルダーにコピーするファイルを追加しました。コピーは成功しましたが、ファイルのタイムスタンプはかなり古いものでした。2日前ではなく2013年夏です。特に8か月前に何かを行ったかどうかは思い出せませんが、一見すると、2日前のファイルはありませんでした。私は今Deeper Searchそれをもう一度閲覧するために使用しています。
719016 14

@ 213441265152351-スナップショットフォルダーもご覧ください...新しい.vmdkが存在する可能性があります(少なくとも私のシステムではそうでした)。データが見つかることを願っています:)
タックカット14

を実行し、Deeper Search数時間後、回復したい内容を再度閲覧しました:まだgnome nautilusでパーティションをマウントするよりも早く、2013年夏バージョンの仮想マシンを指しているので、1月になりました2014バージョンですが、まだ2日前のファイルが見つかりません。
719016 14

1
@ 213441265152351:それはそれよりも複雑です。「クラッシュ」が発生したときに、差分イメージがまだドライブに適切に書き込まれていない可能性があります。Virtual Media Manager(virtualbox.org/manual/ch05.html#diffimagesを参照)からディスクを見て、そうであるかどうかを確認することができますが、私は良い結果が得られないと言う必要がありますこれらの画像からデータを回復する方法に関するアイデア。
Takkat 14

2
@Rmano:実際には、クローンVDIにはスナップショットは含まれませんが、差分がマージされたVMの最後の現在の状態になります。以前のスナップショットを複製する必要がある場合にのみ、スナップショットVDIを使用して複製できますが、スナップショットより後のすべての変更は複製に含まれません。
タックカット14

5

1)UUIDでスナップショットの回復を試み、次のハックを使用します。

  • 回復する状態のUUIDを選択します。
  • XMLファイルの簡単なナビゲーションを可能にするツール(Internet Explorerが機能する)でファイル.xmlを開きます。
  • [非常に下]の[ストレージコントローラー]セクションで、現在の状態のUUIDを見つけ、StorageControllerのname =、type =、およびAttachedDevice type =、port =、device =の設定を確認します。
  • 中央で、必要なスナップショットを見つけます。
  • スナップショットの[ストレージコントローラー]セクションで、上記で取得した値と一致する値(名前/タイプ/タイプ/ポート/デバイス)を持つAttachedDeviceを見つけます。
  • そのイメージUUIDは、ハードディスクのスナップショットイメージを識別します。{}ブラケットを削除し、

コマンドを入力してください C:> VBoxManage clonehd <UUID> CloneDisk.vdi

それが役立つことを願っています、私はここで解決策を見つけました:(https://forums.virtualbox.org/viewtopic.php?t=791

2)1)の手順が機能しない場合は、別の手順を試してみてください。ディスクの現在の状態を複製する方法:

  • 仮想メディアマネージャーを開きます(メニュー:ファイル>仮想メディアマネージャー)。
  • クローンを作成するハードディスクに移動し、ツリーを完全に展開します(テンキーの*キーを使用します)。
  • 現在の状態を複製するVMに接続されている{hexUUID} .vdiファイルを見つけます。ブランチの最後のリーフファイル(の1つ)になります。選択すると、ウィンドウの下部にある「添付先:」テキストに「添付先:」と表示され、その後に括弧で囲まれたスナップショットは表示されません。
  • ウィンドウの下部に表示される「場所:」の右側にあるファイル名をクリックします。
  • Ctrl + C /コピーしてテキストをクリップボードにコピーします。(パス){b6441469-5ccb-418c-8fdd-73c5e1a17314} .vdiのようになります。
  • Ctrl + V / hexUUID値を貼り付けて抽出し({}括弧を削除)、clonehdを実行してクローンを作成します。

この解決策はこちらから:(http://www.im-code.com/blog/blog/2012/02/04/virtualbox-clone-snapshots/)どちらもほぼ同じことを言っています。


1

Linuxシステムが壊れて/しまい、fsck修正できませんでした。次の簡単なアプローチを使用しました。

  1. 新しい交換用VDIをマシンに追加します。
  2. 新しいLinux ISOをダウンロードします。
  3. (1)で追加したディスクに新しいLinuxをブートしてインストールします。
  4. 新しいシステムにディスクをマウントし、必要なファイルをコピーします。通常、これは/home/user/フォルダーをコピーすることを意味します。隠しファイル(設定ファイル)を忘れずにコピーしてください。

私にとってはうまくいきました。ディスクの破損は起動を妨げるだけであり、ホームフォルダーのデータ損失はありませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.