Proxmox auf dem Raspberry Pi 4 installieren


Das Pimox Projekt von MinkeBox (Tim Wilkinson) ist die Portierung von Proxmox VE auf den Raspberry Pi 4. »»» GENIAL «««
Proxmox ist relativ schnell installiert, allerdings musste bei mir noch ein wenig nachgearbeitet werden.

18.06.2021 - Anleitung aktualisiert (Container Templates erstellen)
15.06.2021 - Anleitung aktualisiert (Debian 10 Buster VM installieren)

benötigt werden (mein Setup):

  • Raspberry Pi 4 mit 8GB RAM
  • Raspberry Pi OS 64-Bit (kein 32-Bit)
  • aktueller bootloader (firmware/eeprom)
  • USB auf SATA Adapter (Amazon)
  • SSD (microSD-Karte oder USB-Stick geht auch, aber nicht empfehlenswert)

bootloader updaten und USB Boot aktivieren

Mit dem Raspberry Pi Imager ein aktuelles rpi-boot-eeprom-recovery-usb Image auf eine SD-Karte schreiben und den Pi damit updaten.

Die microSD-Karte in den Raspberry Pi, einschalten und mindestens 10 Sekunden warten!

Wenn der Vorgang erfolgreich war, blinkt die grüne LED schnell (unendlich), ansonsten wird ein Fehlermuster dargestellt.
Mit einem HDMI Monitor am Pi wird der Bildschirm bei Erfolg grün und bei einem Fehler rot.

Raspberry Pi OS 64-Bit installieren

Ein aktuelles 2021-xx-yy-raspios-buster-arm64-lite.zip herunterladen und mit dem Raspberry Pi Imager auf die SSD schreiben.
Kleiner Tipp: Drückt man STRG + SHIFT + X im Pi Imager, kann man direkt zusätzliche Einstellungen mit in das zu schreibende Image übernehmen.

Die SSD am Pi bootet jetzt von USB. System updaten, feste IP setzen und den hostnamen und IP in der /etc/hosts eintragen und den Pi neu starten.
Ohne den Eintrag in der hosts Datei schlägt die Installation fehl!

root@pimox:~# apt update
root@pimox:~# apt upgrade -y
 
root@pimox:~# vi /etc/hostname
pimox

root@pimox:~# vi /etc/hosts
#127.0.1.1     pimox                      <-- entfernen!
192.168.50.64 pimox.bachmann.lan pimox

root@pimox:~# vi /etc/dhcpcd.conf
interface eth0
static ip_address=192.168.50.64/24
static routers=192.168.50.1
static domain_name_servers=192.168.50.1

root@pimox:~# reboot

Proxmox installieren

Die externen Quellen hinzufügen und installieren. (dauerte ca. 15 Minuten)

pi@pimox:~# sudo -s
root@pimox:~$ curl https://gitlab.com/minkebox/pimox/-/raw/master/dev/KEY.gpg | apt-key add -
root@pimox:~$ curl https://gitlab.com/minkebox/pimox/-/raw/master/dev/pimox.list > /etc/apt/sources.list.d/pimox.list
root@pimox:~$ apt update
root@pimox:~$ apt install pve-manager

Zum Schluss noch ein root Passwort festlegen (wird für den Proxmox login im WebUI benötigt) und den Pi neu starten.

root@pimox:~# passwd
root@pimox:~# reboot

Proxmox läuft! :-)

vmbr0 Bridge erstellen

Nach der Installation war keine Linux Bridge vorhanden. Ohne das Paket ifupdown2 wurde bei mir kein Bridge Interface auf dem Pi erstellt.

root@pimox:~$ apt install ifupdown2

Neue Linux Bridge erstellen und das System danach nochmal neu starten.

VM erstellen

Debian 11 Bullseyedebian-bullseye-DI-rc2-arm64-netinst.iso

