Proxmox - Installation eines arm64 VM Gastest
- Vorbereiten der VM
- Installation des Betriebssystems
- System Starten und startbar machen
- System als Template anlegen (Optional)
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/<datastorename>/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/<vmid>.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
<pre>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'
</pre>
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 <vmid>.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
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.