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

Auswahl_074.png

Dann im Menü ISO Images auswählen

Auswahl_075.png

Nun oben auf Download from URL klicken

Auswahl_076.png

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.

Auswahl_077.png

Nun wird der Name ermittelt und dann auf Download klicken

Auswahl_078.png

Download Fenster schließen über X wenn unten Task OK steht.

Auswahl_079.png


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

Auswahl_072.png

Nun dem Kind einen Namen geben und auf weiter klicken.

Auswahl_073.png

Nun als ISO aus dem Storages die arm64 iso auswählen und auf weiter klicken.

Auswahl_080.png

Nun als BIOS : OVMF (UEFI) auswählen
Add EFI Disk  : abhaken

Auf weiter klicken

Auswahl_081.png

Storage auswählen und Größe angeben. Mir reichen 32GB, aber so wir Ihr es braucht

Auswahl_082.png

CPU Kerne auswählen. Ich nehme 4 aber das wieder nach den eigenen bedürfnissen anpassen

Auswahl_083.png

Genau wie bei Arbeistspeicher, ich nehme 4096 aber auch wieder nach den Bedürfnissen

Ballooning Device : haken raus

Auf weiter

Auswahl_084.png

Netzwerk passt bei mir so. Ansonsten euren Bedürfnissen anpassen und auf weiter.

Auswahl_085.png

Nun auf Finish klicken

Auswahl_086.png

Virtuelle machine bearbeiten

Nun Im Menü die Virtuelle Machine auswählen

Auswahl_087.png

Nun Auf den Menüpunkt Hardware klicken

Auswahl_088.png

Nun das CD/DVD Laufwerk anklciken und danach oben auf remove klicken

Auswahl_089.png

Frage ob wirklich gelöscht werden soll, mit ja beantworten

Auswahl_090.png

Nun Oben im Neü auf ADd und dann Serial Port anklicken

Menü_006.png

Nun einfach auf Add klicken. Denn der Port 0 reicht uns

Auswahl_091.png

Nun wieder auf Add und CD/DVD auswählen

Menü_007.png

Als BUS SCSI auswählen
Den Stoarge wo die Iso liegt auswählen
Die arm64 iso auswählen

Auf add klicken

Auswahl_092.png

Nun doppelklick auf Display

Auswahl_093.png

Bei Graphiccard : Serial terminal 0 auswählen und ok

Auswahl_094.png

Nun doppelklick auf die Festplatte

Auswahl_101.png

Dort dann den haken bei iothread raus und auf ok

Auswahl_102.png

Nun doppelklick auf SCSI Controller

Auswahl_103.png

Nun den von VirtIO SCSI single auf VirtIO SCSI ändern und auf ok

Auswahl_104.png


Nun im Menü auf options klicken

Auswahl_095.png

Dann doppelklcik auf Boot Order

Auswahl_096.png

Nun das CD Laufwerk mit Linksgedrückt halten und an die erste stelle ziehen, so das es dann so aussieht

Auswahl_097.png

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 &apos;rbd:vm-134-disk-0,efitype=2m,pre-enrolled-keys=0,size=64M&apos;
</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

Auswahl_087.png

Und oben recht im Menü auf start klicken

Auswahl_098.png

Nun einen Moment warten und dann auf den Buton Console klicken

Auswahl_105.png

Nun öffnet sich eine neue Console

Auswahl_109.png

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

Auswahl_110.png

Denn nach dem kurzen warten, haben wir den Installer vor uns.
Hier wählen wir english aus und enter.

Auswahl_111.png

Bei Land other

Auswahl_112.png

Hier bei location nun Europe auswählen

Auswahl_113.png

Nun Germany auswählen

Auswahl_114.pngNun United States auswählen.

Auswahl_115.png

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

Auswahl_116.png

Domain Name eintragen oder leer lassen. Ich lass ihn leer.

Auswahl_117.png

Root Password vergeben

