none
Hyper-Vの「親仮想ハードディスクの仮想サイズと差分ディスクの仮想サイズが一致しません。」のエラーの対処について RRS feed

  • 質問

  • お世話になっております。

    Hyper-Vのエラーについてご相談させてください。

    【現象】
    Hyper-Vマネージャの「仮想ハードディスクの編集ウィザード」を使い、
     仮想サーバの容量拡張を行ったところ、以下のエラーメッセージが表示され、
     仮想サーバが起動できなくなりました。

    「仮想ハードディスクのチェーンが壊れています。親仮想ハードディスクの
    仮想サイズと差分ディスクの仮想サイズが一致しません。」

    【経緯】
     仮想サーバのWindowsUpdateを実施したところ、Hyper-Vマネージャ上の
    「状況」ステータスが「ディスク領域が不足してきています。」と表示されて
    仮想サーバを起動できなくなったため、容量拡張の上記の対処を行いました。

    【相談】
    上記のチェーン破損のエラーの 復旧のため、一度拡張した仮想ディスクのサイズを
    元にに戻す方法を探しましたが、
     仮想ディスクの中のボリュームの縮小方法はあるようなのですが、
     仮想ディスク自体の縮小方法が見つかりませんでした。
    (以前は、VHDToolやVHD Resizerなどツールが提供されていてそれらのツールを用いて
    縮小を行えたようなのですが、現在は提供されているサイトを探したのですが、
     見つかりませんでした。)

    1)仮想ディスクをもとのサイズに戻す方法、もしくは何らかの方法で
      仮想サーバを復旧させる方法はありませんでしょうか。

    2)また、仮にVHDToolやVHD Resizerを入手できた場合、仮想サイズの
      変更の作業にあたって注意することがあればご教示いただけないでしょうか。


    【環境】
    ●ホストOS
     OS:Windows Server 2008 R2
    ●仮想サーバ
     OS:Windows Server 2008 R2
      (仮想ディスクは容量可変で設定されています。)

    2016年5月20日 1:04

すべての返信

  • 当方、ITプロでなく今回の事例のようなことをしたことはないので、以下の内容は参考程度でお願いします。

    自宅のWindows 10で実験しました。

    さすがにOS用VHDは怖いので、ブート可能ディスクでは試していません。

    ディスクIDが変わっていないので

    * 仮想サイズを拡張

    * ボリュームの拡張は未実施

    でよろしいでしょうか?

    起動メディアでないためか、この条件では親子ともディスクの編集で仮想サイズを拡張しても、現象は再現しませんでした。

    以下を試すなら、親子共々バックアップをお取りください。

    http://nasunoblog.blogspot.jp/2013/07/hyper-v-vhdx-broken.html

    にあるように、親をマウントしてファイルを作成したり、ボリュームを拡張するなどすると、IDが変わってdiskpartでもは親子関係が切れました。

    Hyper-Vでは再接続ウィザードを使うと、差分側の状態で接続しマージ出来ましたが、その後、いろいろ試しているうちに、例外でHyper-Vマネージャが落ちた後は再接続ウィザードが起動しなくなりました。(例外が出て続行すると固まる)

    ちなみに、IDが書き換わる前の状態で、親子の仮想サイズを拡張してサイズを揃えても、親子関係は切れませんでした。

    他に、再接続ウィザードが出ない条件として、親と同じ名前のディスクが存在する場合という記述が以下にありますが、再起動ウィザードを起動する前で固まって、試せていません。

    http://sirius715.jugem.jp/?eid=165

    差分ディスクをすっぱりあきらめるか、テスト用のディスクを作成して、よく確認されることをお勧めします。

    場合によっては作業OSのアックアップも取っておいたほうが良いかもしれません。



    • 編集済み tmori3y2 2016年5月22日 3:11
    2016年5月22日 0:18
  • tmori3様

    ご調査していただき、ありがとうございます。

    その後、インターネット上で見つけたVHDTool.exeで、仮想ディスクのサイズを元戻し、

    チェーン破損を修復することができました。

    (http://www.mediafire.com/download/3ll2zfpy2v3e47p/VhdTool.zip

    で見つけました。Microsoft提供のものかはわかりません。

     添付のものが実際に使ったtoolです。)

    具体的には以下の手順を行いました。

    1)外付けHDに退避していたサイズ不一致によるチェーン破損状態の

     親仮想ディスク、差分ディスクを元のフォルダに配置。

    2)VhdTool.exeの以下のコマンドでチェーン修復

    vhdtool /repaer <親仮想ディスクファイル> <差分ディスクファイル>

    3)退避時に失われた仮想マシンのアクセス権を、

     親仮想ディスクファイル・差分ディスクファイルに以下のコマンドで付与

    icacls <対象ファイル> /grant "NT VIRTUAL MACHINE\<マシンID> ":(F)

    お忙しい中、様々な方法をご調査・ご紹介くださりありがとうございました。

    今後作業する際は、基本動作に立ち返り、バックアップ取得を行ってから

    作業するようにいたします。

    2016年7月29日 3:58