Ich liebe Linux!
Ich weiß ja nicht, wann ihr am liebsten eure Server administriert, aber ich mache das bevorzugt Sonntag morgens, kurz nach dem Aufstehen.
Sonntag morgens, beim ersten Kaffee: Ich will ein paar Magic-Karten in meine Magic-Karten-Bibliothek eintragen. Da ich die Entwicklungs-Version dieser Software von meinem Laptop auf meinen Heimserver verlegt habe, muss ich dazu meinen ProLiant MicroServer starten. Aber der Server bootet anscheinend nicht. Also, er geht an, aber ich kriege keine SSH-Verbindung zustande. Also muss ich in den Keller, ein VGA-Kabel und einen Monitor holen. Außerdem krame ich ein zweites Keyboard heraus und schließe es an. Ah, ja, wie vermutet bricht das Booten ab. Und zwar mit einer Meldung, die ich bisher noch nie gesehen habe:
incompatible license
Aborted. Press any key to exit.
Natürlich passiert nichts, egal welche Taste man drückt. Nach einer kurzen Google-Suche stellt sich heraus, dass dies wohl eine GRUB-Meldung ist, die so ziemlich alles heißen könnte. Irgendein Kernel-Modul kann nicht geladen werden, wahrscheinlich ist das Boot-Image irgendwie kompromittiert.
Ich baue also meinen Heim-Server auseinander und stecke das Boot Device, einen intern montierten USB-Stick, in meinen Laptop. Sieht nach einer intakten Debian-Boot-Partition aus. Weiß der Teufel… Ich google noch ein bisschen herum und entscheide mich, erst mal ein aktuelles Debian auf einen anderen Stick zu kopieren und boot-fähig zu machen. Ich stecke den eigentlichen Boot-Stick wieder in den USB-Slot auf dem Motherboard und boote den ProLiant-Server von meinem brandneuen Debian-Stick im Rescue-Modus. Dann chroote ich auf das Boot Device (welches war das noch mal?) und gucke erst mal nach, was ich da überhaupt booten will. Und wie das gehen soll. Dieser Server lief so lange ohne Probleme, dass ich keine Ahnung mehr habe, wie das alles funktioniert.
OK, wir haben einen MBR und wir haben GRUB2. Natürlich im Legacy-Boot-Modus. Dieses Ding ist viel zu alt für so einen neumodischen UEFI-Quatsch. Also versuche ich erst mal mit grub-install
den Boot Loader neu zu installieren, habe aber kein Glück.
Attempting to install GRUB to a partition disk or to a partition.
This is a BAD idea. Embedding is not possible.
GRUB can only be installed in this setup by using blocklists.
However, blocklists are UNRELIABLE and their use is discouraged.
Uhh… OK… Auf der Disk ist nur eine Partition vorhanden. Hab ich ja eben gecheckt. Mehr Google… Könnte wohl auch, genau wie der andere Fehler, alles Mögliche sein. Auf StackExchange sagt einer es geht vielleicht mit --force
. Mittlerweile bin ich bei der vierten Tasse Kaffee. What could possibly go wrong?
Ich probier’s mit grub-install /dev/sdf --force
, verlasse das chroot und starte den Server neu. Und siehe da: Es geht! Das Ding bootet und ich kriege eine SSH-Shell. Mittlerweile ist es drei Uhr nachmittags. Was wollte ich eigentlich noch mal tun?
Was zur Hölle war jetzt das Problem? Hat mir das Postgres-Update mit apt-get update
und apt-get upgrade
letzte Woche den GRUB zerhauen? Und warum habe ich das nicht direkt danach bei Test-Neustart gemerkt? Warum geht der Boot Loader bei meinem Debian-Server eigentlich immer Sonntags kaputt?