# Running an ARM64 VM in ProxMox VE

DISCLAIMER: While running ARM64 architecture VMs on Proxmox works, the performance is not on par with what it would be on a baremetal ARM device. In this example I'll be installing Debian 11 AARCH64 in Proxmox running on Intel x64 based hardware.

1. Log into the ProxMox web UI
2. Select a storage from the left navigation pane to download the .iso to
3. Select ISO Images in the left sub-navigation pane
4. If running ProxMox 6, download the Debian ARM64 iso Download and upload it to the ProxMox ISO image library
5. If on ProxMox 7, click Download from URL and paste the download URL from above > Click Query URL > Click Download
6. Right click the ProxMox node name > Create VM
7. Type DebianARM64 in the name field set the VM ID to 164 (unless 164 is in use) > Next
8. Set the Type to Linux, Version to 5.x - 2.6 Kernel and select Do not use any media > Next
9. On the System tab set the BIOS for OVMF (UEFI), Uncheck the Add EFI Disk checkbox > Next
10. On the Hard Disk tab, set the Storage device and Disk size to 16 (adjust as needed) > Next
11. On the CPU tab, set the number Cores to 2 (adjust as needed) > Next
12. On the Memory tab, set the Memory to 2048 (adjust as needed) > Next
13. Leave the defaults on the Network tab > Next
14. Verify the summary and click Finish
15. Select the DebianARM64 VM in the left navigation pane
16. Select Hardware from the left navigation sub-menu
17. Click on the CD/DVD Drive to select it > Click Remove at the top of the main content area > Click Yes to confirm
18. Click Add > Serial Port > Leave the Port Number 0 > Click Add
19. Click Add > Select CD/DVD Drive > Set the Bus/Device to SCSI > Select the Storage device where the Debian ARM64 iso is uploaded > Select the uploaded Debian ARM64 iso > Click Create
20. Double click Display to edit it > Set the Graphic card value to Serial terminal 0 > Click OK
21. Select Options from the left navigation sub-menu
22. Double click Boot order to edit it > Drag/drop the SCSI2 device (where the Debian iso is attached) to the top of the list > Click OK
23. Right click the ProxMox node name > Console
24. Run the following commands in the terminal
    # edit the VM conf file, change 164 to the VM ID for the DebianARM64 VM
    nano /etc/pve/qemu-server/164.conf
25. Add the following line to the bottom of the .conf file:

    arch: aarch64

26. Find the line starting with vmgenid: and comment it out by adding a # to the beginning of the line
27. Press CTRL+O, Enter, CTRL+X to write the changes to the conf file
28. Back in the Proxmox web UI, select the DebianARM64 VM from the left navigation menu
29. Click console in the left sub-navigation menu
30. Click Start at the top right of the screen to start the VM
31. Wait a moment for the serial console to initialize
32. Follow the prompts to complete the OS installation
    NOTE: This will feel slower than normal, allow it time to complete
33. After the installation completes, select the Shutdown dropdown at the top of the screen > Stop
34. Select Hardware from the left sub-navigation menu
35. Double click the CD/DVD Drive to edit it > Select Do not use any media > Click OK
36. Go back to the VM console
37. Click Start at the top right of the screen to start the VM again
38. Enter the following commands to launch Debian from the EFI shell
    fs0:\EFI\debian\grubaa64.efi
39. The GRUB menu should boot and start loading Debian
40. Welcome to ARM64 based Debian running on Proxmox VE

Sources: https://rotelok.com/installing-arm64-debian-10-buster-in-a-virtual-machine/,
https://www.reddit.com/r/Proxmox/comments/ed2ldo/installing_and_launching_an_arm_vm_from_proxmox/