Okay, das ist mehr eine ungläubige Frage als ein konkretes Problem. Es geht darum, per efibootmgr die kernel cmdline zu ändern indem man zuerst den alten Eintrag löscht (efibootmgr -b 0 B) und dann einen neuen anlegt (efibootmgr --create ...). Dabei habe ich folgendes Verhalten beobachtet:
- Ändere ich den Eintrag per ssh, wird er mir nach einem Reboot zwar von efibootmgr angezeigt, aber in /proc/cmdline steht noch die alte cmdline (als wären die efivars nur temporär geändert worden).
- Ändere ich den Eintrag lokal, ist alles normal, beim Reboot zieht die neue cmdline und erscheint in /proc/cmdline.
Wie kann das sein? Ich verstehe die ssh-Variante nicht. Wo merkt sich der Rechner die alte cmdline? Ich meine alles überprüft zu haben, aber konnte die alte cmdline nicht mehr finden:
- grub ist nicht installiert, es gibt nur den direkten boot per efi mit den efivars
- die efivars sind in beiden Fällen rw-gemountet
- es gibt keinen weiteren Boot-Eintrag laut efibootmgr für mein Linux, ich hab' den einzigen Eintrag geändert
- es gibt auch sonst keine Bootmanager (efistub, Lilo, ...)
- im BIOS gibt's keine anderen Einträge zum Booten außer dem einen, den ich geändert habe (wobei ich hier nur das Label sehe, aber nicht die cmdline)
- ich hab' efibootmgr vor dem Reboot und nach dem Reboot gecheckt, in beiden Fällen wird mir der neue Eintrag angezeigt, die efivars müssen also permanent geändert worden sein
- ...aber in /proc/cmdline (und dmesg ganz am Anfang) wird mir nach einem Reboot die alte cmdline angezeigt
Ich hab' sogar mehrmals rebootet. Das Verhalten ist genau so reproduzierbar. Wo zum Teufel merkt sich der Rechner die alte cmdline?!
Lesezeichen