Software

oDroid H2: Proxmox – virtuelle Maschinen installieren

oDroid H2 Proxmox

Vor wenigen Wochen habe ich meinen langersehnten oDroid H2 von Hardkernel erhalten. Der kleine Formfaktor des Boards ist ideal für einen Homeserver geeignet und bietet dank der x86 Plattform vom Intel Celeron J4105 deutlich besseren Software-Support als ein ARM-Prozessor. Ich bin zwar ein großer Unterstützer der ARM Plattform, aber der H2 hat nochmals deutlich mehr Bumms als oDroids aktuelles ARM Angebot (Quelle: cnx-software.com), weshalb dieser schlussendlich zu meinem Main-Home-Server wurde. Auf meinem Server bei Hetzner unterteile ich Komponenten, die nicht auf einer Maschine zu finden sein sollten, in verschiedene virtuelle Maschinen, um nochmal einen zusätzlichen Layer an Sicherheit zu haben. So wird zum Beispiel mein Mail- und Webserver strikt voneinander getrennt und sogar unter verschiedenen IP-Adressen ausgeliefert, obwohl es auf der selben Hardware läuft. Ein ähnliches Konzept würde ich gerne auf meinem oDroid H2 umsetzen. In diesem Beitrag erkläre ich euch, wie ihr auf eurem oDroid H2 virtuelle Maschinen betreibt – egal, ob Windows- oder Linux-VM. Dabei helfen wird uns bei dem oDroid H2 Proxmox; eine kostenlose VM-Management Software für Debian, die über ein Web-Interface steuerbar ist.

Einkaufsliste

Mein oDroid H2 Setup sieht wie folgt aus:

oDroid H2 *

oDroid H2 Steckernetzteil *

oDroid H2 Gehäuse Typ 1 *

NVMe M2 Festplatte (WD Black 500 GB) *

2x WD Red 3,5″ 4 TB Festplatte *

16 GB Arbeitsspeicher (HyperX Impact DDR4 2400 MHz CL14) *

* Affiliate Links

Wenn man Virtualisierung bei dem oDroid H2 unter Betracht zieht, sollte man (ist aber natürlich vom Anwendungsfall abhängig) an genügend Arbeitsspeicher denken! Virtuelle Maschinen haben immer einen leichten Overhead, da komplette Betriebssysteme für sich gestartet werden. Die Grenzen sind beim oDroid H2 nicht bei 16 GB gesetzt … es gibt wohl Testberichte, dass ohne Probleme auch 32 GB damit laufen.

Hostsystem: Debian Buster (10) installieren

Nachdem ihr die M2 Festplatte und die RAM-Riegel beim oDroid eingesetzt habt, machen wir uns nun daran Debian Buster auf dem kleinen Gerät zu installieren. Um bootfähige USB-Sticks zu installieren nutze ich gerne balenaEtcher, am Ende ist es euch aber natürlich selber überlassen was ihr dafür nutzen möchtet. Proxmox stellt ein eigenes fertiges Debian 10-Image bereit, bei dem Proxmox vorinstalliert ist. Im Netz scheinen aber mehrere Leute damit Probleme aufgrund von UEFI zu haben, weshalb ich Debian und anschließend Proxmox einzeln installiere. Das aktuellste Debian minimal Image (10/Buster) könnt ihr hier herunterladen: https://www.debian.org/CD/netinst/. Für den oDroid H2 braucht ihr das AMD64 Image. Nun alles in balenaEtcher auswählen und „Flash!“ drücken:

balenaEtcher Flash Vorgang

Anschließend Strom, HDMI, Tastatur, LAN und den eben geflashten USB-Stick an den oDroid H2 anschließen. Nun auf den Power Knopf auf dem Board drücken, damit es bootet. Da meine Festplatte leer war, hat er direkt vom USB-Stick gebootet. Falls das bei euch nicht der Fall sein sollte, müsst ihr im BIOS noch kurz die Boot-Reihenfolge abändern, sodass als erstes vom USB-Stick gebootet wird. Euch sollte nun das Installer menu erwarten:

