HP MicroServer Gen8: TrueNAS von SSD am ODD-Port booten – mit GRUB-USB-Stick als Bootloader
Der HP ProLiant MicroServer Gen8 ist auch heute noch ein sehr brauchbarer kleiner Homeserver. Gerade für TrueNAS, kleine Homelab-Setups, Backup-Ziele oder Backup-Server ist die Maschine weiterhin interessant.
Ein typisches Problem zeigt sich aber, sobald man TrueNAS nicht mehr von einem USB-Stick, sondern sauber von einer kleinen SSD booten möchte.
Im MicroServer Gen8 gibt es oben im Gehäuse einen SATA-Anschluss, der ursprünglich für ein optisches DVD-Laufwerk gedacht war. Dieser sogenannte ODD-Port eignet sich mechanisch sehr gut für eine kleine 2,5-Zoll-SATA-SSD.
Das Problem: Der Server bootet mit eingesteckten Datenplatten in den vier Front-Bays oft nicht direkt von dieser SSD. Ohne Datenplatten startet die SSD am ODD-Port problemlos. Sobald die vier Frontplatten wieder eingesetzt sind, versucht der Gen8 aber häufig von Hard Drive C: beziehungsweise einer der Frontplatten zu booten.
Die Lösung: Ein kleiner USB-Stick dient nur als GRUB-Bootloader. Das eigentliche TrueNAS-System liegt weiterhin auf der SSD am ODD-Port. Der USB-Stick wird praktisch nicht beschrieben und ist damit deutlich unkritischer als ein kompletter TrueNAS-Bootstick.
Ziel des Setups
Das finale Bootkonzept sieht so aus:
HP MicroServer Gen8 BIOS
↓
interner USB-Stick mit GRUB
↓
GRUB chainloadet SSD am ODD-Port
↓
TrueNAS startet von SSD
↓
Datenplatten bleiben in den vier Front-Bays
Der USB-Stick enthält also nicht TrueNAS selbst. Er enthält nur GRUB und eine kleine Konfiguration, die den Bootloader auf der SSD startet.
Voraussetzungen
Benötigt wird:
- HP MicroServer Gen8
- TrueNAS-Installation auf einer SSD am ODD-SATA-Port
- kleiner USB-Stick oder interne SD-Karte
- ein Linux-System zum Erstellen des GRUB-Sticks
- GRUB-Paket für BIOS/Legacy-Boot
In meinem Fall war die SSD am ODD-Port aus GRUB-Sicht Laufwerk:
hd5
Das kann je nach Plattenreihenfolge und BIOS-Erkennung abweichen. Deshalb sollte man beim ersten Test mehrere Varianten prüfen oder über die GRUB-Konsole mit ls nachsehen.
Wichtig: SATA-Modus im BIOS
Für TrueNAS sollte der Onboard-SATA-Controller im AHCI-Modus laufen.
F9 → System Options → SATA Controller Options
Dort sollte AHCI aktiv sein. Nicht empfehlenswert ist es, für TrueNAS den B120i-RAID-Modus zu verwenden. TrueNAS arbeitet am saubersten, wenn es die Platten direkt sieht.
USB-Stick vorbereiten
Zuerst muss der USB-Stick korrekt identifiziert werden. Auf einem Linux-System:
lsblk -o NAME,SIZE,MODEL,TYPE,MOUNTPOINT
Beispielausgabe:
sda 500G Samsung_SSD disk
sdb 8G USB_Stick disk
└─sdb1
In diesem Beispiel ist der USB-Stick:
/dev/sdb
Achtung: Die folgenden Befehle löschen den ausgewählten Datenträger vollständig. Vorher unbedingt sicherstellen, dass wirklich der USB-Stick ausgewählt wurde.
USB-Stick partitionieren und formatieren
Der Stick wird mit einer klassischen MBR-Partitionstabelle und einer kleinen Linux-Partition vorbereitet.
sudo umount /dev/sdb1 2>/dev/null
sudo wipefs -a /dev/sdb
sudo parted -s /dev/sdb mklabel msdos
sudo parted -s /dev/sdb mkpart primary ext2 1MiB 100%
sudo parted -s /dev/sdb set 1 boot on
sudo mkfs.ext2 -F -L GRUBGEN8 /dev/sdb1
Danach wird die Partition gemountet:
sudo mkdir -p /tmp/usb
sudo mount /dev/sdb1 /tmp/usb
sudo mkdir -p /tmp/usb/boot
GRUB im Legacy-/BIOS-Modus installieren
Der MicroServer Gen8 bootet in diesem Szenario klassisch per BIOS/Legacy. Deshalb muss GRUB explizit als i386-pc installiert werden.
Auf Debian, Ubuntu oder Proxmox sollten die nötigen Pakete installiert sein. Falls nicht:
sudo apt update
sudo apt install grub-pc-bin
Dann GRUB auf den USB-Stick installieren:
sudo grub-install \
--target=i386-pc \
--boot-directory=/tmp/usb/boot \
--recheck \
/dev/sdb
Wichtig:
Richtig: /dev/sdb
Falsch: /dev/sdb1
GRUB wird auf den ganzen Stick installiert, nicht nur auf die Partition.
Sonderfall Proxmox
Wenn der Stick auf einem Proxmox-System erstellt wird, kann grub-install durch proxmox-boot-tool blockiert sein. Dann erscheint sinngemäß eine Meldung, dass grub-install deaktiviert ist.
In dem Fall kann man direkt grub-install.real verwenden:
sudo /usr/sbin/grub-install.real \
--target=i386-pc \
--boot-directory=/tmp/usb/boot \
--recheck \
/dev/sdb
Wenn die Fehlermeldung lautet:
cannot find EFI directory
dann fehlt fast immer der Parameter:
--target=i386-pc
Ohne diesen Parameter versucht GRUB auf einem UEFI-gebooteten Linux-System einen EFI-Bootloader zu installieren. Für den MicroServer-Gen8-USB-Chainloader wird aber der klassische BIOS-GRUB benötigt.
GRUB-Konfiguration erstellen
Nun wird die eigentliche Boot-Konfiguration geschrieben:
sudo nano /tmp/usb/boot/grub/grub.cfg
Für mein Setup war die SSD am ODD-Port aus GRUB-Sicht hd5. Deshalb sieht die fertige Konfiguration so aus:
set timeout=3
set default=0
menuentry "TrueNAS SSD am ODD-Port - hd5" {
insmod chain
set root=(hd5)
chainloader +1
boot
}
Damit wartet GRUB drei Sekunden und startet dann automatisch die SSD am ODD-Port.
Alternative Test-Konfiguration
Wer die Laufwerksnummer noch nicht kennt, kann zunächst mehrere Einträge anlegen:
set timeout=10
set default=0
menuentry "TrueNAS SSD am ODD-Port - hd4" {
insmod chain
set root=(hd4)
chainloader +1
boot
}
menuentry "TrueNAS SSD am ODD-Port - hd5" {
insmod chain
set root=(hd5)
chainloader +1
boot
}
menuentry "TrueNAS SSD am ODD-Port - hd3" {
insmod chain
set root=(hd3)
chainloader +1
boot
}
menuentry "GRUB Shell" {
echo "Mit 'c' kann die GRUB-Konsole geöffnet werden."
echo "Mit 'ls' lassen sich erkannte Laufwerke anzeigen."
sleep 5
}
Beim ersten Start kann man dann testen, welcher Eintrag funktioniert. Sobald der richtige Eintrag gefunden ist, reduziert man die grub.cfg auf genau diesen Eintrag und setzt den Timeout auf drei Sekunden.
GRUB-Laufwerke manuell prüfen
Wenn keiner der vorbereiteten Einträge funktioniert, kann man im GRUB-Menü mit der Taste c in die GRUB-Konsole wechseln.
Dort:
ls
Beispiel:
(hd0) (hd1) (hd2) (hd3) (hd4) (hd5)
Dann kann man manuell testen:
set root=(hd5)
chainloader +1
boot
Falls das nicht funktioniert:
set root=(hd4)
chainloader +1
boot
Oder:
set root=(hd3)
chainloader +1
boot
Sobald TrueNAS startet, ist die richtige Laufwerksnummer gefunden.
USB-Stick sauber aushängen
Nach dem Schreiben der Konfiguration:
sync
sudo umount /tmp/usb
Der Stick kann danach in den internen USB-Port des MicroServer Gen8 gesteckt werden.
BIOS-Bootreihenfolge einstellen
Im BIOS des MicroServer Gen8:
F9 → System Options → Boot Options
Der interne USB-Stick sollte vor den Festplatten stehen:
1. USB DriveKey / Internal USB
2. Hard Drive C:
3. Network Boot
Danach bootet der Server zuerst GRUB vom USB-Stick. GRUB startet anschließend die SSD am ODD-Port.
Warum nicht einfach TrueNAS direkt vom USB-Stick booten?
TrueNAS kann zwar grundsätzlich von USB-Sticks starten, dauerhaft empfehlenswert ist das aber nicht. USB-Sticks sind bei Boot-Pools mit Schreibzugriffen, Updates und ZFS-Fehlern eine häufige Fehlerquelle.
Besser ist:
TrueNAS-System: SSD
USB-Stick: nur GRUB-Bootloader
Daten: separate ZFS-Datenplatten
Der USB-Stick wird in diesem Setup kaum belastet. Selbst wenn er irgendwann ausfällt, kann er einfach neu erstellt werden. Die eigentliche TrueNAS-Installation liegt auf der SSD.
Fehlerbild: GRUB Rescue / normal.mod not found
Wenn ein alter TrueNAS-USB-Stick kaputtgeht, sieht man häufig Fehler wie:
GRUB loading..
Welcome to GRUB!
error: file 'normal.mod' not found.
grub rescue>
Das bedeutet, dass GRUB seinen normalen Modulpfad nicht mehr findet oder das Bootmedium beschädigt ist. Wenn zusätzlich im TrueNAS-Bootpool Checksum-Errors auftreten, sollte man nicht mehr versuchen, diesen Stick produktiv weiterzuverwenden.
In diesem Fall ist eine Neuinstallation auf SSD mit anschließendem Import der TrueNAS-Konfiguration der sauberere Weg.
Fertiges Ergebnis
Nach erfolgreicher Einrichtung läuft der Start so:
MicroServer Gen8 startet
USB-GRUB erscheint kurz für 3 Sekunden
GRUB startet hd5
TrueNAS bootet von der SSD am ODD-Port
Datenplatten bleiben unangetastet in den Front-Bays
Damit bleibt der MicroServer Gen8 voll nutzbar:
4 Front-Bays für Datenplatten
ODD-Port für TrueNAS-Boot-SSD
interner USB-Port nur für GRUB
AHCI-Modus für sauberen TrueNAS-Betrieb
Fazit
Das Setup ist pragmatisch, robust und deutlich besser als ein TrueNAS-Bootpool auf einem alternden USB-Stick. Der kleine GRUB-Stick dient nur als Wegweiser, während das eigentliche System sauber von SSD startet.



Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!