When creating a snapshot, why can't I select VM-generation and VM architeture? Fields are greyed out

Kimmo 1 Reputation point
2022-09-29T13:32:17.127+00:00

I am planning to test the ARM64 architecture in Azure with a DPDK based firewall. I would like to understand how I can troubleshoot this problem I have - or if the issue comes from Azure not having offered ARM64 support before and somehow now there is a dependency problem here that does not allow the user to make a certain selection?

It is a fairly simple test. I have mounted an additional disk to a Linux based VM and used 'dd' software on Linux host to perform a disk dump of a DPDK based ARMv8-A firewall image to a disk. This method worked fine using x64 based systems to import a VM. Subsequently next step in this process is to create a snapshot from this disk image - and finally I convert the snapshot to an image that can be used to launch a VM.

Where I struggle is in the snapshot creation step, when I select my disk image and click on 'Create snapshot'

246066-1-2022-09-29-14-40-59.jpg

VM generation that I need to set to gen 2 because ARM64 uses UEFI, and also architecture that I must change to ARM64 is greyed out and set to x64?

246122-2-2022-09-29-14-49-17.jpg

Would there be any way I can troubleshoot this why the fields are greyed out, or am I doing something wrong? Or can this be a case of something they forgot to implement in the snapshot creation when introducing ARM64?

Thanks.

Azure Disk Storage
Azure Disk Storage
A high-performance, durable block storage designed to be used with Azure Virtual Machines and Azure VMware Solution.
650 questions
0 comments No comments
{count} votes

3 answers

Sort by: Most helpful
  1. Jackson Martins 10,566 Reputation points MVP
    2022-09-29T22:13:27.783+00:00

    Hi @Kimmo

    It's actually just information and not an option to be selected.
    In this case, the disk you are taking the snapshot on is generation 1

    Just like:
    ![246236-image.png]1

    Get in touch if you need more help with this issue.

    --please don't forget to "[Accept the answer]" if the reply is helpful--

    0 comments No comments

  2. SaiKishor-MSFT 17,236 Reputation points
    2022-09-29T22:30:57.513+00:00

    @Kimmo Thanks for reaching out to Microsoft Q&A. Just adding to the above answer...

    As mentioned above, when creating a snapshot, you do not have the choice to select the generation and architecture. This is an option when creating a VM itself as shown below-

    246281-2022-09-29-15-29-16-configure-vm-generation-micros.png

    Hope this helps. If you have any further questions, please do let us know and we will be glad to assist further. Thank you!
    Remember:

    Please accept an answer if correct. Original posters help the community find answers faster by identifying the correct answer. Here is how.

    Want a reminder to come back and check responses? Here is how to subscribe to a notification.

    0 comments No comments

  3. Kimmo 1 Reputation point
    2022-09-30T12:31:17.93+00:00

    Thanks.

    Got it - no architecture nor generation settings in snapshots, this has been helpful.

    This leads me into my next challenge.

    What I have done is to perform a disk dump of an ARM64 based DPDK firewall image to an unmanaged disk. I want to turn this disk into a VM.

    To do this, I use the following method:

    If we go back to when I did this for x64 based arch VMs, I used this method successfully to create a snapshot from the disk, and the snapshot is in the next step converted to an Image - and from the Image I can build the VM. This works well with x64 but I cannot use the same method with ARM64 because I have not found a way to insert an architecture parameter.

    To do this, I use this guide + PowerShell (this section: Create a managed image from a snapshot using PowerShell) - https://learn.microsoft.com/en-us/azure/virtual-machines/windows/capture-image-resource

    What I have is (I modified New-AzImageConfig to add gen 2 parameter) :

    $rgName = "Diskwriter_group"  
    $location = "NorthEurope"  
    $snapshotName = "vendor-ARM"  
    $imageName = "vendorARM"  
      
    $snapshot = Get-AzSnapshot -ResourceGroupName $rgName -SnapshotName $snapshotName  
      
    $imageConfig = New-AzImageConfig -Location $location -HypervGeneration V2  
    $imageConfig = Set-AzImageOsDisk -Image $imageConfig -OsState Generalized -OsType Linux -SnapshotId $snapshot.Id  
      
    New-AzImage -ImageName $imageName -ResourceGroupName $rgName -Image $imageConfig  
    

    Here I assume the I must somehow add a parameter to change architecture from x64 to ARM64 somewhere - or to do this with some other method? When I run this, I get an image that is gen2 - and this is shown upon completion.

    ResourceGroupName : Diskwriter_group
    SourceVirtualMachine :
    StorageProfile : Microsoft.Azure.Management.Compute.Models.ImageStorageProfile
    ProvisioningState : Succeeded
    HyperVGeneration : V2
    Id : /subscriptions/x/resourceGroups/Diskwriter_group/providers/Microsoft.Compute/images/vendorARM
    Name : vendorARM
    Type : Microsoft.Compute/images
    Location : northeurope
    ExtendedLocation :
    Tags : {}

    Subsequently, using this image results in ARM64 being greyed out upon VM creation since ARM64 is not set on the image when I do this

    246475-2022-09-30-14-19-10.jpg

    Questions based on this:

    Is there any way to do this image creation with PowerShell where architecture can be specified when building the image - I see no architecture option in New-AzImageConfig that I use https://learn.microsoft.com/en-us/powershell/module/az.compute/new-azimageconfig?view=azps-8.3.0?

    Maybe there is a better / different way to achieve the same result (custom VM with ARM64 arch set combined with Gen2) from a Linux based image?

    Thanks!

    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.