非管理対象ディスクを VM にアタッチしてオフライン修復する

VM が起動しない場合など、Windows 仮想マシン (VM) の一部のトラブルシューティング シナリオでは、OS ディスクをオフラインで修復する必要があります。 この記事では、障害が発生した OS ディスクが管理されていない場合に、この種のオフライン修復を実行する方法について説明します。

OS ディスクが管理されているか管理されていないかを判断する

Azure portal

VM の [概要 ] ブレードを開きます。 OS ディスクが管理されていない場合、情報バナーは、VM がマネージド ディスクを使用していないことを示します。

V M でマネージド ディスクが使用されていないことを示すAzure portalのバナー メッセージのスクリーンショット。

さらに、次に示すように、OS ディスクの [概要 ] ブレードでは、ディスクがアンマネージドの場合、ディスク名に "(アンマネージ)" が追加されます。

スクリーンショットは、Azure portalの V M の名前に追加されたアンマネージドという単語を示しています。

ディスクが管理されている場合、次に示すように、OS ディスクの [概要] ブレードに [ マネージド] フィールドが表示されます。

ディスクが VM によって管理されていることを示す、Azure portalのディスクの概要ブレードのスクリーンショット。

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 ディスクのコピーを作成する

  1. Azure portalで、OS ディスクが管理されていないソース VM を停止します。

  2. ローカル コンピューターで、Microsoft Azure Storage Explorerダウンロード、インストール、起動します。 メッセージが表示されたら、Azure 資格情報を入力します。

  3. [Storage Explorer] ナビゲーション ウィンドウで、適切なサブスクリプションを展開します。

  4. VHD が配置されているストレージ アカウントを選択し、ディスクの適切なコンテナーを選択します。 既定では、アンマネージド OS ディスクは vhds (Leased) コンテナーに 格納されます。

    ストレージ アカウント コンテナーと v h d s リース コンテナーの両方がナビゲーション ツリーで強調表示されているAzure Storage Explorerのスクリーンショット。

  5. 右側のウィンドウで、修復するソース VM にアタッチされている VHD を選択し、上部にある [ コピー ] を選択します。 コピーしたディスクは、別の BLOB コンテナーにのみ貼り付けることができることに注意してください。

    [コピー] ボタンが強調表示された状態で選択されたディスクを示すAzure Storage Explorerのスクリーンショット。

  6. ナビゲーション ウィンドウで [BLOB コンテナー ] を右クリックし、[BLOB コンテナーの作成] を選択して、新しい BLOB コンテナーを作成します。 新しい BLOB コンテナーに、任意の名前 ("disk-copies" など) を割り当てます。

    ナビゲーション メニューの [BLOB コンテナー] のショートカット メニューが表示され、[Blob Container の作成] が強調表示されているAzure Storage Explorerの Sreenshot。

  7. [ 貼り付け] を選択して、コピーしたディスクを新しい BLOB コンテナーに貼り付けます。

    [貼り付け] ボタンが強調表示されているAzure Storage Explorerのスクリーンショット。

アンマネージド OS ディスクを使用して修復 VM を作成する

  1. Azure portalで、Windows Server 2019 に基づく新しい VM を作成するプロセスを開始します。 この新しい VM は修復 VM として機能し、独自の OS ディスクは管理されていない必要があります。

  2. [仮想マシンの作成] ウィザードの [基本] ページで、[可用性オプション] の一覧で [インフラストラクチャの冗長性は必要ありません] を選択します。

    [仮想マシンの作成] ウィザードの [基本] ページのスクリーンショット。インフラストラクチャを不要にするためのオプションが選択されています。

  3. [ディスク] ページで、[データ ディスク] の下にある [詳細設定] を展開し、[マネージド ディスクの使用] チェックボックスをオフにします。 アンマネージド 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  
    
  4. organizationに適した構成の詳細を指定して、"仮想マシンの作成" ウィザードを完了します。

アンマネージド ディスクのコピーを修復 VM にアタッチする

  1. Azure portalで、先ほど作成した新しい修復 VM の [ディスク] ブレードを開きます。

  2. [ + データ ディスクの追加] を選択します

    Azure portalの修復 VM の [ディスク] ブレードのスクリーンショット。[データ ディスクの追加] ボタンが強調表示されています。

  3. [アンマネージド ディスクのアタッチ] ページで、[ソースの種類] として [既存の BLOB] を選択します。

    [アンマネージド ディスクのアタッチ] ウィンドウのスクリーンショット。既存の BLOB オプションが選択されています。

  4. [ ソース BLOB] の下の [ 参照] を選択し、先ほど作成した OS ディスク のコピーを参照して選択します。

    参照ボタンが強調表示されているアンマネージド ディスクのアタッチ ウィンドウのスクリーンショット。

    ディスクが選択され、[選択] ボタンが強調表示されているディスク コピー コンテナーのスクリーンショット。

  5. [ アンマネージド ディスクのアタッチ] ページで、既定のストレージ BLOB 名をそのまま使用し、[ OK] を選択します

  6. 新しい修復 VM の [ ディスク ] ブレードで、[ 保存] を選択します。

    [保存] ボタンが強調表示されている [ディスク] ブレードのスクリーンショット。

ディスクが暗号化されている場合はロックを解除する

ディスクが Azure Disk Encryption (ADE) で暗号化されている場合は、修復する前にロックを解除する必要があります。 そのためには、「 解決策 #3: 手動方法」で説明されている手順を使用して、修復 VM 上の暗号化されたディスクのロックを解除します

ディスクが暗号化されているかどうかを確認するには、次の手順を使用します。 ディスクで ADE が有効になっていることを確認します

ソース VM 上の OS ディスクを交換する

ディスクの修復が完了したら、次の手順に従います。

  1. 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 ディスクを交換できます。

  2. プロンプトが返されたら、メモ帳などのテキスト エディターを開き、次の値を記録します。

    • サブスクリプション ID ($subscriptionID): Azure サブスクリプションに関連付けられている 32 桁のグローバル一意識別子 (GUID)。
    • リソース グループ名 ($rgname): ソース VM のリソース グループ。
    • VM 名 ($vmname): ソース (失敗) VM の名前。
    • OS ディスク VHD URI ($vhduri): 修復 VM からデタッチしたアンマネージド OS ディスクのコピーの URI。 (この値をコピーするには、Storage Explorerでディスクを右クリックし、[URL のコピー] を選択します)。
  3. 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
    
  4. Azure portalで、VM の [ディスク] ブレードを開きます。 OS ディスクを選択し、VHD URI が最後の手順で指定した値と一致することを確認します。

次の手順

ADE の概要については、「 Windows VM の Azure Disk Encryption を有効にする」を参照してください。 アンマネージド ディスクの管理に使用できるコマンドの詳細については、「 az vm unmanaged-disk」を参照してください。

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

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