Um auf dem oDroid H2 Proxmox zu installieren, müssen wir zuerst Debian 10 installieren.

Wählen wir nun „Install“ aus, gehen wir die Installationsschritte wie folgt durch:

  1. Sprache einstellen (inkl. Land & Tastatur-Layout)
  2. Netzwerkeinstellungen
    1. Falls ihr ein „ganz normales“ Netzwerk-Setup mit einem Router habt, sollte sich der oDroid automatisch via DHCP alle Informationen ziehen, die er braucht
    2. da der oDroid H2 2 Ethernet Ports hat, müsst ihr ausprobieren, unter welcher internen Bezeichnung ihr das eingesteckte LAN-Kabel wiederfindet
    3. Als Hostnamen könnt ihr euch einen Netzwerk-Namen für den oDroid überlegen; ich habe „oDroid-H2“ genommen.
  3. Root-Passwort & Benutzer konfigurieren
  4. Festplatten partitionieren
    1. „Guided – use entire disk“ habe ich gewählt. Ihr könnt die Festplatte aber natürlich auch nach euren Wünschen partitionieren!
    2. anschließend „All files in one partition“
  5. Jetzt könnt ihr einen Netzwerk-Mirror für euren Paket Manager konfigurieren
    1. Mein Internet Provider bietet einen Mirror für Debian an, schaut also ebenso ob ihr einen Mirror mit geringer Latenz habt
  6. Bei der „Software Selection“ wählt nur „standard system utilities“ und „openssh server“ an und unbedingt Desktop environment ab!
  7. Den GRUB boot manager einfach auf eure Festplatte installieren
  8. Nun wird der oDroid neugestartet. Denkt dran den USB-Stick aus dem oDroid rauszuziehen, damit der Installer nicht wieder gebootet wird!

 

Und schon ist Debian Buster auf dem oDroid H2 installiert. Machen wir direkt weiter und installieren nun Proxmox!

 

Proxmox auf dem oDroid H2 installieren und einrichten

Nun geht es daran Proxmox auf den oDroid H2 zu bekommen; wir orientieren uns dabei an der Installationsanleitung von der offiziellen Proxmox Dokumentation.

Als erstes müssen wir mit ip addr show die IP des oDroids herausfinden; das sieht in meinem Fall dann so aus:

IP Adresse mit

diese IP Adresse hinterlegen wir dann zum im Debian-Setup definierten Hostnamen in der /etc/hosts  Datei:

Den Hostnamen zur IP Adresse weiterleiten

oDroid-H2.fritz.box ist der Reverse-DNS Eintrag den meine Fritzbox für den oDroid setzt, deshalb habe ich den auch gleich mal hinzugefügt. Zusätzlich musste ich in meiner Fritzbox festlegen, dass die vergebene IP auch statisch ist und sich somit nicht verändert.

Um nun die Installation zu beginnen, gebt folgende Befehle als root (Login als root mit su root) nacheinander ein:

Konnte die Installation von proxmox-ve nicht abgeschlossen werden, habt ihr vermutlich die hosts-Datei nicht richtig aufgesetzt. Damit die Installation erfolgreich abgeschlossen werden kann, muss der Hostname zur IP im eigenen Netz leiten. Abschließend könnt ihr den oDroid mit sudo shutdown -r now  neustarten. Anschließend könnt ihr das Web-Interface von Proxmox unter https://IP_ODROIDH2:8006 aufrufen und euch mit dem Nutzernamen „root“ und dem im Setup festgelegten Root-Passwort einloggen. Die Warnmeldung eines falschen SSL-Zertifikates könnt ihr ohne Bedenken ignorieren; dies liegt daran, dass sich Proxmox selbstständig SSL-Zertifikate erstellt hat, die nicht von einer CA bestätigt wurden. Es existiert kein bedenkliches Sicherheitsrisiko solche Zertifikate im lokalen Netzwerk zu verwenden.

Als nächstes werden wir nun einmal die Netzwerkkonfiguration vom oDroid H2 anpassen, damit die virtuellen Maschinen später eine Verbindung zum Internet finden können. Außerdem zeige ich euch kurz, wie ihr eine Portfreigabe einrichten könnt. Anschließend werden wir einmal eine Windows und einmal eine Linux VM erstellen und einrichten.

