ブート診断を使用して、Azure 内の仮想マシンをトラブルシューティングする方法

適用対象: ✔️ Linux VM ✔️ Windows VM

仮想マシンは、さまざまな理由で起動できない状態になる可能性があります。 Resource Manager デプロイ モデルを使用して作成された仮想マシンに関する問題に対処するには、次のデバッグ機能を使用できます。Azure 仮想マシンのコンソール出力とスクリーンショットのサポート。

Linux 仮想マシンについては、コンソール ログの出力をポータルから表示できます。 Azure では、Windows 仮想マシンと Linux 仮想マシンの両方に関して、ハイパーバイザーからの VM のスクリーンショットを表示できます。 どちらの機能も、すべてのリージョンの Azure Virtual Machines でサポートされています。 スクリーンショットと出力結果がストレージ アカウントに表示されるまでに最大 10 分かかる場合があります。

[ブート診断] オプションを選択すると、ログとスクリーンショットを表示できます。

Azure Portal の [ブート診断] ページの [スクリーンショット] タブのスクリーンショット。

一般的な起動エラー

Azure Portal を使用して作成された仮想マシンの診断を有効にする

次の手順は、Resource Manager デプロイ モデルを使用して作成された Azure 仮想マシン向けです。

[管理] タブの [監視] セクションで、[ブート診断] がオンになっていることを確認します。 既定の設定では、マネージド ストレージ アカウントを使用してブート診断を有効にします。

VM の作成の [ブート診断] ページのオプションのスクリーンショット

Note

ブート診断機能では、Premium ストレージ アカウントまたはゾーン冗長ストレージのアカウントの種類はサポートされていません。 ブート診断に Premium ストレージ アカウントを使用すると、VM の起動時に StorageAccountTypeNotSupported エラーが表示されることがあります。

Azure Resource Manager テンプレートからのデプロイ

Azure Resource Manager テンプレートからデプロイする場合は、ご利用の仮想マシン リソースに移動し、診断プロファイル セクションを追加します。 API バージョン ヘッダーを "2015-06-15" またはそれ以降に設定します。 最新バージョンは "2018-10-01" です。

{
  "apiVersion": "2018-10-01",
  "type": "Microsoft.Compute/virtualMachines",
  … 

これらのログの格納先となるストレージ アカウントは、診断プロファイルによって選択することができます。

    "diagnosticsProfile": {
 "bootDiagnostics": {
 "enabled": true,
 "storageUri": "[concat('https://', parameters('newStorageAccountName'), '.blob.core.windows.net')]"
 }
    }
    }
}

テンプレートを使用したリソースのデプロイの詳細については、「 Quickstart: Azure portal を使用して Azure Resource Manager テンプレートを作成してデプロイする」を参照してください。

既存の仮想マシンでブート診断を有効にする

既存の仮想マシンでブート診断を有効にするには、次の手順に従います。

  1. Azure portal にサインインし、仮想マシンを選択します。

  2. Help セクションで、Boot diagnostics を選択し、Settings タブを選択します。

  3. ブート診断設定で、マネージド ストレージ アカウントまたはカスタム ストレージ アカウントを使用してブート診断を選択します。 既存の VM の [ブート診断] ページのオプションのスクリーンショット

  4. 変更を保存します。

Azure CLI を使用してブート診断を有効にする

Azure CLI を使用して、既存の Azure 仮想マシンでブート診断を有効にすることができます。 詳細については、az vm boot-diagnostics を参照してください。

ブート診断のスクリーンショットが更新されない問題を修正する

Azure portal で Azure VM のブート診断のスクリーンショットが古くなっていることに気付いた場合は、まず、ゲスト オペレーティング システムで仮想表示のタイムアウトが無効になっていることを確認します。 たとえば、Windows VM のログオン画面に表示される時間が古くなっている場合があります。

Windows の場合は、管理者特権の CMD から次のコマンドを実行します。

powercfg /setacvalueindex SCHEME_CURRENT SUB_VIDEO VIDEOIDLE 0

Linux の場合は、次のコマンドを実行します。

xset s off

Windows VM の場合、Azure プロビジョニング エージェントは VM エージェントとは異なります。 一般化されたイメージから作成された VM のプロビジョニング中に、上記のコマンドが実行されます。 このイベントは、プロビジョニング エージェント ログである C:\Windows\Panther\WaSetup.xml で powercfg を検索した場合に表示されます。 ただし、プロビジョニング エージェントは特殊化された VHD から作成された VM に対して実行する必要がないため、仮想表示タイムアウトを無効にするために powercfg コマンドを手動で実行する必要があるシナリオです。 また、仮想表示タイムアウトを無効にするためにプロビジョニング エージェントが更新される前に作成されたため、一般化されたイメージから作成された特に古い Azure VM を設定していない可能性があります。

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

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