VirtualBoxでvhdハードドライブのサイズが変更された後に起動できない


15

Windows 7では、VirtualBoxで別のWindows 7 VMをセットアップしました。うまくいきました。次に、vhd HDサイズを増やす必要がありました。そこで、私はVBoxManageユーティリティを使用して、次のコメントでそれを行いました。

VBoxManage modifyhd "c:\VMs\Win7.vhd" --resize 30000

次に、VMを再度実行しようとしましたが、起動できず、次のエラーが表示されます。

致命的:ブータブルメディアが見つかりません!システム停止。

次に、VHD内で何が起こっているのかを確認し、Device Management内でそれを添付しようとしましたが、ファイルまたはディレクトリが破損していて読めないため添付できませんと表示されます

ここで何が間違っていたのか、そのVHDファイル内にVMを保存するにはどうすればよいですか?


私はまったく同じ問題を抱えていて、オンラインで有用な解決策を見つけることができなかったため、Microsoftのドキュメントに従ってVHDを手動で分析し始めました。現在、modifyhdの実装には、ブロックアロケーションテーブルを拡張した後、データブロックへのオフセットを調整しなかったバグがあるようです。これを確認するには、さらに実験を行う必要があります。
-billc.cn

VirtualBox 4.3.10では、.vhdファイルのサイズを変更しました。ブロックアロケーションテーブルポインターを調整しなかっただけでなく、ブロックアロケーションテーブルをデータの最初のブロックに拡張し、MBRとパーティションテーブルを上書きしているように見えます。VirtualBoxを使用して.vhdファイルのサイズを変更しないでください。
アーロン14

回答:


12

残念ながら、VBoxManage --resizeオプションのVirtualBoxドキュメントは誤解を招きます。ディスクイメージのサイズを単に増やして、すべてを適切に機能させることはできません。ゲストオペレーティングシステムがディスクイメージがシミュレートしている「ドライブ」のレイアウトを認識するように、イメージ内のディスクパーティション情報を調整する必要があります。この調整を行うには、パーティションエディターが含まれている起動可能なCDイメージをダウンロードし、VMをそのCDから起動します。次に、パーティションエディタを使用して、追加されたスペースを使用するようにディスクイメージのパーティションを調整します。

ここに手順の素晴らしい記事があります; 手順4に進んでください。


まあ、それは残念です。これは、私が3時間の仕事を捨てたことを意味します。情報をありがとう。
タグバーク

4
私は素敵な記事(vhdのサイズを変更して起動できなかった)に従いましたが、GPartedはハードドライブにパーティションを表示せず、未割り当ての領域は50ギガしかありませんでした。modifyhdそれは修理できないほどドライブをねじ込んだということですか?
GSerg


1