NAT-Netzwerkonfiguration des Hosts für Proxmox

Damit die virtuellen Maschinen auch aufs Internet zugreifen können, müssen wir in den Netzwerkeinstellungen des oDroid H2 eine Bridge erzeugen, die die Pakete zu den VMs durchreicht. Dazu öffnen wir mit sudo nano /etc/network/interfaces  die Netzwerkeinstellungen und fügen ganz unten in der Datei folgendes ein:

Wir weisen damit dem Netzwerk Interface vmbr0 eine statische IP 10.0.0.1 mit der Netzmaske 255.255.255.0 zu. Die Netzmaske entspricht unter Windows einem /24-er Netz oder auch ganz einfach ausgedrückt: 0.0.0.X – das X kann dabei von 0 – 255 von diesem Netzwerk genutzt werden. Selbstverständlich könnt ihr für eure VMs auch ein Netz mit anderen IPs aufspannen – beachtet dabei nur bitte, dass ihr im nachfolgenden Tutorial entsprechend andere Einstellungen vornehmen müsst. Nachfolgend kommen Bridge-Konfigurationen, die nicht weiter interessant sind.

Ab den Zeilen mit post-up wird es dann aber wieder interessant. Das post-up bedeutet, dass die nachfolgenden Shell-Kommandos ausgeführt werden, nachdem das Netzwerk-Interface „up“, also an bzw. verbunden ist. Bei den ersten beiden Zeilen aktivieren wir das Weiterleiten von Paketen für IPv4 und IPv6 im Kernel – wichtig ist dabei, dass ihr IPv6 nur aktivieren solltet, wenn ihr Zuhause überhaupt eine IPv6 von einem Provider bekommt und auch in eurem lokalen Netzwerk v6-Adressen an die Geräte verteilt. Die dritte Zeile setzt in iptables dann eine Regel auf, die den Traffic vom 10.0.0.0/24-er Netz an euer „echtes“ Interface, das zu eurem Router führt, weiterleitet. Das „echte“ Interface entspricht dabei dem selben, das ihr weiter oben im Tutorial schon gebraucht habt, um eure lokale IP Adresse herauszufinden. Schlussendlich sorgt die letzte Zeile dafür, dass die NAT-Regel(n) wieder entfernt werden, sobald das Interface nicht mehr verbunden (down) ist.

Für die Wenigsten dürfte an dieser Stelle interessant sein, wie man ein Port-Forwarding einrichtet. Da wir uns aber bei der Netzwerk-Konfiguration des Hosts befinden, bringe ich das hier noch mit ein. Empfehlen würde ich euch aber dennoch zuerst im Tutorial zur nächsten Überschrift zu gehen und weiterzumachen. Solltet ihr dann Interesse an der Port Weiterleitung haben, könnt ihr dann zu einem späteren Zeitpunkt wieder hochscrollen. Nun gut, um eine Port Weiterleitung in Proxmox einzurichten bedarf es nur einer weiteren Zeile in der /etc/network/interfaces  Datei; nachfolgend einmal ein Komplett-Beispiel mit der Weiterleitung von Port 8080 des Hosts auf 80 der virtuellen Maschine:

Wie zu sehen ist, habe ich nur eine Zeile eingefügt. Hinter --dport  (Destination Port) habe ich den Port am Hostsystem angegeben, also 8080. Weitergeleitet soll der Traffic der dort landet zu der VM mit der IP 10.0.0.2 und Port 80. Beachtet, dass ihr hier die in der VM konfigurierte IP Adresse richtig eintragt.

Nach dem Setzen der Netzwerk-Einstellungen in der /etc/network/interfaces empfehle ich einen Neustart, um keine Probleme mit etwaigen iptables-Konfigurationen oÄ. zu haben!

Windows VM auf dem oDroid H2 einrichten

