VirtualBox で VHD ハード ドライブのサイズを変更した後、起動できない

VirtualBox で VHD ハード ドライブのサイズを変更した後、起動できない

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

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

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

致命的: 起動可能なメディアが見つかりません。システムが停止しました。

次に、VHD内で何が起こっているかを確認し、デバイス管理内で接続しようとしましたが、接続できないというメッセージが表示されます。ファイルまたはディレクトリが破損しており、読み取れません

ここで何が問題なのか、またその VHD ファイル内に VM を保存するにはどうすればよいのか、ご存知ですか?

答え1

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

手順については分かりやすく説明されているここ; ステップ 4 に進みます。

答え2

私も同じ問題を抱えていました

  1. 希望のサイズで新しいVHDを作成する
  2. clonhdを使用して古いVHDから新しいVHDにコピーする

参照 :http://tips.kaali.co.uk/2012/03/16/expand-or-increase-the-size-of-virtual-box-vdi-dis/

答え3

私も同じ問題を抱えていましたが、GPartedライブCD

  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 をマウントできます。

答え4

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

私の計画は、マシンの実行中にディスクのサイズを変更することでした。なぜなら、動的ボリュームがあり、そのボリュームはオンザフライでサイズを大きくすることもできるからです。しかし、これは悪い考えでした。マシンを再起動してディスク サイズを最大にすると、壊れたイメージが残され、testdisk を使っても復元できませんでした。testdisk はパーティションを検出しましたが、ファイル システムはひどく損傷しており、修復できません。

したがって、次の点に注意してください:

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

バックアップ イメージとゲスト OS の電源をオフにした状態で、自分のマシンでこの手順を繰り返しましたが、うまくいきました。

関連情報