Auswahl_118.png

Root Passwort bestätigen

Auswahl_119.png

Nun einen Anzeige Namen vergeben, ich nehme Administrator

Auswahl_120.png

Nun einen Benutzernamen festlegen.
Ich nenne Ihn auch administrator, aber ihr könnt sonst jeden Namen nehmen der vom System NICHT reserviert ist.

Auswahl_121.png

Nun auch für diesen Benutzer ein Kennwort vergeben

Auswahl_122.png

Dieses Kennwort bestätigen

Auswahl_123.png

Nun hier die gesamte Disk auswählen.

Auswahl_124.png

Nun die Festplatte auswählen

Auswahl_125.png

Alle Dateien in eine Partition

Auswahl_126.png

Nun auf Finish Partioning and write changes to disk

Auswahl_127.png

Nun auf Ja

Auswahl_128.png

und wieder warten kann bis zu 5 min dauern.

Nun die Frage nach extra medium mit nein beantworten

Auswahl_129.png

Nun die Sprache für den mirror auswählen, hier Germany

Auswahl_130.png

Mirror auswählen, in debian.org 

Auswahl_131.png

Proxy - auswählen, wenn Ihr einen Proxy nutz, eintragen.

Auswahl_132.png

Nun wird wieder installiert. Abwarten.

An der Paketanalyse teilnehmen : nein

Auswahl_133.png

Nun alles abwählen außer SSH und Systemwerkzeuge und dann continue

Auswahl_134.png

Auswahl_135.png

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

Menü_009.png

Installtion beendet. Auf der nächsten Seite, System startklar machen.

System Starten und startbar machen

  1.  Unter Hardware bei der VM Eine EFI Disk hinzufügen. (hier ausgegraut weil schon vorhanden)
    Efi Disk Add.png
  2. VM Starten, Console öffnen und sofort mit der ESC Taste mehrfach drücken um ins EFI Bios zu gelangen.
  3. Dort unter Boot Maintenance -> Boot options - >
    BootMaintenance.png
    Nun Add Boot option auswählen
    add boot option.png

    Festplatte auswählen
    festplatte auswählen.png
    nun durch Daitsystem hangelb bis zur Efi file
    verzeichnis hangeln bis zur efi.png
    Nun die EFI File auswählen
    efi file auswählen.png
    Nun eine Beschreibung angeben durch drücken von enter
    beschreibung boot option.png
    Nun die Beschreibung eingeben zum Beispiel debian und mit enter bestätigen dann auf commit changes and exit
    beschreibung2.png

    Zurück im Menü Change Boot  order auswählen
    boot order.png
    Nun enter drücken und mittels enter um die liste zu verändern.
    liste boot order.png
    Debian auswählen und mittels +/- Taste den eintrag nach oben schieben
    debian_unten.png
    Nun oben vor CDROm falls man doch nochmals von CD starten möchte
    liste_oben.png
    Nun auf enter drücken dann auf esc, dann ist man wieder im Boot Maintenance Menü.
    Nun auf Go Back To Main Page
    mainetenacne_menü.png

    Nun esc drücken
    Bildschirmfoto vom 2022-07-22 19-54-53.png
    jetzt sind wir wieder im Hauptmenü und dort reset auswählen.
    Nun startet das Debian System von selbst.
  4. 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

Menü_009.png

Rechtsklick auf dei VM und dann im Menü  convert to template auswählen.

Menü_010.png

Die Frage mit ja beantworten

Auswahl_136.png

Nun haben wir die VM in ein Template umgewandelt.
 Nun steht es hier in der Liste.

Auswahl_137.png


Eine VM aus dem Template erstellen

Rechtsklick auf das Template und clone auswählen

Menü_011.png

Nun Name ausfüllen  zb: clonearm64
Mode : Full Clone oder Linked Clone
Ich nehme Full Clone, falls das Template mal nicht mehr bestehen sollte.

Menü_012.png

Fertig.