Zuerst müssen wir uns die Windows ISO herunterladen. Diese können wir uns direkt bei Microsoft herunterladen. Wenn ihr die Download-Seite mit einem Windows-PC öffnet, wird die Webseite euch einen Updater zum herunterladen anbieten und man kommt nicht an die ISO heran. Um das zu umgehen müsst ihr nur eure Display-Größe anpassen. Stellt man zum Beispiel alles auf mobile, kommt man ohne Probleme an den Download heran:

 

Windows 10 ISO mit Windows für die oDroid H2 Proxmox Installation herunterladen

Um das Entwicklermenü von Chrome zu öffnen, muss die F12 Taste gedrückt werden.

Nach dem Laden der Seite kann die Mobile-Umgebung wieder deaktiviert werden und man gibt an welche Version man herunterladen möchte. Kopiert euch die URL der ISO und ladet sie mit wget auf dem oDroid H2 herunter oder zieht euch die ISO herunter auf euren PC und spielt sie mit beispielsweise WinSCP wieder auf den oDroid H2. Der Standard-Storage von Proxmox ist unter /var/lib/vz  zu finden. Das ISO-Image legt man dann unter /var/lib/vz/template/iso  ab, um es in Proxmox nutzen zu können.

 

Nun öffnen wir das Proxmox Web Interface, falls noch nicht getan. Oben im Text direkt nach den Setup-Befehlen gebe ich euch alle nötigen Informationen um dieses zu erreichen. Befinden wir uns nun im Interface gehen wir oben rechts auf den Button“Create VM“ und nehmen folgende Einstellungen anhand der von Proxmox veröffentlichten Best Practices for Windows vor:

  • Zuerst aktiviere unten rechts den Haken „Advanced“ neben dem „Back“ Button
  • General
    • VM ID: eindeutige numerische ID
    • Name: legt einen Namen für eure virtuelle Maschine fest
  • OS
    • Use CD/DVD disc image file
      • Storage: local
      • ISO image: euer Windows Image
    • Guest OS:
      • Type: Microsoft Windows
      • Version: 10/2016/2019
  • System
    • SCSI Controller: VirtIO SCSI
    • Qemu Agent: Haken setzen/aktivieren
  • Hard Disk:
    • Bus/Device: SCSI / 0
    • Cache: Write back
    • Disk size: setzt dort die Größe der Festplatte für die VM fest, nachträgliche Änderungen sind meist nicht „mal eben so“ gemacht, deshalb idealerweise vorher durchdenken
  • CPU
    • Cores: 4 (damit hat die Windows-VM Zugang zu allen Kernen des oDroids)
  • Memory
    • Memory (MiB): 8192 (entsprechen 8 GB RAM für die VM; 8 * 1024)
    • Minimum memory (MiB): 4096 (die VM bekommt erstmal 4 GB RAM und kann bei Bedarf bis auf 8 GB hochgehen)
    • Ballooning Device: Haken setzen/aktivieren
  • Network
    • Bridge: vmbr0 (wie oben angelegt)
    • Model: VirtIO (paravirtualized)

Bevor wir die VM nun starten, müssen wir noch die nötige Treiber CD hinzufügen. Diese können wir uns laut den Proxmox Best Practices hier herunterladen: VirtIO Treiber ISO herunterladen. Diese anschließend am selben Ort speichern, wo wir auch die Windows 10 ISO-Datei platziert haben. Um diese nun zusätzlich der Windows-VM zur Verfügung zu stellen, fügen wir im Web-Interface unter Hardware -> Add -> CD/DVD Drive als ein weiteres Laufwerk hinzu.

 

ein weiteres Laufwerk zur oDroid H2 Proxmox VM hinzufügen

ein weiteres Laufwerk zur Proxmox VM hinzufügen

 

Dort fügen wir dann ein weiteres CD-Laufwerk mit IDE 3 hinzu. Als Disc Image wählen wir die soeben hochgeladene virtio-win.iso.

 

Hinzufügen eines weiteren CD-Laufwerks mit virtio-win.iso unter Proxmox

 

Nun können wir die VM direkt starten. Mithilfe von Proxmox und noVNC können wir uns dann die Bildschirmausgabe der virtuellen Maschine ausgeben lassen. Dazu einfach auf Console -> noVNC, wie im folgenden Screenshot zu sehen:

 