同じ問題があり、GParted LiveCD を使用してデータを取得できました

  1. コピーされたデータを受け取る新しいVHDを作成します(パーティションとフォーマットを作成します)
  2. GParted LiveCDをダウンロードし、VirtualBoxで起動します
  3. デバイス->データレスキューの試行を選択します
  4. [OK]をクリックし、スキャン後に[表示]をクリックします(これにより/ tmp / gparted-roview-XXXXXXがマウントされます)
  5. ターミナルで、2番目のVHDをマウントします(sudo mount / dev / sdb1 / mnt)
  6. ファイルをコピーします(sudo cp -R / tmp / gparted-roview-XXXXXX / * / mnt

その後、仮想マシンをシャットダウンし、WindowsデバイスマネージャーでVHDをマウントできます。


1

ここで彼らは問題を(スペイン語で)説明する

概要:

a。「vboxmanage modifyhd(サイズ変更)」は、多くのシステム(Windows NT5、9x、サーバーおよびx86バージョン)でエラーを生成します。その結果、パーティションが破損し、回復が非常に困難になります

b。VDIに関連付けられているすべてのファイルとフォルダーを含むパスで、「vboxmanage modifyhd(resize)」を実行する必要があります(VDIのサイズを変更するには)。画像を見てください

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

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

勧告:

「vboxmanage modifyhd」を「vboxmanage clonehd」に置き換えます

  1. 新しい仮想ディスクVDIを作成します(サイズを拡張します)。例:Old.vdiには50GBがありました。New.vdiは100GBで作成します

    VBoxManage createhd --filename /path/New.vdi --size 100000

  2. 次のコマンドでクローンを作成します。

    vboxmanage clonehd /path/Old.vdi /path/New.vdi --existing

両方のVDIが同じパス上にあるべきではありません

  1. New.vdiを実行し、Windowsコンピューターの管理に移動して、ディスク領域を拡張します(空の領域を割り当てます)。手動で行いたくない場合は、AOMEI Partition Assistant StandardGParted、その他多くの無料のパーティション分割アプリケーションを使用できます。

答えを更新

0

まったく同じ問題が発生したことに注意してください。これは、ゲストの実行中にmodifyhdコマンドを発行したためです。公式ドキュメントには、スナップショットを最初に削除する必要があり、そのゲストは停止されるべきであることが記載されていません。

私の計画は、マシンの実行中にディスクのサイズを変更することでした。これは、動的ボリュームもオンザフライで増やすことができるためです。しかし、マシンを再起動して完全なディスクサイズを取得するので、これは悪い考えでした。テストディスクがなくても復元できない、暗闇の中で残されたイメージです。Testdiskはパーティションを検出しますが、ファイルシステムはひどく破損しており、修復できません。

アドバイスしてください:

  1. すべてのスナップショットをベースイメージにマージする
  2. ゲストOSをシャットダウンします

バックアップイメージとゲストOSの電源をオフにしてマシンで手順を繰り返しましたが、これはうまく機能します。


0

このバグによって壊れたイメージを回復することができました。エジソンとは異なり、gpartedライブイメージは何も見つかりませんでした。私がやったことは次のとおりです。

  • まず、VHDのVBoxサポートは明らかにバグが多く、ひどいので、まずVHDをVDIに変換することから始めますVBoxManage clonehd foo.vhd --format vdi foo.vdi。この手順をスキップすると、イメージからファイルを回復できましたが、数回再起動すると再び「破損」しました。バグは本当に後でI / Oが「再ブレーク」するような方法でVHDファイルを台無しにしてしまうのではないかと推測しています。

  • Windowsプレインストール環境であるWinPEを起動します。これを行う方法は、それ自体の記事になる可能性があります。これに慣れていない場合は、ショートカットがあります。WindowsセットアップDVD(Vista以降)から起動し、GUIが表示されたらshift-F10を押すと、コマンドプロンプトが表示されます。

  • testdiskをダウンロードし、WinPEイメージ上に取得する方法を見つけて(または簡単なUSBスティックで機能します)、WinPE環境から実行します。(注:WinPEには、32ビットアプリの32ビット互換性レイヤーであるWOW64がありません。したがって、64ビットWinPEセットアップには64ビットテストディスクバイナリが必要でした。)

  • テストディスクはパーティションを見つけて復元しました。

  • この時点でファイルは回復されましたが、ブートローダーはいくつかの問題で失敗しました。まず、私が使用したdiskpartパーティションをアクティブとしてマークします(list disksel disk <disk number>sel par 0active)。さらに進んで、起動しません。WinPEに戻って削除し\boot、実行bcdboot C:\windows /s C:してブートローダーを再インストールしました。

  • 最後にchkdisk /R、画像が正常であることを確認するために走りました。数時間かかりましたが、問題は見つかりませんでした。


-1

私も同じ問題を抱えていました。GPartedはパーティションをまったく認識せず、未割り当てのスペースとして表示されました。この時点で、データが失われた可能性があることを理解しました。

次に、testdiskを使用してハードドライブ上の失われたパーティションを探したことを思い出したので、仮想ディスクで試してみませんか?そしてそれは働いた。

  1. GPartedから起動します。この返信を書いている時点で、GPartedには「testdisk」が含まれていました。ターミナルを実行し、「sudo testdisk / dev / sda」またはコンピューターに表示されるものを実行します。「sudo fdisk -l」を実行して、すべてのディスクを表示します。
  2. パーティションテーブルを分析します。パーティションはまだ最初のセクターにあるため、すぐにパーティションを検出します。次のリンクで指示されているように、新しいパーティション、テーブルを作成し、GPartedに進んでリカバリを続行します。http//www.howtogeek.com/124622/how-to-enlarge-a-virtual-machines-disk-in-virtualbox -または-vmware /
  3. 次にこれを行う場合は、最初にVDISKのコピーを作成します。
  4. 次のリンクで、新しいVHDを作成してから--existingでクローンを作成していることに気付きました:http ://tips.kaali.co.uk/2012/03/16/expand-or-increase-the-size-of-virtual- box-vdi-dis / まだ試していませんが、上記の手順でディスクを復元しました。

うまくいけば、それは誰かを助ける。


リンクされたページが変更されると回答が無効になる可能性があるため、回答の重要な部分を参照リンクから引用してください。
DavidPostill
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.