Fehlerbehebung
4 Minuten Lesezeit
Server ist nicht erreichbar
Folgen Sie diesen Schritten, um die Ursache zu identifizieren:
| Test | Lösungsansatz |
|---|---|
| Access Rules der Stateless Firewall korrekt? | Die Access Rules der Stateless Firewall erweitern/anpassen. |
| Server eingeschaltet? | Server via CloudHub (Schaltfläche “Neu starten” startet den Server, wenn er aus ist) oder via RMS einschalten. |
Server noch im Startvorgang? POST status via CloudHub einsehen. Erst in FinishedPost ist der UEFI-seitige Bootvorgang abgeschlossen. | Start abwarten. |
| Server auch nach 5 Minuten noch nicht gestartet? | Via RMS-Zugriff überprüfen. |
| Problem mit der Bootreihenfolge? | Siehe Bootreihenfolge inkorrekt. |
| Problem am Bootloader des installierten Betriebssystems? | Siehe Booteintrag inkorrekt. |
| Problem mit der Hardware? | Bitte eröffnen Sie ein Ticket mit möglichst genauer Beschreibung des Problems. |
Bootreihenfolge inkorrekt
Da unsere Server mit UEFI betrieben werden, ist die Bootreihenfolge nicht fixiert und kann fehlerhaft konfiguriert werden.
Wir setzen grundsätzlich folgende Bootreihenfolge:
- PXE (Netzwerkboot)
- USB (z.B. Virtual CD-ROM der Virtual Console im RMS)
- Betriebssysteme
Diese setzen wir automatisch beim Starten einer Rescue oder bei Neuinstallation via CloudHub. Beides funktioniert auch unabhängig von der konfigurierten Bootreihenfolge.
Die Bootreihenfolge kann jedoch aus folgenden Gründen von unseren Vorgaben abweichen:
- Das Betriebssystem wurde via CD/ISO installiert
- Installationsprozesse erstellen ihren Eintrag an erster Stelle in der Bootreihenfolge
- Es wurde mindestens einmal direkt vom Storage-Layer (Disk, RAID-Controller) gebooted
- Üblicherweise wird bei Installation eines Betriebssystems ein Fallback-Bootloader eingerichtet, der von UEFI genutzt wird. Dieser erstellt für alle gefundenen Betriebssystem-EFI-Bootloader eigene Einträge an erster Stelle in der Bootreihenfolge. Dabei wird nicht dedupliziert, dieser legt auch Duplikate an.
- Aus diesem Grund deaktivieren wir den direkten Boot von RAID-Controllern. Bei Software-RAIDs kann der Fehler dennoch durch Boot einer der Disks erwirkt werden.
- Die Bootreihenfolge wurde manuell via
efibootmgrangepasst
Manuell korrigieren
Mithilfe von efibootmgr -v lässt sich die Bootreihenfolge überprüfen.
Hier ein Beispiel mit einer Bootreihenfolge (BootOrder), die den automatischen Boot anderer Einträge als dem Betriebssystem, wie etwa “Generic USB Boot” (Virtual CD-ROM), verhindert:
BootCurrent: 0012
Timeout: 0 seconds
BootOrder: 0012,0011,0010,000F
Boot000F* Generic USB Boot UsbClass(ffff,ffff,255,255)
Boot0010* Slot 1 Port 1 : HP Ethernet 10Gb 2-port 560SFP+ Adapter - NIC (PXE IPv4) PciRoot(0x1)/Pci(0x0,0x0)/Pci(0x0,0x0)/MAC(48df37xxxxxx,1)/IPv4(0.0.0.00.0.0.0,0,0)N.....YM....R,Y.
Boot0011* Slot 1 Port 1 : HP Ethernet 10Gb 2-port 560SFP+ Adapter - NIC (PXE IPv6) PciRoot(0x1)/Pci(0x0,0x0)/Pci(0x0,0x0)/MAC(48df37xxxxxx,1)/IPv6([::]:<->[::]:,0,0)N.....YM....R,Y.
Boot0012* debian-13 (YAMP) HD(1,GPT,380b4edf-92c7-46b8-b4f9-795c4c2a1279,0x800,0x5f000)/File(\EFI\debian\shimx64.efi)
Über BootCurrent ist der aktuell gebootete Eintrag erkennbar (in diesem Fall das Betriebssystem).
BootOrder zeigt die aktuell konfigurierte Bootreihenfolge von links nach rechts.
Der Befehl efibootmgr -n 0011,0010,000F,0012 korrigiert obige Bootreihenfolge, sodass PXE und USB vor dem Betriebssystem stehen.
Booteintrag inkorrekt
Sollte der Eintrag im UEFI für ein installiertes Betriebssystem inkorrekt sein, kann dieser in unserer Rescue neu geschrieben werden.
Zunächst muss die EFI Partition gemountet sein, z.B. via:
mkdir /mnt/efi
mount "$(fdisk -l | grep EFI | awk '{print $1}')" /mnt/efi/
Folgende Befehle geben Auskunft über die UUID der EFI-Partition und die verfügbaren Bootloader:
blkid "$(fdisk -l | grep EFI | awk '{print $1}')"
find /mnt/efi/ -type f -iname '*.efi'
Beispielausgabe:
/dev/sda1: UUID="CD79-BCE2" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="6c57f5db-fc23-477b-8179-2d947ab21aa2"
/mnt/efi/EFI/debian/shimx64.efi
/mnt/efi/EFI/debian/grubx64.efi
/mnt/efi/EFI/debian/mmx64.efi
/mnt/efi/EFI/debian/fbx64.efi
/mnt/efi/EFI/BOOT/BOOTX64.EFI
/mnt/efi/EFI/BOOT/grubx64.efi
/mnt/efi/EFI/BOOT/mmx64.efi
/mnt/efi/EFI/BOOT/fbx64.efi
/dev/sda ist in diesem Fall das Blockdevice und 6c57f5db-fc23-477b-8179-2d947ab21aa2 die UUID der EFI-Partition.
Das Betriebssystem stellt die Bootloader EFI/debian/shimx64.efi und EFI/debian/grubx64.efi zur Wahl.
BOOTX64.EFI und fbx64.efi/fallback.efi sorgen für Probleme mit der Bootreihenfolge und sollten nicht genutzt werden.
Die Ausgabe von efibootmgr -v | grep 'HD(' wird nun mit eventuell vorhandenen Einträgen abgeglichen, z.B.:
Boot0012* debian-13 HD(1,GPT,fdff4d61-2c9c-442d-8b4c-354dff375f44,0x800,0x5f000)/File(\EFI\debian\shimx64.efi)
In diesem Beispiel ist die UUID im Booteintrag falsch - diese sollte auf die EFI-Partition zeigen.
Daher wird nun zunächst ein neuer Eintrag angelegt und danach der alte gelöscht, z.B.:
efibootmgr --create-only -d /dev/sda -p 1 -L "debian-13" -l '\\EFI\\debian\\shimx64.efi'
-dnennt das Blockdevice der EFI-Partition-pdie Partitionsnummer der EFI-Partition (abgeleitet von /dev/sda1)-List der Anzeigename des Eintrags-lverweist in EFI-Pathspec (daher die Backslashes) auf den gewünschten Bootloader innerhalb der Partition
Als nächstes wird der alte Booteintrag gelöscht, z.B.:
efibootmgr -B -b 0012
Und zu guter Letzt muss der neue Eintrag noch zur Bootreihenfolge hinzugefügt werden, siehe Bootreihenfolge korrigieren.