Übertrage die Bildschirmausgabe der virtuellen Maschine mit noVNC

 

Euch sollte ein neues Fenster mit der Windows-Installationsroutine empfangen. Klickt euch durch das Setup bis ihr zum Punkt der Festplattenauswahl kommt … dort sollten dann keine Festplatten auftauchen. Um das zu ändern, müssen wir die Treiber von der virtio-win.iso importieren. Dazu gehen wir im Setup von Windows auf „Treiber laden“ und wählen die Treiber für die Festplatten, den Netzwerk-Adapter und das RAM-Ballooning nacheinander aus, um sie zu installieren. Zu finden sind diese unter:

  • vioscsi/w10/amd64
  • NetKVM/w10/amd64
  • Balloon/w10/amd64

Im folgenden kurzen Video zeige ich euch, wie das dann genau aussieht:

 

Mit dem Klick auf weiter beginnt dann auch schon die Windows 10 Installation und endet dann mit einem Neustart. Klicken wir uns nun durch den Einrichtungsassistenten, wird er meckern, dass Windows sich nicht mit dem Internet verbinden kann. Leider müssen wir diese Meldung erstmal mit dem Hinweis „Kein Internet“ unten links ignorieren – wir werden dies später einrichten. Nun weiter durch das Setup klicken und alles nach Belieben konfigurieren, bis wir beim Windows Desktop ankommen.

Nun als erstes den Explorer öffnen und unter „Dieser PC“ wieder das virtio-win Laufwerk öffnen. Dort starten wir die virtio-win-gt-x64.exe Datei:

Guest Agent und Treiber für die Proxmox Windows VM installieren

Guest Agent und Treiber Windows VM installieren

Damit werden alle restlichen Treiber installiert. Nun öffnen wir noch den „guest-agent“ Ordner und starten die qemu-ga-x86_64.exe Datei – diese wird uns den Guest Agent installieren, welcher Status Informationen an das Hostsystem mit Proxmox weitergibt. Dies erleichtert an vielen Stellen die Administration, ist aber nicht zwingend notwendig. Nachdem beides installiert ist einmal das Windows neustarten. Abschließend wird noch das Internet von uns passend zu den obigen Netzwerkeinstellungen des Hostsystems aufgesetzt. Dazu gehen wir unten rechts in der Taskleiste auf das Netzwerk-Icon und wählen „Netzwerk- und Interneteinstellungen“ aus. Im sich öffnenden Fenster wählen wir „Verbindungseigenschaften ändern“. Nun runterscrollen zu „IP-Einstellungen“ und dort den Button „Bearbeiten“ anklicken. Nun folgendes einstellen:

  • Typ: Manuell
  • IPv4: Ein
  • IP-Adresse: 10.0.0.2
    • nutzt diese IP-Adresse nur, wenn keine andere VM diese IP Adresse bereits nutzt. Ihr könnt statt der 2 auch 3 oder 4 nehmen und bis zu 254 hochgehen.
  • Subnetzpräfixlänge: 24
  • Gateway: 10.0.0.1
  • DNS bevorzugt: eure Router-IP oder alternativ zum Beispiel Cloudflare DNS oder Google DNS; bei mir: 192.168.178.1 (Fritzbox)

Nun speichern und Windows sollte euch direkt mit dem Fortsetzen des Setups belästigen, da ihr nun Internet habt. Das war’s! Ihr habt nun eure eigene Windows 10 VM unter Proxmox auf dem oDroid H2 zum Laufen bekommen!

Linux (Debian Buster/10) VM auf dem oDroid H2 einrichten

Ladet zuerst die Debian 10 Netinst-ISO auf euren Odroid H2 und legt diese unter /var/lib/vz/template/iso  ab.

