オフライン修復のためにアンマネージド ディスクを VM にアタッチする
適用対象: ✔️ Windows VM
VM が起動しない場合など、Windows 仮想マシン (VM) の一部のトラブルシューティング シナリオでは、OS ディスクをオフラインで修復する必要があります。 この記事では、障害が発生した OS ディスクが管理されていない場合に、この種のオフライン修復を実行する方法について説明します。
OS ディスクが管理されているか管理されていないかを判断する
Azure portal
VM の Overview ブレードを開きます。 OS ディスクが管理されていない場合、情報バナーは、VM がマネージド ディスクを使用しないことを示します。
さらに、次に示すように、OS ディスクの Overview ブレードでは、ディスクがアンマネージドである場合、ディスク名に "(unmanaged)" が追加されます。
ディスクが管理されている場合、OS ディスクの [概要] ブレードには、次に示すように Managed by フィールドが表示されます。
PowerShell
OS ディスクがアンマネージドであることを確認するには、次のコマンドを入力します。 ("MyResourceGroup" はリソース グループの名前に、"MyVM" は VM の名前に置き換えてください)。
(get-azvm -ResourceGroupName MyResourceGroup -Name MyVM).StorageProfile.OsDisk
ディスクがアンマネージドの場合、次の例のように、 ManagedDisk の横の出力に値は表示されません。
OsType : Windows
EncryptionSettings :
Name : MyVM-Disk1
Vhd : Microsoft.Azure.Management.Compute.Models.VirtualHardDisk
Image :
Caching : ReadWrite
WriteAcceleratorEnabled :
DiffDiskSettings :
CreateOption : FromImage
DiskSizeGB : 127
ManagedDisk :
ディスクがマネージド ディスクの場合は、次の例のように、出力の ManagedDisk の横に値が表示されます。
OsType : Windows
EncryptionSettings :
Name : MyVM2-Disk1
Vhd :
Image :
Caching : ReadWrite
WriteAcceleratorEnabled :
DiffDiskSettings :
CreateOption : FromImage
DiskSizeGB :
ManagedDisk : Microsoft.Azure.Management.Compute.Models.ManagedDiskParameters
Azure コマンドライン インターフェイス (Azure CLI)
次の例に示すように、 az vm show コマンドを追加したクエリ "storageProfile.osDisk.managedDisk" を使用して、ディスクにマネージド ディスクがあるかどうかを判断できます。
az vm show -n MyVM -g MyResourceGroup --query "storageProfile.osDisk.managedDisk"
ディスクがアンマネージドの場合、コマンドは出力を生成しません。 ディスクが管理されている場合、次の例のように出力が生成されます。
{
"diskEncryptionSet": null,
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/disks/MyVm_OsDisk_1",
"resourceGroup": "MyResourceGroup",
"storageAccountType": null
}
ソース (失敗) VM に接続されているアンマネージド OS ディスクのコピーを作成する
Azure portal で、OS ディスクが管理されていないソース VM を停止します。
ローカル コンピューターで、 ダウンロードインストールし、Microsoft Azure Storage Explorer を起動します。 メッセージが表示されたら、Azure 資格情報を指定します。
Storage Explorer のナビゲーション ウィンドウで、適切なサブスクリプションを展開します。
VHD が配置されているストレージ アカウントを選択し、ディスクに適したコンテナーを選択します。 既定では、アンマネージド OS ディスクは vhds (Leased) コンテナーに格納されます。
右側のウィンドウで、修復するソース VM に接続されている VHD を選択し、上部にある Copy を選択します。 コピーしたディスクは、別の BLOB コンテナーにのみ貼り付けることができることに注意してください。
ナビゲーション ウィンドウで Blob コンテナー を右クリックし、[BLOB コンテナーの作成 を選択して、新しい BLOB コンテナーを作成。 新しい BLOB コンテナーに、選択した名前 ("disk-copies" など) を割り当てます。
Paste を選択して、コピーしたディスクを新しい BLOB コンテナーに貼り付けます。
アンマネージド OS ディスクを使用して修復 VM を作成する
Azure portal で、Windows Server 2019 に基づく新しい VM を作成するプロセスを開始します。 この新しい VM は修復 VM として機能し、独自の OS ディスクはアンマネージドである必要があります。
[仮想マシンの作成] ウィザードの [Basics] ページで、[可用性オプション一覧でインフラストラクチャの冗長性が不要を選択します。
[ディスク] ページで、Data ディスクの下にある Advanced を展開し [マネージド ディスクの使用] チェック ボックスをオフにします。 アンマネージド OS ディスクのストレージ アカウントを選択します。 既存のディスクを接続することを選択しないでください。 マネージド ディスクを使用する オプションを選択できない場合は、次のコマンドを使用して VM を作成してみてください。
## Get the subnet ID of the VM $SubnetID = az network vnet subnet show --resource-group <RG name> --name <Subnet name> --vnet-name <VNet name> --query id -o tsv ## Create a VM with the unmanaged disk az vm create \ --resource-group <RG name>\ --name <VM name>\ --image <Image name>\ --location <location of the VM>\ --admin-username <Admin name>\ --subnet $SubnetID\ --size <VM size>\ --use-unmanaged-disk
組織に適した構成の詳細を指定して、"仮想マシンの作成" ウィザードを完了します。
アンマネージド ディスクのコピーを修復 VM にアタッチする
Azure portal で、先ほど作成した新しい修復 VM の Disks ブレードを開きます。
[ + データ ディスクの追加を選択します。
[アンマネージド ディスクのアタッチ] ページで、Source の種類として Existing blob を選択。
Source BLOB の下にある Browse を選択し、先ほど作成した OS ディスクのコピーを参照して選択します。
[アンマネージド ディスクのアタッチ] ページで、既定のストレージ BLOB 名をそのまま使用し、OK を選択します。
新しい修復 VM の Disks ブレードで、 保存を選択します。
暗号化されている場合はディスクのロックを解除する
ディスクが Azure Disk Encryption (ADE) で暗号化されている場合は、修復する前にロックを解除する必要があります。 そのためには、「 Resolution #3: Manual method to unlock an encrypted disk on a repair VMで説明されている手順を使用します。
ディスクが暗号化されているかどうかを確認する手順は、次の手順を使用します。 ディスクで ADE が有効になっていることを確認します
ソース VM 上の OS ディスクを交換する
ディスクの修復が完了したら、次の手順に従います。
Azure CLI または PowerShell を使用して、ソース VM OS ディスクをデタッチします。
Azure CLI
次の例のように、 az vm unmanaged-disk detach コマンドを使用します。
az vm unmanaged-disk detach -g MyResourceGroup --vm-name MyVm -n disk_name
PowerShell
Azure Cloud Shell で次のコマンドを一度に 1 つずつ入力します。
$VirtualMachine = Get-AzVM -ResourceGroupName "MyResourceGroup" -Name "MyVm" Remove-AzVMDataDisk -VM $VirtualMachine -Name "disk_name" Update-AzVM -ResourceGroupName "MyResourceGroup" -VM $VirtualMachine
ディスクをデタッチした後は、ソース VM 上の OS ディスクを交換できます。
プロンプトが返されたら、メモ帳などのテキスト エディターを開き、次の値を記録します。
- サブスクリプション ID ($subscriptionID): Azure サブスクリプションに関連付けられている 32 桁のグローバル一意識別子 (GUID)。
- リソース グループ名 ($rgname): ソース VM のリソース グループ。
- VM 名 ($vmname): ソース (失敗) VM の名前。
- OS ディスク VHD URI ($vhduri): 修復 VM からデタッチしたアンマネージド OS ディスクのコピーの URI。 (この値をコピーするには、Storage Explorer でディスクを右クリックし、 URL のコピー.)
Azure Cloud Shell の PowerShell コマンド プロンプトで、一度に 1 つずつ、次のコマンドを入力します。 各コマンドで、"サブスクリプション ID"、"リソース グループ名"、"VM 名"、"OS ディスク VHD URI" の値を、環境から記録した対応する値に置き換えます。
$subscriptionID = "Subscription ID" $rgname = "Resource group name" $vmname = "VM Name" $vhduri = "OS disk VHD URI" #Add-AzAccount Select-AzSubscription -SubscriptionID $subscriptionID Set-AzContext -SubscriptionID $subscriptionID $vm = Get-AzVM -ResourceGroupName $rgname -Name $vmname $vm.StorageProfile.OsDisk.Vhd.Uri = $vhduri Update-AzVM -ResourceGroupName $rgname -VM $vm
操作が完了すると、次の出力が表示されます。
RequestId IsSuccessStatusCode StatusCode ReasonPhrase --------- ------------------- ---------- ------------ True OK OK
Azure portal で、VM の [ディスク] ブレードを開きます。 OS ディスクを選択し、VHD URI が最後の手順で指定した値と一致することを確認します。
次のステップ
ADE の概要については、「 Windows VM の Azure Disk Encryption を有効にする」を参照してください。 アンマネージド ディスクの管理に使用できるコマンドの詳細については、「 az vm unmanaged-disk」を参照してください。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。