非管理対象ディスクを VM にアタッチしてオフライン修復する
VM が起動しない場合など、Windows 仮想マシン (VM) の一部のトラブルシューティング シナリオでは、OS ディスクをオフラインで修復する必要があります。 この記事では、障害が発生した OS ディスクが管理されていない場合に、この種のオフライン修復を実行する方法について説明します。
OS ディスクが管理されているか管理されていないかを判断する
Azure portal
VM の [概要 ] ブレードを開きます。 OS ディスクが管理されていない場合、情報バナーは、VM がマネージド ディスクを使用していないことを示します。
さらに、次に示すように、OS ディスクの [概要 ] ブレードでは、ディスクがアンマネージドの場合、ディスク名に "(アンマネージ)" が追加されます。
ディスクが管理されている場合、次に示すように、OS ディスクの [概要] ブレードに [ マネージド] フィールドが表示されます。
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 を選択し、上部にある [ コピー ] を選択します。 コピーしたディスクは、別の BLOB コンテナーにのみ貼り付けることができることに注意してください。
ナビゲーション ウィンドウで [BLOB コンテナー ] を右クリックし、[BLOB コンテナーの作成] を選択して、新しい BLOB コンテナーを作成します。 新しい BLOB コンテナーに、任意の名前 ("disk-copies" など) を割り当てます。
[ 貼り付け] を選択して、コピーしたディスクを新しい BLOB コンテナーに貼り付けます。
アンマネージド OS ディスクを使用して修復 VM を作成する
Azure portalで、Windows Server 2019 に基づく新しい VM を作成するプロセスを開始します。 この新しい VM は修復 VM として機能し、独自の OS ディスクは管理されていない必要があります。
[仮想マシンの作成] ウィザードの [基本] ページで、[可用性オプション] の一覧で [インフラストラクチャの冗長性は必要ありません] を選択します。
[ディスク] ページで、[データ ディスク] の下にある [詳細設定] を展開し、[マネージド ディスクの使用] チェックボックスをオフにします。 アンマネージド 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
organizationに適した構成の詳細を指定して、"仮想マシンの作成" ウィザードを完了します。
アンマネージド ディスクのコピーを修復 VM にアタッチする
Azure portalで、先ほど作成した新しい修復 VM の [ディスク] ブレードを開きます。
[ + データ ディスクの追加] を選択します。
[アンマネージド ディスクのアタッチ] ページで、[ソースの種類] として [既存の BLOB] を選択します。
[ ソース BLOB] の下の [ 参照] を選択し、先ほど作成した OS ディスク のコピーを参照して選択します。
[ アンマネージド ディスクのアタッチ] ページで、既定のストレージ BLOB 名をそのまま使用し、[ OK] を選択します。
新しい修復 VM の [ ディスク ] ブレードで、[ 保存] を選択します。
ディスクが暗号化されている場合はロックを解除する
ディスクが Azure Disk Encryption (ADE) で暗号化されている場合は、修復する前にロックを解除する必要があります。 そのためには、「 解決策 #3: 手動方法」で説明されている手順を使用して、修復 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 フィードバック コミュニティに製品フィードバックを送信することもできます。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示