Proxmox - Installation eines arm64 VM Gastest Vorbereiten der VM Beschreibung Es ist unter Proxmox dank Qemu/KVM auch möglich eine arm64 CPU zu emulieren. Z.b Für ein Raspberry System oder einen UniFi Videorekorder als Beispiel. Vorbereitung ISO Download in den Proxmox Storage. Unter Version 7 geht das direkt über die GUI ansonsten per WGET Die aktuellen Dieban ARM64 ISOs findet man hier : https://cdimage.debian.org/debian-cd/current/arm64/iso-cd/ Ab Version 8.0 : Muss das Efi Image in Proxmox nachinstalliert werden. per ssh auf Proxmox gehen und apt install pve-edk2-firmware-aarch64 GUI-Methode wer sie noch nicht kennt: AUf den gewünschten Speicher klicken wo die ISO heruntergeladen werden soll Dann im Menü ISO Images auswählen Nun oben auf Download from URL klicken Nun die URL zur ISO einfügen, hier die : https://cdimage.debian.org/debian-cd/current/arm64/iso-cd/debian-11.6.0-arm64-netinst.iso und auf Query URL klicken. Nun wird der Name ermittelt und dann auf Download klicken Download Fenster schließen über X wenn unten Task OK steht. WGET Methode: Auf dem Proxmoxhost als root per ssh einloggen und folgenden wget Befhl absetzten. Dazu die gewünschte URL zur ISO eingeben/einfügen zum Beispiel diese: wget https://cdimage.debian.org/debian-cd/current/arm64/iso-cd/debian-11.6.0-arm64-netinst.iso #bei standard local storage cd /var/lib/vz/template/iso wget https://cdimage.debian.org/debian-cd/current/arm64/iso-cd/debian-11.6.0-arm64-netinst.iso #bei anderen storages wie bei mir ein cephfs cd /mnt/pve//template/iso cd /mnt/pve/cephfs/template/iso wget https://cdimage.debian.org/debian-cd/current/arm64/iso-cd/debian-11.6.0-arm64-netinst.iso Virtuelle Machine anlegen Auf Create VM klicken Nun dem Kind einen Namen geben und auf weiter klicken. Nun als ISO aus dem Storages die arm64 iso auswählen und auf weiter klicken. Nun als BIOS : OVMF (UEFI) auswählen Add EFI Disk  : abhaken Auf weiter klicken Storage auswählen und Größe angeben. Mir reichen 32GB, aber so wir Ihr es braucht CPU Kerne auswählen. Ich nehme 4 aber das wieder nach den eigenen bedürfnissen anpassen Genau wie bei Arbeistspeicher, ich nehme 4096 aber auch wieder nach den Bedürfnissen Ballooning Device : haken raus Auf weiter Netzwerk passt bei mir so. Ansonsten euren Bedürfnissen anpassen und auf weiter. Nun auf Finish klicken Virtuelle machine bearbeiten Nun Im Menü die Virtuelle Machine auswählen Nun Auf den Menüpunkt Hardware klicken Nun das CD/DVD Laufwerk anklciken und danach oben auf remove klicken Frage ob wirklich gelöscht werden soll, mit ja beantworten Nun Oben im Neü auf ADd und dann Serial Port anklicken Nun einfach auf Add klicken. Denn der Port 0 reicht uns Nun wieder auf Add und CD/DVD auswählen Als BUS SCSI auswählen Den Stoarge wo die Iso liegt auswählen Die arm64 iso auswählen Auf add klicken Nun doppelklick auf Display Bei Graphiccard : Serial terminal 0 auswählen und ok Nun doppelklick auf die Festplatte Dort dann den haken bei iothread raus und auf ok Nun doppelklick auf SCSI Controller Nun den von VirtIO SCSI single auf VirtIO SCSI ändern und auf ok Nun im Menü auf options klicken Dann doppelklcik auf Boot Order Nun das CD Laufwerk mit Linksgedrückt halten und an die erste stelle ziehen, so das es dann so aussieht Anpassen der Architektur der Maschine Dazu wieder per ssh auf dem Host einloggen und die Conf datei von der Machine zu editieren nano /etc/pve/qemu-server/.conf in usnerem Fall nano /etc/pve/qemu-server/134.conf Von: balloon: 0 bios: ovmf boot: order=scsi1;scsi0;net0 cores: 4 memory: 4096 meta: creation-qemu=7.1.0,ctime=1677936909 name: myarm64guest net0: virtio=56:3F:39:75:A3:0C,bridge=vmbr0,firewall=1 numa: 0 ostype: l26 scsi0: rbd:vm-134-disk-0,iothread=1,size=32G scsi1: cephfs:iso/debian-11.6.0-arm64-netinst.iso,media=cdrom,size=337196K scsihw: virtio-scsi-single serial0: socket smbios1: uuid=4d234d40-733c-4881-bc0c-38ec912e0432 sockets: 1 vga: serial0 vmgenid: 6794e873-22e6-4ff1-b35e-654e01d58f02 Nach ändern: vmgenid: .... auskommentieren und arch:aarch64 hinzufügen Sieht dann so aus: balloon: 0 bios: ovmf boot: order=scsi1;scsi0;net0 cores: 4 memory: 4096 meta: creation-qemu=7.1.0,ctime=1677936909 name: myarm64guest net0: virtio=56:3F:39:75:A3:0C,bridge=vmbr0,firewall=1 numa: 0 ostype: l26 scsi0: rbd:vm-134-disk-0,iothread=1,size=32G scsi1: cephfs:iso/debian-11.6.0-arm64-netinst.iso,media=cdrom,size=337196K scsihw: virtio-scsi-single serial0: socket smbios1: uuid=4d234d40-733c-4881-bc0c-38ec912e0432 sockets: 1 vga: serial0 #vmgenid: 6794e873-22e6-4ff1-b35e-654e01d58f02 arch:aarch64 Nun noch die Efi Disk mit folgendem Befehl hinzufügen efitype=2m, wenn es über die GUI gemacht wird, gibts an array fehler qm set VMID -efidisk0 local:1,efitype=2m,pre-enrolled-keys=0,format=qcow2 Speicherpfad anpassen wenn nötig Mein Beispiel: Die formate sind qcow2 und raw. je nachdem was euer Zielspeicher unterstützt. RBD unterstützt nur raw qm set 134 -efidisk0 rbd:1,efitype=2m,pre-enrolled-keys=0,format=raw Output
pdate VM 134: -efidisk0 rbd:1,efitype=2m,pre-enrolled-keys=0,format=raw