Mit den Standardwerten startet die VM nicht. Angepasst werden musste:

  • CD/DVD Drive: scsi
  • CPU: host
  • BIOS: ovmf
  • EFI Disk: hinzufügen
  • BOOT ORDER: 1 cd/dvd scsi

Erst mit den obigen Einstellungen startete die VM und konnte installiert werden.

Debian 10 Busterdebian-10.9.0-arm64-netinst.iso

Mit den Standardwerten startet die VM nicht. Anpassungen wie für Bullseye und noch zusätzlich:

  • SERIAL PORT: hinzufügen
  • DISPLAY: serial terminal

Die Lösung war hier das serielle Terminal für die Installation zu nutzen. Alle anderen Einstellungen führten zu einem: Guest disabled display.
Das Display kann nach der Installation wieder zurück auf Default gestellt werden.

CT erstellen

Bisher hab ich noch keine arm64 LXC Templates gefunden. Sie können aus dem rootfs bestehender Linux Container aber einfach selbst erstellt werden.
Das rootfs.tar.xz der gewünschten Distribution (arm64) enfach ins Verzeichnis der Container Templates herunterladen, umbenennen und fertig. (Danke an Lucas)

# Debian 11 (bullseye)
root@pimox:~# cd /var/lib/vz/template/cache
root@pimox:~# curl https://us.images.linuxcontainers.org/images/debian/bullseye/arm64/default/20210520_05:24/rootfs.tar.xz -o debian-11.0-standard_arm64_2021.05.21.tar.xz

# Debian 10 (buster)
root@pimox:~# cd /var/lib/vz/template/cache
root@pimox:~# curl https://us.images.linuxcontainers.org/images/debian/buster/arm64/default/20210520_05:24/rootfs.tar.xz -o debian-10.9-standard_arm64_2021.05.21.tar.xz

Für andere Distributionen bleibt die Vorgehensweise gleich.

links

