Warum ist es nicht sicher, alte Kernel zu löschen?

36

Auf meinem Startlaufwerk ist nicht mehr genügend Speicherplatz vorhanden. Daher habe ich mich entschlossen, alte Kernel zu entfernen. Ich habe diese Seite gefunden, die genau beschreibt, was ich tun soll: Lubuntu-Dokumentation: Alte Kernel entfernen .

Ich habe den ältesten Kernel manuell gelöscht und jetzt ist es in Ordnung, aber eines verstehe ich nicht: Am Ende des Artikels befindet sich ein Code, mit dem alle alten Kernelversionen gelöscht werden können, der jedoch nur für fortgeschrittene Benutzer bestimmt ist.

Ich verstehe die Gefahr hier nicht wirklich. Es klingt albern, aber sie scheinen zu sagen, dass möglicherweise mehr als ein Kernel gleichzeitig von einem bestimmten Computer verwendet wird.

Ist es möglich, dass verschiedene Anwendungen auf meinem Ubuntu-Rechner gleichzeitig verschiedene Kernel verwenden können? Warum wird das Löschen aller alten Kernel automatisch als gefährlich eingestuft?

Sergei
quelle
8
Tatsächlich enthält der Artikel nicht die Wörter "Gefahr" und "unsicher". Wie sind Sie zu einem derart übertriebenen Ergebnis gekommen?
mikewhatever
2
Einige Male habe ich ein Upgrade auf den neuesten Kernel durchgeführt und meinen alten Kernel vor dem Neustart entfernt. Dabei stellte ich fest, dass der Kernel (auf meinem speziellen System) nicht funktionierte und das System nicht bootete. Jetzt starte ich zuerst neu und entferne dann den alten Kernel, wenn alles in Ordnung ist.
Matthew Read

Antworten:

50

Das Entfernen alter Kernel ist nicht von Natur aus unsicher. Wenn Sie jedoch alle Ihre Kernel entfernen und neu starten, wird ein böser Grub-Bildschirm angezeigt. Das zu reparieren erfordert viel Know-how (so, aber mit einem apt-get install linux-genericam Ende).

Das erste Mal, dass Sie dies tun, ist ziemlich aufregend, aber die Leute, die ihr Grub-Menü aufräumen oder Speicherplatz wiederherstellen möchten, suchen nicht nach Nervenkitzel.

Die Gefahr besteht darin, dass Benutzer einen Codeblock kopieren, der - ohne dass sie es merken und ohne die Risiken anzuerkennen - nicht angewendet wird. Es gibt viele Beispiele für die Erkennung alter Kernel und nur wenige sind perfekt. Sogar meine letzten Bemühungen haben immer noch ihre Tücken. Wir sprechen über ein Problem, das behoben werden kann. Viele Posts auf Ask Ubuntu können bei falscher Verwendung zu permanentem Datenverlust führen.

Wir versuchen, uns vor Schäden zu schützen, indem wir das Risiko anzeigen, um die Benutzer auf mögliche Probleme aufmerksam zu machen . Im besten Fall ist der Benutzer auf ein Problem vorbereitet und vorbereitet, und im schlimmsten Fall kann er sich nicht beschweren, dass er nicht gewarnt wurde.

Oli
quelle
11
Entfernen Sie nicht alle Kernel (offensichtlich), sondern auch nicht den aktuell ausgeführten Kernel, wenn Sie gerade einen aktualisierten Kernel installiert und noch nicht neu gestartet haben. Warum? Wenn im aktualisierten Kernel etwas kaputt geht, können Sie jederzeit Ihren vorherigen Kernel in Grub auswählen und mit der Arbeit fortfahren. Andernfalls stecken Sie in einem nicht mehr startbaren System fest und müssen das "LiveCD-Spiel" spielen (kein unterhaltsames Spiel, BTW).
Nathan Osman
1
Das macht fast so viel Spaß wie dd if=/dev/zero of=/dev/sda bs=512 count=1. Ich erinnere mich nicht, was ich versucht habe (etwas über mehrere Boot-Manager, die mein Leben nerven). Ich habe ungefähr sieben Stunden mit einer LiveCD verbracht, um meine Partitionstabellen zu reparieren.
Phyrfox
1
So einfach ist es, (mindestens) einen Kernel zu behalten, der getestet wurde und auf jeden Fall funktioniert. Jemand - @ NathanOsman - musste es tatsächlich in Worte fassen, denke ich. Zweite wichtige Lektion, die Sie hier gelernt haben: Machen Sie keine Dinge, bei denen Sie die Konsequenzen nicht kennen.
Nicolai
1
Ich würde das Wort "aufregend" nicht verwenden, aber das Gefühl war intensiv, als ich es tat.
MDeBusk
Nachdem ich in der Vergangenheit Kernelprobleme behoben habe, bin ich viel glücklicher, drei Kernel zu hinterlassen. Ich gehe in der Regel mit dem aktuell ausgeführten Kernel, dem neuesten Kernel und dem Kernel direkt vor dem aktuellen Kernel. Dies gibt mir die neuesten Informationen zum Neustart, die bekanntermaßen funktionieren und die vorherigen, wenn dies aus irgendeinem Grund fehlschlägt. Das ist wahrscheinlich übertrieben, aber CYA genehmigt.
Flickerfly
4

