Das Symptom
Der Rechner startet, das Logo erscheint – und dann steht da eine Zeile wie
A start job is running for ... mit einem langsam hochzählenden Countdown.
Anderthalb Minuten lang tut sich scheinbar nichts, dann bootet das System doch noch
durch, als wäre nichts gewesen. Beim nächsten Start dasselbe Spiel.
Die „Layer 8“-Wahrheit
Dieser Hänger ist kein Absturz, sondern eine ablaufende Uhr. systemd will beim Start
etwas einbinden oder auf ein Gerät warten, das nicht auftaucht – und es wartet
geduldig, bis seine eingebaute Frist verstreicht. Diese Frist,
DefaultTimeoutStartSec, steht standardmäßig auf 90 Sekunden. Genau deshalb ist der
Countdown so charakteristisch anderthalb Minuten lang.
Die Ursache steht fast immer in /etc/fstab: ein Eintrag für eine externe Platte,
die gerade nicht angesteckt ist, eine UUID, die sich geändert hat, oder ein
Netzlaufwerk, das beim Start noch gar nicht erreichbar ist. systemd behandelt solche
Einbindungen als Pflicht und hält den Start auf, bis die Uhr abläuft. Der Ausweg ist
kein Neuaufsetzen, sondern eine kleine Korrektur: die UUID richtigstellen, ein
zeitweiliges Laufwerk mit nofail als optional markieren und ein Netzlaufwerk, das
beim Start nicht erreichbar ist, ebenso entschärfen. _netdev braucht es nur dort, wo
systemd ein Netzlaufwerk nicht schon am Dateisystemtyp erkennt, etwa bei iSCSI. Ein
Test mit mount -a bestätigt die Reparatur, bevor man neu startet.
Die echte, verifizierte Lösung
1000 % faktenbasiert. Jeder Befehl ist real, jeder Pfad existiert. Schritt für Schritt:
1.Sehen, worauf systemd wartet
Die Bootmeldung nennt bereits den Namen des Geräts oder der Einbindung, auf die gewartet wird. Nach dem Hochfahren zeigt das Journal es dauerhaft, und die fehlgeschlagenen Einheiten lassen sich auflisten:
journalctl -b -p err
systemctl --failed
2.Den fstab-Eintrag als Ursache finden
Der Übeltäter ist meist eine Zeile in /etc/fstab, die auf ein Laufwerk verweist, das gerade nicht da ist. Die Datei öffnen und den zuletzt hinzugefügten oder ein externes/Netz-Laufwerk betreffenden Eintrag prüfen. Stimmt die UUID nicht mehr, die aktuelle auslesen:
sudo nano /etc/fstab
blkid
3.Ein fehlendes Laufwerk beim Start überspringen
Damit ein nur zeitweise angestecktes Laufwerk den Start nicht mehr blockiert, die Optionen nofail und eine kurze Gerätewartezeit ergänzen. Dann fährt das System durch, statt 90 Sekunden zu warten – Beispielzeile:
UUID=xxxx /mnt/daten ext4 defaults,nofail,x-systemd.device-timeout=5s 0 2
4.Netzlaufwerke richtig kennzeichnen
Hängt der Start an einem Netzlaufwerk (NFS, SMB/CIFS), liegt es selten an einer fehlenden Markierung: systemd erkennt solche Einbindungen laut Handbuch am Dateisystemtyp und ordnet sie ohnehin nach dem Netzwerk ein (network-online.target). Die Option _netdev braucht es nur, wo der Typ das nicht verrät, etwa bei iSCSI und anderen Netzwerk-Blockgeräten. Ist der Server beim Start nicht erreichbar, hilft dasselbe wie beim externen Laufwerk: nofail, damit der Start nicht auf die Einbindung wartet, und eine kurze Frist für den Einbindeversuch – Beispielzeile:
server:/export /mnt/nas nfs defaults,nofail,x-systemd.mount-timeout=10s 0 0
5.Die Änderung testen, bevor man neu startet
Vor dem Neustart die Einträge trocken durchprobieren und systemd die neue Konfiguration einlesen lassen. Läuft der Test fehlerfrei durch, gelingt auch der nächste Start ohne Hänger:
sudo systemctl daemon-reload
sudo mount -a