適用対象: ✔️ Windows VM
この記事では、Azure Virtual Machine (VM) のディスクが起動できない問題を解決する手順を説明します。
現象
起動診断を利用して VM のスクリーンショットを表示すると、スクリーンショットのプロンプトに "This is not a bootable disk. Please insert a bootable floppy and press any key to try again..." (これは起動可能なディスクではありません。起動可能なフロッピーを挿入し、任意のキーを押して、もう一度やり直してください...) というメッセージが表示されます。
図 1
原因
このエラー メッセージは、OS のブート プロセスがアクティブなシステム パーティションを見つけることができなかったことを意味します。 または、ブート構成データ (BCD) ストアに参照が欠落していることにより、Windows パーティションが特定できなかったことを意味する場合もあります。
ソリューション
プロセスの概要
ヒント
VM の最新のバックアップがある場合は、そのバックアップから VM の復元を試行して、起動の問題を修正することができます。
修復 VM を作成してアクセスします。
パーティションの状態を Active に設定します。
ディスク パーティションを修正します。
推奨: VM を再構築する前に、シリアル コンソールとメモリ ダンプの収集を有効にします。
元の VM を再構築します。
Note
このブート エラーが発生する場合、ゲスト OS は動作しなくなります。 この問題を解決するには、オフライン モードでトラブルシューティングを行います。
修復 VM を作成してアクセスする
- VM 修復コマンドの手順 1 から 3 を使用して、修復 VM を準備します。
- リモート デスクトップ接続を使用し、修復 VM に接続します。
パーティションの状態をアクティブに設定する
Note
この軽減策は、第 1 世代 VM にのみ適用されます。 第 2 世代 VM (UEFI を使用) では、アクティブパーティションは使用されません。
復旧 VM へのリモート デスクトップ接続を開始します。
[コンピューターの管理] > [ディスクの管理] の順に開きます。 ディスクが [ディスクの管理] コンソールで [オンライン] になっていることを確認します。 アタッチしたシステム ディスクに割り当てられているドライブ文字をメモします。
ブート パーティションと Windows パーティションを特定します。 OS ディスクにパーティションが 1 つしかない場合、このパーティションはブート パーティションと Windows パーティションの両方になります。
OS ディスクに複数のパーティションが含まれている場合は、その中のフォルダーを表示してパーティションを識別できます。
Windows パーティションには、 Windows という名前のフォルダーが含まれており、このパーティションは他のパーティションよりも大きくなります。
ブート パーティションには、 Boot という名前のフォルダーが含まれています。 このフォルダーは既定では表示されません。 このフォルダーを表示するには、 [保護されたオペレーティング システム ファイルを表示しない (推奨)] を無効にし、隠しファイルおよびフォルダーを表示する必要があります。 通常、ブート パーティションは 300 MB から 500 MB です。
管理者として次のコマンドを実行して、ブート レコードを作成します。
bcdboot <Windows partition>:\Windows /S <windows partition>:
DISKPART ツールを使用して、Windows パーティションがアクティブかどうかを確認します。
管理者特権でのコマンド プロンプトを開き、DISKPART ツールを開きます。
diskpart
システム上のディスクを一覧表示し、追加されたディスクを探して、新しいディスクの選択に進みます。 この例では、新しいディスクは Disk 1 です。
list disk sel disk 1
そのディスク上のすべてのパーティションを一覧表示し、確認するパーティションを選択します。 通常、システム マネージド パーティションはサイズが小さく、サイズは約 350 MB です。 次の図では、このパーティションはパーティション 1 です。
list partition sel partition 1
パーティションの状態を確認します。 この例では、パーティション 1 はアクティブではありません。
detail partition
パーティションがアクティブでない場合は、アクティブ フラグを変更し、変更が正しく行われたかどうかを再確認します。
active detail partition
DISKPART ツールを終了します。
exit
ディスク パーティションを修正する
管理者特権でコマンド プロンプト (cmd.exe) を開きます。
次のコマンドを使用して、ディスク上で CHKDSK を実行し、エラーを修正します。
chkdsk <DRIVE LETTER>: /f
'/f' コマンド オプションを追加すると、ディスク上のすべてのエラーが修正されます。
DRIVE LETTER>接続されている OS VHD の文字に置き換えてください。
推奨: VM をリビルドする前に、シリアル コンソールとメモリ ダンプ収集を有効にします
シリアル コンソールとメモリ ダンプの収集を有効にするには、次の手順に従います。
管理者として管理者特権でのコマンド プロンプト セッションを開きます。
/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
OS ディスクの空き領域が、VM のメモリ サイズ (RAM) よりも大きいことを確認します。
OS ディスクに十分な領域がない場合は、メモリ ダンプ ファイルが作成される場所を変更し、その場所を、十分な空き領域がある VM に接続されているデータ ディスクを参照します。 場所を変更するには、次のコマンドで、
%SystemRoot%
をデータ ディスクのドライブ文字 (F:
など) に置き換えます。OS ダンプ ファイルを有効にするには、次の load、 add、および 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 フィードバック コミュニティに製品フィードバックを送信することもできます。