Anschließend öffnen wir das Proxmox Web Interface und wählen oben rechts den „Create VM“ Button aus. Nun konfigurieren wir eine VM mit folgenden Einstellungen (bei Bedarf könnt ihr natürlich Änderungen daran vornehmen):

  • Zuerst den Haken bei „Advanced“ unten rechts setzen
  • General
    • Name: gebt der VM einen eindeutigen Namen
  • OS
    • Use CD/DVD disc image file
      • Storage: local
      • ISO image: die Debian-Netinst ISO
  • Guest OS:
    • Type: Linux
    • Version: 5.x- 2.6 Kernel
  • System
    • SCSI Controller: VirtIO SCSI
    • Qemu Agent: Haken setzen/aktivieren
  • Hard Disk
    • Bus Device: SCSI / 0
    • Cache: Write back (für Performance) oder Write through (für höhere Datensicherheit)
    • Disk size: setzt dort die Größe der Festplatte für die VM fest, nachträgliche Änderungen sind meist nicht „mal eben so“ gemacht, deshalb idealerweise vorher durchdenken
  • CPU
    • Cores: 4 (damit hat die Debian-VM Zugang zu allen Kernen des oDroids)
    • Type: Host
  • Memory
    • Memory (MiB): 8192 (entsprechen 8 GB RAM für die VM; 8 * 1024)
    • Minimum memory (MiB): 4096 (die VM bekommt erstmal 4 GB RAM und kann bei Bedarf bis auf 8 GB hochgehen)
    • Ballooning Device: Haken setzen/aktivieren
  • Network
    • Bridge: vmbr0 (wie oben beim Host angelegt)
    • Model: VirtIO (paravirtualized)

Wir beenden die Einrichtung und lassen die virtuelle Maschine in Proxmox hochfahren. Wählen wir nun links in der Liste die VM aus, können wir oben rechts unter „Console“ -> „noVNC“ einen Stream der Grafikausgabe aktivieren – damit ist die Installation kinderleicht.

Da wir bereits den Host mit Debian installiert haben, werde ich jetzt das Setup mit einer Ausnahme in diesem Tutorial überspringen. Wichtig sind die Internet-Einstellungen, denn diese müssen wir manuell anfassen, damit die VM sich ins Internet verbinden kann. Macht das Setup von Debian also bis zu dem Schritt, wo euch folgender Fehler erwartet:

Die Debian VM kann keine Verbindung zum Internet herstellen, da kein DHCP Server eingerichtet ist.

Die Debian VM kann keine Verbindung zum Internet herstellen, da kein DHCP Server eingerichtet ist.

Da wir beim Proxmox-Host keinen DHCP Server eingerichtet haben, müssen wir die IP-Einstellungen manuell vornehmen. Glücklicherweise geht das bei Debian im Gegensatz zu Windows direkt im Setup. Alles was wir dazu tun müssen, ist „Continue“ -> „Configure network manually“ und dann folgende Einstellungen zu übergeben:

  • IP-Adresse: 10.0.0.2
    • nutzt diese IP-Adresse nur, wenn keine andere VM diese IP Adresse bereits nutzt. Ihr könnt statt der 2 auch 3 oder 4 nehmen und bis zu 255 hochgehen.
  • Netmask: 255.255.255.0
  • Gateway: 10.0.0.1
  • Nameserver addresses: eure Router-IP oder alternativ zum Beispiel Cloudflare DNS oder Google DNS; bei mir: 192.168.178.1 (Fritzbox)
  • Hostname: gebt der VM einen Netzwerk-Namen
  • Domainname: dadurch, dass ich eine Fritzbox habe, habe ich hier fritz.box  hinterlegt

Ab dann geht es mit den weiteren Schritten der Einrichtung weiter, die nicht mehr mit dem Netzwerk zusammenhängen. Ich empfehle euch nur (außer ihr beabsichtigt das explizit) beim Auswählen zur Installation weiterer Pakete das „Desktop Environment“ zu deaktivieren und den SSH-Server zu aktivieren.

Nach Setup und Neustart, müssen wir uns nun bei unserem Nutzer einloggen und können mit sudo su  die Root-Rechte erhalten. Mit apt-get update && apt-get install qemu-guest-agent  installieren wir noch die Guest-Software, um an den Host Daten zu reporten und dann war es das auch schon. Die Debian-VM ist fertig!

Ähnliche Beiträge:

Schreibe einen Kommentar