Die alten Kernel sind Teil von Paketen. Wenn Sie nur entfernen /boot/vmlinuz-3.13.0-44-generic, hinterlassen Sie überall Verpackungskrümel.

Finden Sie zuerst heraus, welchen Kernel Sie ausführen. Löschen Sie nichts mit diesem Wert ist sein Name:

$ uname -r  
3.13.0-49-generic  

YMMV. Dann fragen dpkgSie , was es weiß:

$ dpkg -l linux-*

Einige dieser Pakete können entfernt werden, aber was gibt es noch? Verwenden einer Zeile, die (auf MEINEM System) aus der Ausgabe der folgenden Elemente extrahiert wurde dpkg -l linux-*:

 ii  linux-image-3.13.0-44-generic       3.13.0-44.73           amd64                  Linux kernel image for version 3.13.0 on 64 bit x86 SMP

Nun werden wir sehen, was andere Pakete -3.13.0-44in ihren Namen haben:

$ dpkg -l *-3.13.0-44*

Nachdem Sie eine letzte Überprüfung durchgeführt haben, um sicherzustellen, dass der aktuelle Kernel ( uname -r) NICHT in der Liste der Pakete enthalten ist, können Sie sie über das Paketverwaltungssystem Ihrer Wahl entfernen.

Waltinator
quelle
0

Als ich das letzte Mal meine alten Kernel entfernt habe, habe ich mir ein altes Code-Snippet ausgeliehen. Nun, dieses Code-Snippet hatte einen Neustart nach der Installation des neuen Kernels erforderlich gemacht, sodass ich keinen Kernel mehr hatte. Glücklicherweise hatte ich dies vor dem Neustart bemerkt, aber wie andere sagten, wurde mir möglicherweise der "böse Madenschirm" überlassen.

Kurz gesagt, es ist einfach etwas, das leicht durcheinander gebracht werden kann, was zu einem gemauerten System führt, das schwer wiederherzustellen sein kann.

Alfonsojon
quelle
0

Es ist nicht unsicher. Unter Linux können Sie genau das tun, was Sie wollen, wenn Sie die richtigen Befehle kennen.

In dem /bootVerzeichnis können Sie einfach ls -laeine lange Auflistung machen sowie versteckte Dateien oder Verzeichnisse finden (die nicht dort sein sollen, wenn es welche gibt !!).

Anhand dieser Informationen können Sie die Daten und die Dateien älterer Versionen bewerten. Entfernen Sie nicht alle, sondern die ältesten Dateien, die derselben Version entsprechen.

Irgendwann dachte ich, dass es möglich sein könnte, dass Sie, wenn Sie Ihren Kernel aus dem Quellcode kompiliert haben, einen neuen optimieren müssen. Die .configAkte, von der ich glaube, dass sie Ihrer Erklärung nach nicht der Fall ist, wird dort bleiben.

Wenn es also vorkommt, dass nach dem Löschen der alten Dateien, die einer einzelnen Version entsprechen, und nach dem Neustart Ihres Computers möglicherweise eine Kernel-Panik auftritt.

Die einfache Lösung besteht darin, die Maschine mit einem Live-USB- oder CD / DVD-Linux zu starten. chroothinein und erstelle den Kernel mit Tools wie dracut.

Nitin J Mutkawoa
quelle