42 Gedanken zu „Proxmox auf dem Raspberry Pi 4 installieren“

  1. Lange im Internet gesucht, endlich was gefunden.
    Vielen herzlichen Dank dafür, wird heute gleich mal angewendet.

    Viele liebe Grüße!

    Antworten
  2. Coole Sache, immer schon nach gesucht. Leider klappt es bei mir noch nicht so ganz.
    Habe aus der Anleitung leider auch nicht das 2021-03-04-raspios-buster-arm64-lite.img gefunden, sonder lediglich eine neuere Version.
    Werde ich mir dann vielleicht doch morgen noch einmal anschauen.

    Antworten
    • Die Version sollte keine entscheidende Rolle spielen. Ich würde immer die aktuellste nehmen.
      Das 2021-mm-dd-raspios-buster-arm64-lite.zip kann direkt mit dem Pi Imager geflasht werden und muss vorher nicht extra entpackt werden.

      Antworten
      • OK, dann muß ich mal sehen, wo bei mir der Fehler liegt. Habe das ganze noch einmal gemacht. Jedenfalls startet PVE-Statd leider nicht.

        Bei meinem ersten Versuch habe ich eigentlich alles so wie beschrieben gemacht, bis auf der festen IP. Die hatte ich per DHCP Reserviert weiter verteilen lassen. Beim Zweiten Versuch bin ich nach der Anleitung vorgegangen. Bin übrigens von dem Imager begeistert. Hatte sonst immer den Etcher verwendet. Mit der Funktion im Imager direkt den Hostnamen zu vergeben etc. ist schon cool.

        Ich freue mich schon aufs lauffähige Pimox, ansonsten bin ich noch auf der Suche nach dem Proxmox Backupserver auf dem Pi. Der würde wie ich finde auch richtig Sinn ergeben.

        Antworten
        • Leider scheitern meine Versuche immer mit:

          Setting up pve-manager (6.4-4rpve1) …
          Job for pvestatd.service failed because the control process exited with error code.
          See „systemctl status pvestatd.service“ and „journalctl -xe“ for details.
          dpkg: error processing package pve-manager (–configure):
          installed pve-manager package post-installation script subprocess returned error exit status 1
          Errors were encountered while processing:
          pve-manager
          E: Sub-process /usr/bin/dpkg returned an error code (1)

          Antworten
          • Hab die Installation gerade nochmal mit einem aktuellen 64-Bit Raspberry Pi OS durchgeführt, funktioniert einwandfrei!
            Den Eintrag in der /etc/hosts hast du gemacht? ;)

          • Den Eintrag in der /etc/hosts habe ich gemacht. Habe gerade aber so eine Ahnung, was ich falsch gemacht haben könnte. Bei der IP Festlegung in der Static ip habe ich auch /24 angegeben, verwende jedoch ein /23. Das werde ich morgen nochmal testen. Ansonsten werde ich meine Configs dann mal posten. Danke dir auf jedenfall fürs testen.

  3. Vielen Dank für die ausführliche Anleitung! :)
    Eine Frage hätte ich aber bezüglich der Networkbridge. Hat jemand es geschafft, diese VLAN Aware einbinden zu können?
    Leider hatte das Ganze bei mir nicht so wirklich gegriffen und führte immer dazu, dass ich die Verbindung verloren habe.

    Antworten
    • VLAN Aware draußen lassen, das hab ich bereits gemerkt.

      Leider ist der Debian Template Server offline weshalb ich mir was anderes für LXC einfallen lassen muss

      Antworten
    • ich habe VLAN’s mit folgender konfiguration in der /etc/network/interfaces hinbekommen:

      auto lo
      iface lo inet loopback

      iface eth0 inet manual

      auto vmbr999
      iface vmbr999 inet static
      address 10.0.1.110/24
      gateway 10.0.1.1
      bridge-ports eth0.999
      bridge-stp off
      bridge-fd 0
      bridge-vlan-aware yes
      bridge-vids 2-4094
      up brctl addif vmbr999 eth0.999
      up ip link set eth0.999 up

      auto vmbr10
      iface vmbr10 inet manual
      bridge-ports eth0.10
      bridge-stp off
      bridge-fd 0
      bridge-vlan-aware yes
      bridge-vids 2-4094
      up brctl addif vmbr10 eth0.10
      up ip link set eth0.10 up

      ich mußte allerdings auch ein:
      systemctl disable dhcpcd.service
      zusätzlich machen, weil der dhcpcd dienst einem immer dazwischen funkt.

      Ach ja, nicht vergessen:
      echo 8021q >> /etc/modules
      muß auch gemacht werden, sonst wird dieses kernel-modul zu spät geladen.

      Antworten
  4. Super, vielen Dank für diese Anleitung!

    Leider bekomme ich beim starten der VM folgenden Fehler:

    kvm: -device usb-ehci,id=ehci,bus=pci.0,addr=0x1: Duplicate ID ‚ehci‘ for device
    TASK ERROR: start failed: QEMU exited with code 1

    Diesen Error bekomme ich auch bei anderen Tutorials, also nehme ich an das es etwas Grundlegendes ist. Wobei CT ohne Probleme laufen.

    Vielleicht hat jemand eine Rat.

    Vielen Dank im voraus!

    Antworten
  5. Jetzt funktioniert das auch bei mir. Hatte in der hosts die Zeile bislang nur ergänzt, wenn ich die Zeile mit der 127.0.1.1 lösche klappt das auch.
    Jetzt muß ich nur noch mal so eine Installation mit dem Proxmox Backup Server finden, das wäre ein Traum.
    Danke noch einmal für deine unheimlich gute Doku.

    Antworten
  6. Hi,

    leider findet er bei mir das Paket nicht. Image – raspios_lite_arm64-2021-05-28, Raspberry Pi 4 8GB

    pi@pimox:~ $ sudo -s
    root@pimox:/home/pi# curl https://gitlab.com/minkebox/pimox/-/raw/master/dev/KEY.gpg | apt-key add –
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 3143 0 3143 0 0 7447 0 –:–:– –:–:– –:–:– 7430
    OK

    root@pimox:/home/pi# curl https://gitlab.com/minkebox/pimox/-/raw/master/dev/pimox.list > /etc/apt/sources.list.d/pimox.list
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 56 100 56 0 0 189 0 –:–:– –:–:– –:–:– 188

    root@pimox:/home/pi# apt update
    Hit:2 http://raspbian.raspberrypi.org/raspbian buster InRelease
    Hit:3 http://archive.raspberrypi.org/debian buster InRelease
    Get:1 https://gitlab.com/minkebox/pimox/-/raw/master dev/ InRelease
    Get:4 https://gitlab.com/minkebox/pimox/-/raw/master dev/ Packages [347 kB]
    Fetched 349 kB in 2s (161 kB/s)
    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    All packages are up to date.

    root@pimox:/home/pi# apt install pve-manager
    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    Package pve-manager is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source
    However the following packages replace it:
    libpve-guest-common-perl

    E: Package ‚pve-manager‘ has no installation candidate

    root@pimox:/home/pi# history
    1 apt update
    2 apt upgrade -y
    3 nano /etc/hostname
    4 nano /etc/hosts
    5 nano /etc/dhcpcd.conf
    6 nano /etc/hosts
    7 reboot
    8 curl https://gitlab.com/minkebox/pimox/-/raw/master/dev/KEY.gpg | apt-key add –
    9 curl https://gitlab.com/minkebox/pimox/-/raw/master/dev/pimox.list > /etc/apt/sources.list.d/pimox.list
    10 apt update
    11 apt install pve-manager

    Antworten
    • Sieht soweit alles gut aus.
      Du hast ein frisches _64-Bit_ Raspberry Pi OS installiert!?

      Oder ein bestehendes 32-Bit auf 64-Bit umgestellt?
      Das hatte ich nämlich mal probiert und ging dann auch mit diesem Fehler in die Hose.

      $ uname -a
      Linux pimox 5.10.17-v8+ #1421 SMP PREEMPT Thu May 27 14:01:37 BST 2021 aarch64 GNU/Linux

      $ file /bin/bash
      /bin/bash: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1

      Antworten
      • Oh danke für den Tipp da scheint der Fehler zu sein:

        root@pimox:/home/pi# uname -a
        Linux pimox 5.10.17-v7l+ #1421 SMP Thu May 27 14:00:13 BST 2021 armv7l GNU/Linux

        root@pimox:/home/pi# file /bin/bash
        /bin/bash: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3

        Antworten
  7. root@pimox:~# vi /etc/hostname
    pimox

    Dann kann ich nichts mehr machen.

    Wenn ich mich neu verbunden habe und „root@pimox:~# vi /etc/hosts“ eingebe, dann kommt folgendes und ich die Tasten auf der Tastatur bringen andere Buchstaben oder es passiert gar nichts. Kann mir bitte jemand helfen?

    Antworten
  8. Mahlzeit!!!

    Vorab sei gesagt, auch danach habe ich schon lange geschaut und bin begeistert fündig geworden zu sein. Pimox funktioniert, nun möchte eine vorhandene Festplatte an einen LXC Container durchreichen. Als Vorlage habe ich hier die Anleitung https://www.bachmann-lan.de/proxmox-physikalische-festplatte-in-vm-durchreichen/ verwendet, bekomme dann eine Fehlermeldung „Configuration file ’nodes/pimox/qemu-server/101.conf‘ does not exist“

    Verwendeter Befehl „qm set 101 -scsi1 /dev/disk/by-id/ata-Hitachi_HTS723225L9A362xxxxxx“ -> 101 ist der LXC Container von daher sollte das passend sein!
    Wo liegt die Herausforderung?

    mfg ELMO

    Antworten
    • Hallo ELMO.

      Im Artikel steht VM, du versuchst das aber bei einem LXC Container. Das geht so leider nicht.
      In einen Container kann man auch nur eine Festplatte einbinden (mounten), nicht direkt durchreichen.

      Gruß, Michael…

      Antworten
  9. Super Anleitung funktioniert bestens,

    funktioniert das durchreichen von Festplatten genauso wie hier auf der Webseite bereits beschrieben worden ist??

    beste Grüße

    Antworten
  10. Supergeil! Ich hab schon länger nach einer Möglichkeit gesucht um Proxmox auf dem RasperryPi zum laufen zu bekommen.

    Leider funktionieren bei mir die Graphen für RAM nicht (außer beim Proxmox Host selbst) und in der Übersicht der Hosts wird nur der Verfügbare RAM,
    nicht aber der benutzte RAM angezeigt. Gibts da eine Lösung?

    Außerdem: Eine Idee wie ich Watchdog auf dem Pi mit Proxmox konfiguriere?

    Antworten
  11. Hallo,
    leider kann man anscheinend nur die bullseye Version als VM installieren, kein Debian 10.
    Ob Debian 10.9 oder Ubuntu, ich komme immer nur bis zum ersten Fenster, wo man u.a. „Install“ auswählen kann“ und wenn ich dann Install wähle,
    dann wird wirds schwarz mit der Info „guest disabled Display“ und das wars dann.
    Ich habe schon alle Hardware-Anzeige Optionen probiert, aber leider klappt nix davon.

    Antworten
    • Ich hab eine Lösung gefunden.
      Installation über das serielle Terminal durchführen, dann geht es. (habs oben beschrieben)

      Antworten
  12. Hallo zusammen,
    geniale Sache. Habe auch alles, Dank der guten Anleitung, zum Laufen gebracht.
    Leider funktionieren die selbst gebauten LXC Container nicht bei mir. Wenn ich das mit Debian Bullseye oder Buster mache bekomme ich folgende Anzeige in der Konsole CT:

    Connected to tty 1
    Type to exit the console, to enter Ctrl+4 itself

    hier geht es dann nicht weiter. Habe heute mal einen Container-Template mit Ubuntu gebaut. Das funktioniert.
    Kann mir einer einen Tip geben warum das mit den anderen beiden bei mir nicht funktioniert?

    Beste Grüße
    Averall

    Antworten
    • Hab das gerade nochmal mit Buster ausprobiert, funktioniert ohne Probleme. (CT mit Standardeinstellungen)
      Erstellst du die Container wie ich es beschrieben habe, oder nutzt du eine andere Variante?

      Antworten
      • Hallo,
        ich benutze genau die von dir beschriebene Variante, halt nur mit aktuellem Paket.
        Habe aber gerade per Zufall rausgefunden das der Login Promt doch noch kommt. Allerdings nach 5:10 min.
        Habe es extra noch mal gestoppt. Dann klappt auch alles.
        Wie gesagt, mit dem erstellten Ubuntu Template funktioniert das sofort.
        Meine Hardware:
        Raspi 4 8GB RAM
        Kingston M.2 SSD 240 GB in einem ArgonOne V2 Gehäuse.

        Beste Grüße
        Averall

        Antworten
  13. Hallo,

    habe so fern alles hinbekommen, sofert ich eine Vm Starten will erhalte ich die meldung:

    „kvm: -device ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=101: Bus ‚ide.1‘ not found
    TASK ERROR: start failed: QEMU exited with code 1“

    Es läuft über eine Toshiba 1TB Usb 3.0 Festplatte

    die Settiings sind
    Bios OVMF (UEFI)
    CD/DVD ide2 Debian bullseye-DI-rc1-arm64-netinst.iso
    CPU Host

    Vielen dank schon mal

    Antworten
    • Ich dachte immer ein Template müsste zwingend im *.tar.gz Format sein. Stimmt aber nicht (mehr).
      Super Tipp, vielen Dank, hab’s im Artikel aktualisiert! :)

      Antworten

Schreibe einen Kommentar