適用対象: ✔️ Linux VM
Azure の Linux 仮想マシン (VM) で起動エラーまたはディスク エラーが発生した場合は、ディスク自体で軽減策を実行する必要がある可能性があります。 一般的な例として、VM の正常な起動を妨げる失敗したアプリケーション更新が挙げられます。 この記事では、Azure 仮想マシンの修復コマンドを使用してディスクを別の Linux VM に接続してエラーを修正した後、元の VM をリビルドする方法について詳しく説明します。
重要
- この記事のスクリプトは、 Azure Resource Manager を使用する VM にのみ適用されます。
- スクリプトを実行するには、VM からの送信接続 (ポート 443) が必要です。
- 実行できるスクリプトは一度に 1 つだけです。
- 実行中のスクリプトを取り消すことはできません。
- スクリプトを実行できる最大時間は 90 分であり、それを過ぎるとタイムアウトします。
- 修復 VM で作成されたタグは変更しないでください。 タグは、restore コマンドが正しく機能するために必要です。
- Azure Disk Encryption を使用する VM では、(KEK の有無にかかわらず) シングル パス暗号化で暗号化されたマネージド ディスクのみがサポートされます。
- VM 共同作成者ロールは、ターゲット VM を含むリソース グループ内のリソースの読み取り、書き込み、削除のアクセス許可を必要とするため、スクリプトを実行するための十分なアクセス許可を提供しません。 そのため、そのリソース グループ レベルの共同作成者や所有者などのロールが必要です。
修復プロセスの概要
Azure 仮想マシンの修復コマンドを使用して VM の OS ディスクを変更できるだけでなく、VM を削除して再作成する必要がなくなりました。
次のステップに従って、VM の問題のトラブルシューティングを行います。
- Azure Cloud Shell を起動する
- az extension add/update を実行する
- az vm repair create を実行する
- az vm repair run を実行するか、リスク軽減ステップを実行します。
- az vm repair restore を実行する
使用可能なすべての VM 修復コマンドとパラメーターを表示するには、 az vm repair を参照してください。
コマンドを実行するには、サブスクリプションに次の種類のリソースを作成できるロールが必要です。
- リソース グループ
- Virtual Machines
- リソース タグ
- 仮想ネットワーク
- ネットワーク セキュリティ グループ
- ネットワーク インターフェイス
- ディスク
- パブリック IP アドレス (省略可能)
修復プロセスの例
Azure Cloud Shell を起動する
Azure Cloud Shell は無料のインタラクティブ シェルです。この記事の手順は、Azure Cloud Shell を使って実行することができます。 一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。 20 分を超える修復スクリプトを実行する場合は、コマンドをローカルで実行することをお勧めします。 コマンドをローカルで実行するには、Azure CLI バージョン 2.0.67 以降のバージョンが必要です。 バージョンを確認するには、
az --version
を実行します。 Azure CLI をインストールまたはアップグレードする必要がある場合は、「 Azure CLI のインストール」を参照してください。Cloud Shell を開くには、コード ブロックの右上隅にある [ 試してみる ] を選択します。 https://shell.azure.com に移動して、別のブラウザー タブで Cloud Shell を開くこともできます。
[コピー] を選択してコード ブロックをコピーし、コードを Cloud Shell に貼り付けて Enter キーを押して実行します。
CLI をローカルにインストールして使用する場合、このクイックスタートには Azure CLI バージョン 2.0.67 以降が必要です。 バージョンを確認するには、
az --version
を実行します。 Azure CLI をインストールまたはアップグレードする必要がある場合は、「 Azure CLI のインストール」を参照してください。現在 Azure portal にログインしているアカウントとは異なるアカウントで Cloud Shell にログインする必要がある場合は、
az login
az ログイン リファレンスを使用できます。 アカウントに関連付けられているサブスクリプションを切り替えるには、az account set --subscription
az アカウント セットリファレンスを使用できます。az vm repair
コマンドを初めて使用する場合は、VM 修復 CLI 拡張機能を追加します。az extension add -n vm-repair
az vm repair
コマンドを以前使用したことがある場合は、VM 修復拡張機能に更新プログラムを適用します。az extension update -n vm-repair
az vm repair create
を実行します。 このコマンドを実行すると、非機能 VM の OS ディスクのコピーが作成され、新しいリソース グループに修復 VM が作成され、OS ディスクのコピーがアタッチされます。 修復 VM のサイズとリージョンは、指定された機能していない VM と同じになります。 すべての手順で使用されるリソース グループと VM の名前は、機能していない VM 用になります。 VM で Azure Disk Encryption を使用している場合は、--unlock-encrypted-vm
を使用して暗号化されたディスクのロックを解除し、修復 VM に接続したときにアクセスできるようにします。 詳細については、 ディスクで ADE が有効になっていることを確認するを参照してください。
重要
実行コマンドと復元コマンドでは、create コマンドで使用したのと同じケースを使用して、すべての入力を入力する必要があります。また、修復 VM のタグをメモするか参照して、使用された内容を確認する必要があります。
VM の修復の例
az vm repair create -g MyResourceGroup -n myVM --repair-username username --repair-password password1234 --verbose
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 lin-hello-world --verbose
必要に応じて、修復 VM を使用して必要な手動のリスク軽減ステップを実行してから、手順 5 に進みます。
az vm repair restore
を実行します。 このコマンドでは、修復された OS ディスクが VM の元の OS ディスクとスワップされます。 ここで使用されるリソース グループと VM の名前は、手順 3 で使用された機能していない VM 用です。az vm repair restore -g MyResourceGroup -n MyVM --verbose
ブート診断を確認して有効にする
次の例では、myVMDeployed
という名前のリソース グループの myResourceGroup
という名前の VM で診断拡張機能を有効にします。
Azure CLI(Azure コマンドライン インターフェイス)
az vm boot-diagnostics enable --name myVMDeployed --resource-group myResourceGroup --storage https://mystor.blob.core.windows.net/
次のステップ
- VM への接続に問題がある場合は、「 Azure 仮想マシンへの RDP 接続のトラブルシューティング」を参照してください。
- VM で実行されているアプリケーションへのアクセスに関する問題については、「 Azure の仮想マシンでのアプリケーション接続の問題のトラブルシューティング」を参照してください。
- Resource Manager の使用方法の詳細については、「 Azure Resource Manager の概要」を参照してください。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、 サポートリクエストを作成するか、 Azure コミュニティ サポートに問い合わせてください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。