KamoCRM

Zwei Fäden bauten die Initrd auf einmal um und zerstörten die Maschine

FixKlusterServices
Verschickt
24. September 2026 um 02:15 UTC
Autor
Kamo
Commit
a7f4925

Ein Computer stellte sich vor, kam auf und geriet beim nächsten Boot in Panik: Run /init as init process Nicht ausgeführt /init (Fehler -2) Kernel-Panell-Pauschal - nicht synchronisieren: Keine Arbeit init gefunden. Die Initrd war in voller Größe, 37,8 MB, mit dem gleichen 429-Eintritt früh Segment wie das goldene Bild und ein Hauptteil der eigenen. Der einzige Unterschied zum Bild, das bootet: nein /init in ihm. Zwei Codepfade regenerieren die initrd, und sie liefen 36 MILLISECONDS APART aus verschiedenen Threads: 01:37:26.658 POST /branding 200 der Boot-Splash-Handler's update-initramfs 01:37:26:26.694 Winterschlafbereitschaft der Boot-Threads, innen configure() 01:37:28.963 Neustart, so dass der Kernel nimmt Lebenslauf= Zwei gleichzeitige Neuaufbauten eines Ziels, dann ein Neustart in das Ergebnis. Bewährt durch Beseitigung eher als Folgerung: eine einzelne saubere Update-Initramfs-Lauf gegen die gleiche Festplatte produziert eine gültige initrd mit main/init vorhanden, und /boot hatte 749 MB frei, so dass weder das Werkzeug noch Platz schuld war. Drei Änderungen, denn eine ist nicht genug: BOOT_WORK_LOCK ist jetzt von allem, was neu schreibt, wie der Computer bootet getroffen, und restart_for_resume verweigert sich, während es gehalten wird. Neustart während dieser Arbeit ist, was sich zu einem schlechten initrd in eine zerstörte Maschine. Die Winterschlafverkabelung läuft überhaupt nicht mehr mit update-Initramfs. Es brauchte nie: resume= und resume_offset= auf der Kernel-Kommandozeile sind, was einen Computer wiederholbar machen, update-grub schreibt sie, und resume_configured() überprüft sie gegen /proc/cmdline. Die Datei conf.d/resume ist immer noch geschrieben, so dass die NEXT-Distribution-driven Umbau hält das Lebenslauf-Gerät - mit apt Fehlerbehandlung um ihn herum und nicht unsere. Und die beiden Befehle, die entscheiden, ob eine Maschine booten kann, werden nicht mehr mit check=False ausgeführt. Ihr Status wird beibehalten und ihre Ausgabe protokolliert, und ein Neustart wird abgelehnt, während beides fehlgeschlagen ist. Das ist weniger wichtig, als es aussieht: Durch die Zeit-Update-Initramfs scheitert, ist der Schaden bereits an Disk, das ist genau der Grund, warum die ersten beiden Änderungen existieren.

Alle Änderungen anzeigen

Wie das, was Sie sehen Versand?

Beginnen Sie mit dem kostenlosen Plan und lesen Sie diese Seite in einem Monat erneut, um zu sehen, ob Sie die neuen Funktionen nutzen möchten.

Kostenlos für immer startenPreise anzeigen