transferred 0.0 B of 64.0 MiB (0.00%)

transferred 2.0 MiB of 64.0 MiB (3.12%)

transferred 4.0 MiB of 64.0 MiB (6.25%)

transferred 6.0 MiB of 64.0 MiB (9.38%)

transferred 8.0 MiB of 64.0 MiB (12.50%)

transferred 10.0 MiB of 64.0 MiB (15.62%)

transferred 12.0 MiB of 64.0 MiB (18.75%)

transferred 14.0 MiB of 64.0 MiB (21.88%)

transferred 16.0 MiB of 64.0 MiB (25.00%)

transferred 18.0 MiB of 64.0 MiB (28.12%)

transferred 20.0 MiB of 64.0 MiB (31.25%)

transferred 22.0 MiB of 64.0 MiB (34.38%)

transferred 24.0 MiB of 64.0 MiB (37.50%)

transferred 26.0 MiB of 64.0 MiB (40.62%)

transferred 28.0 MiB of 64.0 MiB (43.75%)

transferred 30.0 MiB of 64.0 MiB (46.88%)

transferred 32.0 MiB of 64.0 MiB (50.00%)

transferred 34.0 MiB of 64.0 MiB (53.12%)

transferred 36.0 MiB of 64.0 MiB (56.25%)

transferred 38.0 MiB of 64.0 MiB (59.38%)

transferred 40.0 MiB of 64.0 MiB (62.50%)

transferred 42.0 MiB of 64.0 MiB (65.62%)

transferred 44.0 MiB of 64.0 MiB (68.75%)

transferred 46.0 MiB of 64.0 MiB (71.88%)

transferred 48.0 MiB of 64.0 MiB (75.00%)

transferred 50.0 MiB of 64.0 MiB (78.12%)

transferred 52.0 MiB of 64.0 MiB (81.25%)

transferred 54.0 MiB of 64.0 MiB (84.38%)

transferred 56.0 MiB of 64.0 MiB (87.50%)

transferred 58.0 MiB of 64.0 MiB (90.62%)

transferred 60.0 MiB of 64.0 MiB (93.75%)

transferred 62.0 MiB of 64.0 MiB (96.88%)

transferred 64.0 MiB of 64.0 MiB (100.00%)

transferred 64.0 MiB of 64.0 MiB (100.00%)

efidisk0: successfully created disk 'rbd:vm-134-disk-0,efitype=2m,pre-enrolled-keys=0,size=64M'

