Wie kann ich kompilierten Kernel entfernen?


21

Ich habe 14.10 auf meinem Laptop Lenovo E455 installiert.

Und kompilierter Kernel 3.19 mit folgender Reihenfolge

da es schien, dass 14.10 nicht mit mir arbeiten will. (Ich sah langsame Bewegungen)

Aktuellen Kernel von http://www.kernel.org/ heruntergeladen

make oldconfig
make
sudo make install

Schließlich konnte nicht mit neuem Kernel gebootet werden.

Wie kann ich den kompilierten Kernel aus Grub entfernen und wiederhergestellt werden?


Was haben Sie bisher versucht, um es zu entfernen, und wo ist es schiefgegangen? Wo gibt es irgendwelche Warn- oder Fehlermeldungen?
David Foerster

Dank deiner Hilfe. Habe mich erholt und warte auf Ubuntu 15.XX.
Ohmygirl

Antworten:


33

Die einfache Methode:

Wenn Sie mit der debian-Methode kompilieren, können Sie den installierten Kernel wie folgt sehen:

dpkg --list | grep kernel-image

Und deinstallieren Sie dann das gewünschte Kernel-Paket mit apt-get:

sudo apt-get remove kernel-image-your-kernel-image

Die harte Methode:

Wenn Sie über kompiliert und installiert haben make install, müssen Sie die folgenden Einträge manuell entfernen:

/boot/vmlinuz*KERNEL-VERSION*
/boot/initrd*KERNEL-VERSION*
/boot/System-map*KERNEL-VERSION*
/boot/config-*KERNEL-VERSION*
/lib/modules/*KERNEL-VERSION*/
/var/lib/initramfs/*KERNEL-VERSION*/

Aktualisieren Sie dann die Grub-Konfiguration:

sudo update-grub2

1
Ich habe kein / var / lib / initramfs / -Verzeichnis, aber liegt es daran, dass ich keine kompilierten Kernel in meinem System habe?
Jarno

1
/var/lib/initramfs-tools/*KERNEL-VERSION*auf Debian
Csaba Toth

1
Betrachten Sie eine Bearbeitung für neuere Kernel (Jahr 2018), die /boot/abi*KERNEL-VERSION*/boot/retpoline*KERNEL-VERSION*
Folgendes

9

Dank der Frage von jarno hier habe ich eine Möglichkeit gefunden, die Antwort von Mudit Kapil zu implementieren, die nur sehr wenig Tipparbeit erfordert und zusätzliche herumliegende Teile auffängt

Da zum Entfernen des Kernels nur alle Dateien und Verzeichnisse gelöscht werden müssen und alle diese Dateien und Verzeichnisse die Kernel-Release-Zeichenfolge in ihren Pfaden haben, können wir locatealle Dateien mit der Kernel-Release-Zeichenfolge suchen und löschen um den Kernel zu entfernen.

(Überprüfen uname -rSie zuerst den Namen des aktuell ausgeführten Kernels und achten Sie darauf, ihn nicht zu löschen.)

Angenommen, Sie möchten einen Kernel namens entfernen 4.4.6-my-kernel. Sie können alle vorhandenen Dateien und Verzeichnisse (ohne Auflistung der Dateien in allen genannten Verzeichnissen) mit suchen locate -b -e 4.4.6-my-kernel. Wenn Sie rm -rdies mit anhängen , xargskönnen Sie auch die Dateien löschen. Ich füge hinzu -p, um xargsAnzeigeziele zu erstellen, und frage vor der Ausführung um Bestätigung

locate -b -e 4.4.6-my-kernel | xargs -p sudo rm -r

yGeben Sie dann ein , um rm -rdie angezeigten Ziele auszuführen . Es wird beanstandet, dass Dateien, die keine Verzeichnisse sind, nicht existieren, weil Sie versuchen, sie rekursiv zu löschen ( -r), aber das ist in Ordnung, sie werden weiterhin zusammen mit den Verzeichnissen und ihrem Inhalt entfernt. Wenn Sie fertig sind, laufen Sie einfach

sudo update-grub

et voila.


+1, weil dadurch mehr Dateien abgefangen werden als angenommen. Zum Beispiel das ganze dkmsZeug. Ich würde es zuerst ohne die rmOption ausführen, nur um alles zu sehen, was gelöscht werden würde.
WinEunuuchs2Unix

Warum sollte ich den aktuell laufenden Kernel nicht löschen? Was ist, wenn das der Kernel ist, den ich löschen möchte? Ist es möglich, den aktuell ausgeführten Kernel zu löschen, ohne den Computer zuvor mit einem anderen Kernel neu zu starten?
Liran Funaro

1
@LiranFunaro ist es ja möglich. Siehe meine Antwort Wie deinstalliere ich den laufenden Kernel nur per Befehl? was auch erklärt, warum es wahrscheinlich keine gute Idee ist
Zanna
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.