次の方法で共有


Azure 仮想マシンの修復コマンドを使用して Windows VM を修復する

適用対象: ✔️ Windows VM

Azure の Windows 仮想マシン (VM) でブートまたはディスク エラーが発生した場合は、ディスクをオフラインで修復することが必要な場合があります。 一般的な例として、VM の正常な起動を妨げる失敗したアプリケーション更新が挙げられます。 この記事では、Azure VM 修復コマンドを使用して、オフライン修復のために壊れた OS ディスクを別の Windows VM に自動的にアタッチする方法について詳しく説明します。 この手順では、ディスクが Azure Disk Encryption で暗号化されている場合、障害が発生した OS ディスクは、修復 VM と呼ばれる 2 つ目の VM で自動的にロック解除されます。 障害が発生したディスクが修復 VM に接続されている場合は、エラーを修正してから、修復されたディスクを使用して元の VM を再構築できます。

重要

  • この記事のスクリプトは、Azure Resource Manager を使用している VM にのみ適用されます。
  • スクリプトを実行するには、VM からの送信接続 (ポート 443) が必要です。
  • 実行できるスクリプトは一度に 1 つだけです。
  • 実行中のスクリプトを取り消すことはできません。
  • スクリプトを実行できる最大時間は 90 分であり、それを過ぎるとタイムアウトします。
  • 修復 VM で作成されたタグは変更しないでください。 タグは、restore コマンドが正しく機能するために必要です。
  • Azure Disk Encryption を使用する VM では、(KEK の有無にかかわらず) シングル パス暗号化で暗号化されたマネージド ディスクのみがサポートされます。

修復プロセスの概要

Azure VM の修復コマンドを使用して VM の OS ディスクを変更できるだけでなく、VM を削除して再作成する必要がなくなりました。

Repair プロセスの例セクションでは、次のプロセスについて説明します。

  1. Azure Cloud Shell を起動します。
  2. az extension add または az extension update を実行します。
  3. az vm repair create を実行します。
  4. az vm repair runを実行するか、軽減手順を実行します。
  5. az vm repair restore を実行します。

Note

使用可能なすべての VM 修復コマンドとパラメーターを表示するには、 az vm repairを参照してください。

重要

コマンドを実行するには、サブスクリプションに次の種類のリソースを作成できるロールが必要です。

  • リソース グループ
  • Virtual Machines
  • リソース タグ
  • 仮想ネットワーク
  • ネットワーク セキュリティ グループ
  • ネットワーク インターフェイス
  • ディスク
  • パブリック IP アドレス (省略可能)

修復プロセスの例

  1. Azure Cloud Shell を起動する

    Azure Cloud Shell は無料のインタラクティブ シェルです。この記事の手順は、Azure Cloud Shell を使って実行することができます。 一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。 20 分を超える時間がかかるスクリプト (例: win-sfc-sf-corruption スクリプト) を実行する場合は、コマンドをローカルで実行することをお勧めします。 コマンドをローカルで実行するには、Azure CLI バージョン 2.0.67 以降のバージョンが必要です。 バージョンを確認するには、az --version を実行します。 Azure CLI をインストールまたはアップグレードする必要がある場合は、「Azure CLI のインストール」を参照してください。

    Cloud Shell を開くには、コード ブロックの右上隅にある [試してみる] を選択します。 https://shell.azure.com に移動して、別のブラウザー タブで Cloud Shell を開くこともできます。

    [コピー] を選択してコードのブロックをコピーし、Cloud Shell にコード貼り付けてから、[入力] を選択して実行します。

    CLI をローカルにインストールして使用する場合、このクイックスタートには Azure CLI バージョン 2.0.67 以降が必要です。 バージョンを確認するには、az --version を実行します。 Azure CLI をインストールまたはアップグレードする必要がある場合は、「Azure CLI のインストール」を参照してください。

    現在 Azure portal にログインしているアカウントとは別のアカウントを使用して Cloud Shell にログインする必要がある場合は、az login az login reference を使用できます。 アカウントに関連付けられているサブスクリプションを切り替えるには、az account set --subscription az account set reference を使用できます。

  2. az vm repair コマンドを初めて使用する場合は、VM 修復 CLI 拡張機能を追加します。

    az extension add -n vm-repair
    

    az vm repair コマンドを以前使用したことがある場合は、VM 修復拡張機能に更新プログラムを適用します。

    az extension update -n vm-repair
    
  3. az vm repair create を実行します。 このコマンドでは、機能していない VM の OS ディスクのコピーが作成され、新しいリソース グループに修復 VM が作成されて、OS ディスクのコピーに接続されます。 修復 VM のサイズとリージョンは、指定された機能していない VM と同じになります。 すべての手順で使用されるリソース グループと VM の名前は、機能していない VM 用になります。 VM で Azure Disk Encryption を使用している場合は、 --unlock-encrypted-vm を使用して暗号化されたディスクのロックを解除し、修復 VM に接続したときにアクセスできるようにします。 詳細については、「 ディスクで ADE が有効になっていることを確認するを参照してください。 入れ子になった Hyper-V 環境で VM のトラブルシューティングを行う必要がある場合は、 --enable-nested を使用します。修復 VM は、OS ディスク コピーを使用して入れ子になった VM と共に Hyper-V ロールを有効にして作成されます。

重要

実行コマンドと復元コマンドでは、create コマンドで使用したのと同じケースを使用して、すべての入力を入力する必要があります。また、修復 VM のタグをメモするか参照して、使用された内容を確認する必要があります。

VM の修復の例

az vm repair create -g MyResourceGroup -n myVM --repair-username username --repair-password 'password!234' --verbose

入れ子になった Hyper-V を使用して VM を修復する例

az vm repair create -g MyResourceGroup -n myVM --repair-username username --repair-password 'password!234' --enable-nested --verbose
  1. az vm repair run を実行します。 このコマンドでは、修復 VM を介して接続されているディスクで指定した修復スクリプトが実行されます。 使用しているトラブルシューティング ガイドで実行 ID を指定した場合は、ここで使用します。 それ以外の場合は、 az vm repair list-scripts を使用して使用可能な修復スクリプトを表示できます。 ここで使用されるリソース グループと VM の名前は、手順 3 で使用された機能していない VM 用です。 修復スクリプトに関する追加情報については、修復スクリプト ライブラリを参照してください。

    az vm repair run -g MyResourceGroup -n MyVM --run-on-repair --run-id win-hello-world --verbose
    

    必要に応じて、修復 VM を使用して必要な手動のリスク軽減ステップを実行してから、手順 5 に進みます。

  2. az vm repair restore を実行します。 このコマンドでは、修復された OS ディスクが VM の元の OS ディスクとスワップされます。 ここで使用されるリソース グループと VM の名前は、手順 3 で使用された機能していない VM 用です。

    az vm repair restore -g MyResourceGroup -n MyVM --verbose
    

ブート診断を確認して有効にする

次の例では、myResourceGroup という名前のリソース グループの myVMDeployed という名前の VM で診断拡張機能を有効にします。

Azure CLI

az vm boot-diagnostics enable --name myVMDeployed --resource-group myResourceGroup --storage https://mystor.blob.core.windows.net/

次のステップ

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

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