次の方法で共有


ブート エラーのトラブルシューティング - ディスク読み取りエラーが発生しました

適用対象: ✔️ Windows VM

この記事では、Azure 仮想マシン (VM) でディスクを読み取ることができない問題を解決する手順について説明します。

現象

ブート診断を使用して VM のスクリーンショットを表示すると、"ディスク読み取りエラーが発生しました。 Ctrl + Alt + Del キーを押して再起動します。

ディスク読み取りエラーが発生したメッセージのスクリーンショット。

原因

このエラー メッセージは、ディスクの構造が破損していて読み取ることができないことを示します。 第 1 世代 VM を使用している場合は、ブート構成データを含むディスク パーティションが Active に設定されていない可能性もあります。

ソリューション

プロセスの概要

ヒント

VM の最新のバックアップがある場合は、そのバックアップから VM の復元を試行して、起動の問題を修正することができます。

  1. 修復 VM を作成してアクセスします。
  2. ソリューションを選択します。
  3. シリアル コンソールとメモリ ダンプの収集を有効にします。
  4. VM を再構築します。

Note

このブート エラーが発生する場合、ゲスト オペレーティング システム (OS) は動作しなくなります。 この問題を解決するには、オフライン モードでトラブルシューティングを行います。

修復 VM を作成してアクセスする

  1. VM 修復コマンドの手順 1 から 3 を使用して、修復 VM を準備します。
  2. リモート デスクトップ接続を使用して、修復 VM に接続します。

パーティションの状態をアクティブに設定する

Note

この軽減策は、第 1 世代 VM にのみ適用されます。 第 2 世代 VM (UEFI を使用) では、アクティブパーティションは使用されません。

  1. 復旧 VM にシステム ディスクを取り付ける

  2. 復旧 VM へのリモート デスクトップ接続を開始します。

  3. [コンピューターの管理] > [ディスクの管理] の順に開きます。 ディスクが [ディスクの管理] コンソールで [オンライン] になっていることを確認します。 アタッチしたシステム ディスクに割り当てられているドライブ文字をメモします。

    復旧 VM に接続されているディスクを示すスクリーンショット。

  4. ブート パーティションと Windows パーティションを特定します。 OS ディスクにパーティションが 1 つしかない場合、このパーティションはブート パーティションと Windows パーティションの両方になります。

    OS ディスクに複数のパーティションが含まれている場合は、その中のフォルダーを表示してパーティションを識別できます。

    • Windows パーティションには、 Windows という名前のフォルダーが含まれており、このパーティションは他のパーティションよりも大きくなります。

    • ブート パーティションには、 Boot という名前のフォルダーが含まれています。 このフォルダーは既定では表示されません。 このフォルダーを表示するには、 [保護されたオペレーティング システム ファイルを表示しない (推奨)] を無効にし、隠しファイルおよびフォルダーを表示する必要があります。 通常、ブート パーティションは 300 MB から 500 MB です。

  5. 管理者として次のコマンドを実行して、ブート レコードを作成します。

    bcdboot <Windows partition>:\Windows /S <windows partition>: 
    
  6. DISKPART ツールを使用して、Windows パーティションがアクティブかどうかを確認します。

    1. 管理者特権でのコマンド プロンプトを開き、DISKPART ツールを開きます。

      diskpart

    2. システム上のディスクを一覧表示し、追加されたディスクを探して、新しいディスクの選択に進みます。 この例では、新しいディスクは Disk 1 です。

      list disk
      sel disk 1
      

      diskpart ウィンドウには、リスト ディスクと sel disk 1 コマンドの出力が表示されます。ディスク 0 とディスク 1 が表に表示されます。ディスク 1 が選択されているディスクです。

    3. そのディスク上のすべてのパーティションを一覧表示し、確認するパーティションを選択します。 通常、システム マネージド パーティションはサイズが小さく、サイズは約 350 MB です。 次の図では、このパーティションはパーティション 1 です。

      list partition
      sel partition 1
      

      [Partition 1]\(パーティション 1\) が選択されているパーティションを示すスクリーンショット。

    4. パーティションの状態を確認します。 この例では、パーティション 1 はアクティブではありません。

      detail partition

      パーティション 1 がアクティブでない詳細パーティション コマンドの出力を含む diskpart ウィンドウ。

      パーティションがアクティブでない場合は、アクティブ フラグを変更し、変更が正しく行われたかどうかを再確認します。

      active
      detail partition
      

      パーティション 1 がアクティブな詳細パーティション コマンドの出力を含む diskpart ウィンドウ。

    5. DISKPART ツールを終了します。

      exit

ディスク パーティションを修正する

  1. 管理者特権でコマンド プロンプト (cmd.exe) を開きます。

  2. 次のコマンドを使用して、ディスクに対して CHKDSK を実行し、エラーの修正を行います。

    chkdsk <DRIVE LETTER>: /f

    /f コマンド オプションを追加すると、ディスク上のエラーが修正されます。 ドライブ文字>は、接続されている OS VHD の文字に置き換えてください。

シリアル コンソールとメモリ ダンプの収集を有効にする

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 したがって、次の手順を注意深く実行してください。 保護のために、レジストリを変更する前にレジストリをバックアップして、問題が発生した場合にレジストリを復元できるようにします。 レジストリのバックアップと復元方法の詳細は、「Windows のレジストリのバックアップおよび復元の方法」を参照してください。

推奨: VM を再構築する前に、次の手順に従ってシリアル コンソールとメモリ ダンプの収集を有効にします。

  1. 管理者として管理者特権でのコマンド プロンプト セッションを開きます。

  2. /ems および /emssettings オプションを使用して、次の BCDEdit コマンドを実行します。

    シリアル コンソールを有効にします。

    bcdedit /store <volume-letter-containing-the-bcd-folder>:\boot\bcd /ems {<boot-loader-identifier>} ON
    bcdedit /store <volume-letter-containing-the-bcd-folder>:\boot\bcd /emssettings EMSPORT:1 EMSBAUDRATE:115200
    
  3. OS ディスクの空き領域が、VM のメモリ サイズ (RAM) よりも大きいことを確認します。

    OS ディスクに十分な領域がない場合は、メモリ ダンプ ファイルが作成される場所を変更し、その場所を、十分な空き領域がある VM に接続されているデータ ディスクを参照します。 場所を変更するには、次のコマンドで、 %SystemRoot% をデータ ディスクのドライブ文字 ( F:など) に置き換えます。

    OS ダンプ ファイルを有効にするには、次の loadadd、および unload コマンドを実行して、 reg ツールを使用して推奨される構成を実装します。

    壊れた OS ディスクからレジストリ ハイブを読み込みます。

    reg load HKLM\<broken-system> <volume-letter-of-broken-os-disk>:\windows\system32\config\SYSTEM
    

    ControlSet001 での有効化:

    reg add "HKLM\<broken-system>\ControlSet001\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f
    reg add "HKLM\<broken-system>\ControlSet001\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f
    reg add "HKLM\<broken-system>\ControlSet001\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f
    

    ControlSet002 での有効化:

    reg add "HKLM\<broken-system>\ControlSet002\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f
    reg add "HKLM\<broken-system>\ControlSet002\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f
    reg add "HKLM\<broken-system>\ControlSet002\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f
    

    壊れた OS ディスクをアンロードします。

    reg unload HKLM\<broken-system>
    

VM を再構築する

VM 修復コマンドの手順 5 を使用して、VM を再構築します。

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。