Fehler: EFI-DIsk Sollte beim Efi Disk erstellen dieser Fehler auftauchen: root@pve01:~# qm set 100 -efidisk0 local-lvm:1,efitype=2m,pre-enrolled-keys=0,format=raw update VM 100: -efidisk0 local-lvm:1,efitype=2m,pre-enrolled-keys=0,format=raw EFI base image '/usr/share/pve-edk2-firmware//AAVMF_CODE.fd' not found Ap Version 8 gibt es keine aarch64 efi images mehr. Nachinstallieren apt install pve-edk2-firmware-aarch64 Starten Fehler CPU Typ nicht erkannt In Proxmox 8 und höher wird Standard mäßig der CPU Typ gesetzt. Das heißt in der .conf wird der cpu typ festgelegt. Da aarch64 keine kvm64  oder host kennt, muss der cpu eintrag auskommentiert werden Vorher ... #vmgenid%3A 9f0a633a-762b-4c4b-a43e-59460eb51e92 arch: aarch64 balloon: 0 bios: ovmf boot: order=scsi1;scsi0;net0 cores: 4 cpu: x86-64-v2-AES efidisk0: local-lvm:vm-100-disk-1,efitype=2m,pre-enrolled-keys=0,size=64M memory: 2048 meta: creation-qemu=8.1.5,ctime=1718456554 name: unvr ... nachher ... #vmgenid%3A 9f0a633a-762b-4c4b-a43e-59460eb51e92 arch: aarch64 balloon: 0 bios: ovmf boot: order=scsi1;scsi0;net0 cores: 4 #cpu: x86-64-v2-AES #wurde hier auskommentiert efidisk0: local-lvm:vm-100-disk-1,efitype=2m,pre-enrolled-keys=0,size=64M memory: 2048 meta: creation-qemu=8.1.5,ctime=1718456554 name: unvr ...   Installation des Betriebssystems Beschreibung: Nachdem die VM konfiguriert und zum starten auf die ISO eingestellt ist, wird jett das Betriebssystem installiert. In meinem Fall wird das ein Debian für Unifi UNVR aber ihr könnt den Namen natürlich an eure Bedürfnisse anpassen. Installation: VM auswahlen Und oben recht im Menü auf start klicken Nun einen Moment warten und dann auf den Buton Console klicken Nun öffnet sich eine neue Console Dort drin einmal die Enter Taste drücken. Dann Grub BootMenü wird leider nicht dargestellt. Aber Gott sei Dank ist ETxtmodus Install vorausgewählt. Danach erschein ein graes Fenster. Dieses abwarten Denn nach dem kurzen warten, haben wir den Installer vor uns. Hier wählen wir english aus und enter. Bei Land other Hier bei location nun Europe auswählen Nun Germany auswählen Nun United States auswählen. Jetzt lädt der Installer, da es ein emulirtes ARM64 System ist, das kann bis zu 5 Minuten dauern... Nun den Hostnamen angeben. Ich lass den bei debian. Ihr könnt eintragen was ich möchtet Domain Name eintragen oder leer lassen. Ich lass ihn leer. Root Password vergeben Root Passwort bestätigen Nun einen Anzeige Namen vergeben, ich nehme Administrator Nun einen Benutzernamen festlegen. Ich nenne Ihn auch administrator, aber ihr könnt sonst jeden Namen nehmen der vom System NICHT reserviert ist. Nun auch für diesen Benutzer ein Kennwort vergeben Dieses Kennwort bestätigen Nun hier die gesamte Disk auswählen. Nun die Festplatte auswählen Alle Dateien in eine Partition Nun auf Finish Partioning and write changes to disk Nun auf Ja und wieder warten kann bis zu 5 min dauern. Nun die Frage nach extra medium mit nein beantworten Nun die Sprache für den mirror auswählen, hier Germany Mirror auswählen, in debian.org  Proxy - auswählen, wenn Ihr einen Proxy nutz, eintragen. Nun wird wieder installiert. Abwarten. An der Paketanalyse teilnehmen : nein Nun alles abwählen außer SSH und Systemwerkzeuge und dann continue Nun einfach blind enter drücken. Dann kommt finish. Und das System startet mit der CD wieder neu. Nun die Machine stoppen. Dazu oben im Menü bei  Herunterfahren auf den Pfeil  ->  Stop Installtion beendet. Auf der nächsten Seite, System startklar machen. System Starten und startbar machen  Unter Hardware bei der VM Eine EFI Disk hinzufügen. (hier ausgegraut weil schon vorhanden) VM Starten, Console öffnen und sofort mit der ESC Taste mehrfach drücken um ins EFI Bios zu gelangen. Dort unter Boot Maintenance -> Boot options - > Nun Add Boot option auswählen Festplatte auswählen nun durch Daitsystem hangelb bis zur Efi file Nun die EFI File auswählen Nun eine Beschreibung angeben durch drücken von enter Nun die Beschreibung eingeben zum Beispiel debian und mit enter bestätigen dann auf commit changes and exit Zurück im Menü Change Boot  order auswählen Nun enter drücken und mittels enter um die liste zu verändern. Debian auswählen und mittels +/- Taste den eintrag nach oben schieben Nun oben vor CDROm falls man doch nochmals von CD starten möchte Nun auf enter drücken dann auf esc, dann ist man wieder im Boot Maintenance Menü. Nun auf Go Back To Main Page Nun esc drücken jetzt sind wir wieder im Hauptmenü und dort reset auswählen. Nun startet das Debian System von selbst. Fertig System als Template anlegen (Optional) Beschreibung: Da die installation einer arm64 VM lange dauert. Werden wir uns dieses Grundsystem als Template anlegen. Template anlegen DIe Machine stoppen falls sie noch nicht gestoppt ist. Shutdown -> Stop Rechtsklick auf dei VM und dann im Menü  convert to template auswählen. Die Frage mit ja beantworten Nun haben wir die VM in ein Template umgewandelt.  Nun steht es hier in der Liste. Eine VM aus dem Template erstellen Rechtsklick auf das Template und clone auswählen Nun Name ausfüllen  zb: clonearm64 Mode : Full Clone oder Linked Clone Ich nehme Full Clone, falls das Template mal nicht mehr bestehen sollte. Fertig.