Hyper-V仮想マシンのチェックポイント削除後、仮想マシンが起動できない、仮想ディスクにアクセスできない現象について紹介します。
Hyper-V仮想マシンでチェックポイントの機能を利用している場合、チェックポイント削除後にディスクの取り外しをする場合に、
下図の警告ダイアログが表示されます。ここで、マシンを正しくシャットダウンしていることから[続行]をクリックしてディスクを取り外し、
その後元のVHDXの仮想ディスクファイルを変更すると、VHDXと差分のAVHDXディスクとの整合が取れなくなり、マシンが起動できなくなってしまう場合があります。
仮想ディスクを接続して、マシンを起動すると自動修復が開始します。
診断が始まります。
すぐに自動修復が失敗した旨のメッセージが表示されます。セーフモードでの起動もできません。
または「ディスクのエラーを確認しています。完了するまで1時間以上かかる場合があります。」の表示になり、1日以上経過しても進まない状態になります。
VHDXファイルと、チェックポイント差分のAVHXDファイルとの整合が崩れ、ディスクのファイルが破損してしまった可能性が高いです。
ディスクの接続を削除しただけの軽度の場合は、Hyper-VコンソールでAVHDXファイルを選択し、[編集]ボタンをクリックします。
アクションの選択画面で[再接続]の項目を選択して[次へ]ボタンをクリックします。
親ディスクの選択画面が表示されますので、AVHDXファイルの差分元の親ディスクのVHDXファイルを選択します。
次へボタンをクリックすると、ディスクの再接続が実行できます。
ディスクの接続を削除した後に、親ディスクのVHDXファイルに対して編集をしてしまった場合、IDが一致しなくなるため、完全には復元できなくなります。
次の手順で復元します。
PowerShellで Merge-VHD
コマンドを実行して、AVHDXファイルをVHDXファイルに結合します。IDが異なっている場合は、IDの不一致を無視して結合します。
手順はこちらの記事を参照してください。
AVHDXファイルを結合後のVHDXファイルをHyper-V仮想マシンに接続して起動できるか確認します。状態が良ければOSが起動できます。
OSが起動できない場合は、VHDXファイルをマウントして、ドライブ内のファイルにアクセスできるか確認します。
状態が良ければ、ブートはできないがVHDXをマウントしたドライブ内のファイルはアクセス可能な場合があります。
アクセスできる場合は、ファイルを別ディスクにコピーして、ファイルを回収します。
VHDXをマウントできるが、ドライブへのアクセスが拒否される場合は、ディスク復元ツールでVHDXドライブ内のファイルが復元できるかを確認します。
VHDXのドライブを復元できるツールとして、EaseUS Data Recovery Wizardがあります。
手順はこちらの記事を参照してください。
次のコマンドを実行して、ディスク修復を実行します。ファイルが削除される可能性が高いですが、うまくいけば、ブートできる状態になります。
chkdsk /f (VHDXファイルをマウントしたドライブ名)
chkdsk /f e:
修復後のVHDXファイルをHyper-V仮想マシンに接続して起動できるか確認します。状態が良ければOSが起動できます。
修復後のVHDXファイルでもマシンが起動できない場合は、再度ディスク復元ツールでファイルを復元します。
修復前より多くのファイルが復元できる可能性があります。
ここまで実施してマシンが起動できない場合は、新しい仮想ディスクを作成して、OSを再インストールしたほうが良いです。