Jedes Mal, wenn ich einen neuen Linux-Kernel installiere, verbleibt dieser in der grub_config, wodurch das Boot-Menü jedes Mal länger wird.
Ich weiß, dass ich die installierten Pakete manuell durchsuchen und entfernen kann.
Bietet Ubuntu eine einfachere Möglichkeit, sie zu bereinigen oder zu verhindern, dass sie in der Startliste angezeigt werden?
sudo apt-get autoremove
sollte den Trick auf Ubuntu 14.04+ tunsudo apt-get autoremove --purge
antworten jedoch, indem Sie denapt-mark
Ratschlägen auf https://help.ubuntu.com/community/RemoveOldKernelsAntworten:
16.04 und neuere Versionen von Ubuntu
Dieser Befehl entfernt Pakete, die automatisch installiert wurden, um eine Abhängigkeit aufzulösen, von denen jetzt jedoch keine Abhängigkeit mehr besteht. Dies schließt alte Versionen von
linux-headers-*
und einlinux-image-*
. (Es ist auch klug in Bezug auf diesen Prozess, wenn eine Ersatzversion des Kernels als Fallback übrig bleibt!)11.10 und neuere Versionen von Ubuntu
GRUB2 und dessen Anzeige aller Kernel
Die neuesten Versionen von Grub2, die in Ubuntu installiert sind, zeigen automatisch den neuesten Kernel an und verbergen die älteren Kernel, die Sie möglicherweise installiert haben.
Wenn Sie Ihre Maden nicht sehen, müssen Sie Shiftbeim Booten auf drücken .
Wie Sie sehen, wird nur der neueste Kernel angezeigt.
Wenn Sie die angezeigte Option auswählen (drücken Enter), werden alle alten Kernel sichtbar und stehen zum Booten zur Verfügung.
So löschen Sie ältere Kernel dauerhaft
Starten Sie zuerst mit dem neuesten verfügbaren Kernel.
Es gibt verschiedene Möglichkeiten, alte Kernel zu löschen. Persönlich würde ich Computer Janitor nicht berühren, da dies anerkanntermaßen Ihren Computer mit seinen Vorschlägen kaputt macht.
synaptisch
Eine Alternative ist Synaptic (
sudo apt install synaptic
)suche nach linux-image , klicke mit der rechten Maustaste auf einen Kernel und wähle "Vollständige Entfernung" und klicke schließlich auf " Übernehmen" , um den Kernel zu löschen.
Wiederholen Sie die Suche, aber diesmal für Linux-Header - Sie können die zugehörigen Header für das zuvor ausgewählte Kernel-Image löschen.
Synaptic wird jedoch nicht versuchen zu überprüfen, was Sie entfernen möchten ... Sie könnten versehentlich Ihren neuesten Kernel löschen - oder sogar alle Ihre Kernel über dieses Tool löschen, so dass Sie ein nicht mehr bootfähiges Ubuntu haben !
Denken Sie daran, zu überprüfen, welchen Kernel Sie verwenden:
Das Ergebnis wäre ähnlich wie:
Merken Sie sich das Ergebnis und die Zahl - stellen Sie sicher, dass Sie das entsprechende Bild oder die Kopfzeile nicht löschen.
Empfehlung
Meine Empfehlung ist, mindestens zwei oder vorzugsweise drei Kernel, einschließlich des neuesten, beizubehalten. Der Grund für die Empfehlung ist, dass Sie mindestens einen oder zwei andere Kernel zum Booten haben, wenn der neueste Kernel, mit dem Sie booten können, aus irgendeinem Grund nicht booten kann oder eine regressive Funktion einführt, z.
quelle
-y
Schalter am Ende derapt-get
Zeile ist notwendig, ansonsten fragt apt-get nur nach Bestätigung und da die Eingabe eine Pipe ist, bricht es einfach ab. Also sollte es enden in:| xargs sudo apt-get purge -y
linux-image
undlinux-headers
freigegebenen 4,5 GB Speicherplatz auf meinem Computer.Starten Sie zuerst Ihr System neu, um sicherzustellen, dass es den neuesten Kernel verwendet. Dann öffne das Terminal und überprüfe deinen aktuellen Kernel:
ENTFERNEN SIE DIESEN KERN NICHT!
Geben Sie anschließend den folgenden Befehl ein, um alle auf Ihrem System installierten Kernel anzuzeigen / aufzulisten.
Finden Sie alle Kernel, die niedriger sind als Ihr aktueller Kernel. Wenn Sie wissen, welchen Kernel Sie entfernen müssen, fahren Sie unten fort, um ihn zu entfernen. Führen Sie die folgenden Befehle aus, um den ausgewählten Kernel zu entfernen.
Führen Sie abschließend die folgenden Befehle aus, um grub2 zu aktualisieren
Starten Sie Ihr System neu.
quelle
sudo apt-get purge linux-image-3.2.0-3{0..5}-generic
(entfernt 30,31, .., 35)linux-signed-image
Pakete deinstallieren, die möglicherweise auf UEFI-Systemen installiert sind. Dabei werdensudo apt-get purge linux-signed-image-3.11.0-{12,14,24}-generic
12, 14 und 24uname -r
keinensigned
String auf meinem System. Ich scheine ein signiertes Bild installiert zu sein und der Ausgang diesesls
Befehls lautet:/boot/vmlinuz-3.19.0-16-generic.efi.signed
.Mein Einzeiler, um alte Kernel zu entfernen (das macht auch Speicherplatz frei)
Erläuterung (Denken Sie daran, dass
|
die Ausgabe des vorherigen Befehls als Eingabe für die nächste verwendet wird.)dpkg --list
listet alle installierten Pakete aufgrep linux-image
sucht nach den installierten Linux-Imagesawk '{ print $2 }'
gibt nur die 2. Spalte aus (das ist der Paketname)sort -V
Ordnet die Elemente nach Versionsnummersed -n '/'`uname -r`'/q;p'
druckt die Zeilen vor dem aktuellen Kernelxargs sudo apt-get -y purge
Bereinigt die gefundenen Kernelsed
Aufruf abwickeln :-n
sagtsed
leise zu sein`uname -r`
gibt das aktuell installierte Kernel-Release aus - wir nehmen es in die Backticks auf, damit die Ausgabe als Teil des Befehls enthalten ist (dies könnte auch so aussehen)$(uname -r)
/something/q
sagt stop, wenn Sie 'irgendetwas' finden (in diesem Fall wird etwas ausgegebenuname -r
) - der/
Surround ein regulärer Ausdruckp
ist drucken;
ist der Befehl "separtor", also "/something/q;p
quit", wenn Sie etwas finden, sonst "print"Insgesamt werden
sed -n '/'`uname -r`'/q;p'
die Zeilen gedruckt, bis sie mit dem aktuellen Kernelnamen übereinstimmen.Wenn Sie paranoid sind (wie ich), können Sie den letzten Teil
xargs echo sudo apt-get -y purge
so gestalten, dass der Befehl zum Löschen der alten Kernel gedruckt wird. Sie können dann überprüfen, ob nichts Unerwartetes enthalten ist, bevor Sie ihn ausführen.Geänderte Version zum Entfernen von Headern:
Hinweis: Der
sed
Aufruf wird geändert."$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"
extrahiert nur die version (zB "3.2.0-44"), ohne "-generic" oder ähnliches ausuname -r
All-in-One-Version zum Entfernen von Bildern und Kopfzeilen (kombiniert die beiden obigen Versionen):
quelle
sudo apt-get purge $(for tag in "linux-image" "linux-headers"; do dpkg-query -W -f'${Package}\n' "$tag-[0-9]*.[0-9]*.[0-9]*" | sort -V | awk 'index($0,c){exit} //' c=$(uname -r | cut -d- -f1,2); done)
Siehe auch meine Antwort .dkpg -P
stattdessen mit verwenden. Hier ist die Vollversion:dpkg --list | grep 'linux-headers' | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p' | xargs sudo dpkg -P
Ubuntu 16.04+:
Ubuntu 15.10 und niedriger:
Ich finde das der einfachste und schnellste Weg. Es enthält den neuesten Kernel sowie zwei weitere:
So ändern Sie die Anzahl der zusätzlichen Kernel, die beibehalten werden:
quelle
which purge-old-kernels
.purge-old-kernels
kein Fahrrad-Paket ( zufällige nützliche Tools, die noch kein permanentes Zuhause haben ) oder ein bestimmtes Paket. Die Verwendung vonapt-get -y
Optionen ist wie das Schließen der Augen und das Hoffen, dass alles in Ordnung kommt. Auch hier ist es wie autoremove entscheidet , wie viele alte Kernel zu halten.apt-file search purge-old-kernels
. Einverstandenapt-get -y
, ich werde es entfernen.sudo apt-get autoremove
Kernel in 14.04 nicht entfernt werden. Fühlen Sie sich frei, die Antwort mit der spezifischen Version zu aktualisieren, wenn Sie wissen, was es ist!Entfernen von Einträgen aus Grub 2 Einträge sollten durch Bearbeiten oder Entfernen von Dateien im Ordner /etc/grub.d entfernt werden. Die Datei /boot/grub/grub.cfg ist schreibgeschützt und sollte normalerweise nicht bearbeitet werden müssen.
Zu viele Kerne?
Wenn Sie sich nicht sicher sind, welchen Kernel Sie gerade verwenden, geben Sie in einem Terminal uname -r ein .
Über APT entfernte Kernel (Synaptic, "apt-get remove" usw.) aktualisieren die Datei grub.cfg automatisch, und es ist keine Benutzeraktion erforderlich.
Ein großartiges Tool zum Entfernen von Kerneln (und Menüeinträgen) ist Ubuntu-Tweak, eine sichere und benutzerfreundliche GUI-App.
Installieren Sie Ubuntu Tweak
Ubuntu-Tweak ist unter Programme> Systemprogramme verfügbar.
Entfernen Sie ältere Kernel-Einträge
Wählen Sie links "Package Cleaner" und rechts "Clean Kernel".
Klicken Sie auf die Schaltfläche "Entsperren" unten rechts und geben Sie Ihr Passwort ein.
Wählen Sie aus der angezeigten Liste die Kernel-Images und Header aus, die Sie entfernen möchten. Der verwendete Kernel ist nicht aufgeführt.
Klicken Sie auf die Schaltfläche "Aufräumen" unten rechts, um die ausgewählten Kernel-Images und -Header zu entfernen.
Entfernen Sie die Betriebssysteme aus dem Grub-Menü
Andere Betriebssysteme, die vom Computer entfernt wurden, werden ebenfalls aus dem Menü entfernt, sobald "update-grub" als root ausgeführt wird.
Menüelemente werden durch Skripte im Grub2-Menü platziert. Wenn Sie nicht möchten, dass andere Betriebssysteme in das Menü eingegeben werden, deaktivieren Sie /etc/grub.d/30_osprober
Führen Sie diesen Befehl aus, um die Ausführung des Skripts zu stoppen
sudo chmod -x /etc/grub.d/30_os-prober
DISABLE_30_OS-PROBER = 'true' in / etc / default / grub
Entfernen Sie Memtest86 + aus dem Grub-Menü
sudo chmod -x /etc/grub.d/20_memtest86+
Quelle
Hinweis: Nach der Aktualisierung des Kernels wird dem GRUB-Menü ein neuer Eintrag hinzugefügt. Sie können den älteren entfernen, wenn Sie möchten. Die erfahrensten Benutzer raten Ihnen jedoch, mindestens einen freien Eintrag aufzubewahren, falls bei einem Upgrade und Ihnen etwas schief geht müssen eine ältere Kernel-Version zur Fehlerbehebung booten.
Alternative Methode zum Entfernen von Kernel-Einträgen (vor 10.04)
für GRUB nicht GRUB2
Start-Manager
Sie finden es unter System >> Administration >>
Sie sehen im zweiten Screenshot, wie viele Kernel Sie anzeigen können? Ich behalte es im Allgemeinen nur auf 1, aber wenn ich ein Kernel-Upgrade erhalte, ändere ich es immer auf 2, bevor ich neu starte, damit ich den älteren Kernel auswählen kann, wenn der neue Kernel Probleme mit meiner Hardware hat. Sobald ich weiß, dass der neue Kernel gut funktioniert, ändere ich ihn auf 1 zurück.
quelle
Rein auf der Kommandozeile entfernt dies alle bis auf den aktuellen und zweithäufigsten Strom (über das "-2" im Kopfbefehl unten):
quelle
dpkg -l linux-* | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e [0-9] | xargs sudo apt-get -y purge
linux-libc-dev:amd64
der nicht entfernt werden sollte.awk '{print "linux-image-" $0}'
.Update:
purge-old-kernels
ist heutzutage veraltet .Ich habe ein Skript erstellt, um Kernel auch unter schwierigen Bedingungen zu bereinigen. Es heißt
linux-purge
und Sie finden es hier .Wenn Sie nur die Kernel (und die zugehörigen Pakete) löschen möchten, die älter als der aktuell verwendete Kernel sind, können Sie dieses Skript verwenden, wenn das System nicht kaputt ist .
Es gibt auch eine Ubuntu-Dokumentationsseite, an der ich mitgewirkt habe, um alte Kernel hier zu entfernen .
quelle
purge-old-kernels
es nicht in der genauen Version (1.22) von Bikeshed. Gibt es einen vernünftigen / sicheren Weg, um ein aktuelles Fahrrad zu bekommen? Oder wäre es einfacher / sicherer, nur das Skript zu installieren? Ich würde es jedoch vorziehen, ein Repo zu verwenden, trotz der langen Liste von Abhängigkeiten.dlocate -lsbin bikeshed
Sie können die folgen Mit dem „unbeaufsichtigt-Upgrades“ -Paket Abschnitt der automatischen Sicherheits - Updates Artikel auf Ubuntu Wiki dies auszuführen.
Sie müssen die folgende Zeile in der Datei /etc/apt/apt.conf.d/50unattended-upgrades ändern .
mit
um alte Pakete, einschließlich Kernel, automatisch zu entfernen.
Entfernen oder kommentieren Sie auch die Zeile
im Abschnitt "NeverAutoRemove" der Datei /etc/apt/apt.conf.d/01autoremove.
quelle
apt-get autoremove
meinen täglichen Cron-Job erweitert, der die Upgrades ausführt, da er nicht immer den eingebauten Update-Manager durchläuft.Der schnellste / einfachste Weg (Anwendbar mindestens seit 12.04), der mit Ubuntu schon möglich ist
apt-get
. Führen Sie die folgenden Schritte aus, um alle nicht verwendeten älteren Kernel-Versionen zu entfernen (mit Ausnahme der vorherigen, die Sie nicht verwenden). Damit stellen Sie sicher, dass Sie einen Ausweg haben, wenn die aktuelle Kernel-Version ausfällt zurück zu einem früheren Zustand). Mach Folgendes:Dadurch werden alle alten Dateien (einschließlich der Kernel-Versionen) entfernt, die Sie möglicherweise haben. Beachten Sie, dass es eine Weile dauern wird, bis Sie viele alte Versionen haben, da sichergestellt werden muss, dass das Entfernen der Kernel-Version keine Probleme verursacht. Für mich hat das Entfernen der letzten 12 Kernelversionen ungefähr 2 Minuten gedauert. Sie können auch Folgendes tun:
Damit werden alle heruntergeladenen und im Cache-Ordner von apt gespeicherten Daten gelöscht. Zuletzt haben Sie:
Diese prüft, ob nicht verwendete Pakete vorhanden sind und entfernt sie gegebenenfalls. Dies ist ideal für Bibliotheken und Abhängigkeitspakete, die von keiner installierten App mehr benötigt werden.
quelle
sudo apt-get autoremove
alte (vor mehr als einer Version) Kernel in 14.04 entfernt werden. Möglicherweise müssen Sie es vor und nach dem Upgrade Ihres Kernels ausführen. Als ich vor dem Upgrade lief, wurde nur die generische Version des alten Kernels entfernt. Nach dem Upgrade meines Kernels wurde auch die Version mit geringer Latenz des alten Kernels entfernt.sudo apt-get autoclean
Befehl. @tekNorah Ich habe ein paar ältere Kernel installiert und lief danachsudo apt-get autoremove
in Ubuntu Studio 14.04. Es wurden keine Kernel entfernt. Ich habe nur Kernel mit geringer Latenz installiert. Warum haben Sie sowohl generische als auch langsame Kernel installiert?10.04 GUI-Methode
Computer Janitor kann alte Kernel bereinigen und ist meines Erachtens standardmäßig in Ubuntu (aber nicht Kubuntu) installiert.
In GRUB 1 können Sie
/boot/grub/menu.lst
festlegen, wie viele Kernel maximal angezeigt werden sollen. GRUB 2, soweit ich das beurteilen kann, nicht.quelle
Um herauszufinden, welche Kernel und Header installiert sind, verwenden Sie
Sie können sie dann einzeln oder zusammen entfernen. Achten Sie lediglich darauf, die neueste Version beizubehalten.
Es gibt auch einige nützliche Befehle und Skripte, um das Entfernen zu automatisieren.
http://ubuntuforums.org/showthread.php?t=1658648
Die folgenden Ansprüche, um alle nicht verwendeten Kernel und Header zu entfernen:
(verwenden
apt-get -y
, um ohne Frage zu entfernen)Folgendes passiert, wenn am 18.04.1 ausgeführt wird:
quelle
linux-libc-dev
ist installiert.linux-libc-dev
stimmt mit der Versionsnummer des aktuellen Kernels überein. Hierdpkg -l linux-libc-dev | sed '/^ii/!d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'
druckt linux-libc-dev: amd64grep -E "(image|headers)"
.-y
Flagge mit Spülung bitte ..!Um ältere Linux-Image-Kernel zu entfernen, starten Sie zuerst den Kernel, den Sie behalten möchten.
Sie können die Kernel-Version auch mit dem Befehl überprüfen,
uname -r
damit Sie nicht versehentlich die falsche Version entfernen.Gehen Sie nun zum Synaptic Package Manager und suchen Sie nach
linux-image
älteren Versionen und entfernen Sie diese, mit Ausnahme der vom oberen Befehl angezeigten. Im Allgemeinen bevorzuge ich die neueste.Wenn Sie jetzt neu starten, sehen Sie ein saubereres Menü.
quelle
Sie könnten Ubuntu-Tweak installieren und dann zu Anwendungen -> System-Tool -> Ubuntu-Tweak und wechseln
Klicken Sie auf Paketbereinigung und bereinigen Sie die Kernel. Der aktuell verwendete Kernel wird nicht angezeigt, sodass Sie immer auf der sicheren Seite sind.
quelle
Persönlich benutze ich gerne
Synaptic
. Dadurch fühle ich mich sicherer, was los ist. Die einzige App, mit der ich alte Kernel entfernen kann, ist Ubuntu Tweak .So entfernen Sie die nicht verwendeten Kernel:
uname -a
in einem Terminal überprüft wirdquelle
update-grub
wird geraten.Sie können die alten Kernel (
linux-image-...
Pakete) mit Synaptic deinstallieren. Dadurch werden sie aus dem Boot-Menü entfernt. Achten Sie darauf, den laufenden Kernel nicht zu entfernen (Sie können seine Version mit überprüfenuname -r
).Denken Sie daran, dass ein oder zwei ältere Versionen Ihnen bei der Fehlersuche helfen können, falls etwas schief geht.
Alternativ können Sie die Einträge manuell bearbeiten / entfernen (
gksu gedit /boot/grub/grub.cfg
), sie werden jedoch neu generiert, wenn Sie auf einen neueren Kernel aktualisieren. Wenn Sierecovery mode
Optionen entfernen möchten, tun Sie dies nicht. Sie können nützlich sein, wenn Sie etwas kaputt machen, das Sie am Booten hindert.Siehe diese Seite.
quelle
update-grub
dem alle diese kerne neu geschrieben werden.Dies ist eine reine Befehlszeilenlösung.
Generieren Sie zunächst eine Liste aller installierten Kernelversionen mit Ausnahme des aktuell ausgeführten Kernels:
Alternativ können Sie eine Liste aller installierten Kernelversionen mit Ausnahme der letzten beiden generieren:
Überprüfen Sie die Liste. Stellen Sie sicher, dass die Kernel-Versionen, die Sie behalten möchten, nicht in der Liste enthalten sind. Verwenden Sie den Befehl
uname -r
, um die Version des aktuell ausgeführten Kernels anzuzeigen.Wenn Sie mit den Ergebnissen zufrieden sind, können Sie
apt-get
die Pakete entfernen.Zuerst ein Probelauf (am Beispiel des ersten Generators):
Dann ein echter Lauf:
Wenn Sie den Prozess automatisieren möchten, fügen Sie den
--yes
Parameter hinzu:quelle
sudo apt-get purge -- $(ls -1U /boot/vmlinuz* | cut -d- -f2,3 | sort -uV | head -n -2 | awk -v c=$(uname -r | cut -d- -f1,2) '($0==c){exit} //' | sed -r -e 's/\./\\./g' -e 's/.*/-&($|-)/')
. Es ist nicht erforderlich,dpkg-query
daapt-get
reguläre Ausdrücke verarbeitet werden können. Bitte beachten Sie, wie ich Punkte maskiere und Präfix und Suffix in den regulären Ausdruck einfüge. Wenn Sie das Skript in meiner eigenen Antwort verwenden , können Sie auch einige Kernel behalten, die älter als der aktuelle sind.Der Vorteil dieser Antwort ist, dass natives Ubuntu Bash verwendet wird, ohne Anwendungen von Drittanbietern zu installieren. Benutzer von benutzerdefinierten Kerneln, die dieses Bash-Skript nicht verwendet haben
apt
oder nichtdpkg
entsprechend ihren Anforderungen ändern können. Diese Antwort basiert auf ( Wie man selektiv alte Kernel auf einmal löscht ).Zenity-basierte Lösung
Zenity bietet eine schöne GUI-Oberfläche für das Terminal, um eine Liste zu verarbeiten und Elemente mit Optionsfeldern auszuwählen :
Wie der Titel zeigt, kann der aktuelle Kernel, mit dem Sie gebootet haben, nicht entfernt werden und ist nicht in der Liste enthalten. Die angegebene Größe gibt an, wie viel im
/boot
Verzeichnis gespeichert wird . Auf Ihrer Festplatte wird mehr gespeichert, da sich die Kernel-Binärdateien auch in anderen Bereichen befinden. 27. Juli 2017 Hinweis: Die Verzeichnisse/usr/src/*kernel_version*
und/lib/modules/*kernel_version*
sind nun ebenfalls enthalten.Das Änderungsdatum wird mit dem
stat
Befehl ermittelt. Auf meinem System wird dieses Datum jedes Mal "berührt", wenn der Kernel mit diesem cron- Neustart-Skript gebootet wird ( Wie erfahren Sie, wann eine bestimmte Kernel-Version zuletzt gebootet wurde? ) . Auf Ihrem System ist das Datum jedoch das Veröffentlichungsdatum des Kernels und nicht das Datum, an dem Sie ihn zuletzt gestartet haben.apt-get purge
gibt Ihnen die Möglichkeit abzubrechenSie haben die letzte Möglichkeit, alles anzuzeigen, was gelöscht werden soll, und den gesamten (etwas irreführenden) Speicherplatz anzuzeigen, der wiederhergestellt werden soll:
Der Code
Kopieren Sie diesen Code in eine ausführbare Datei mit dem Namen
rm-kernels
in/usr/local/bin
:HINWEIS: Sie benötigen die Berechtigung sudo, um die Datei zu erstellen. Verwenden Sie dazu:
So machen Sie die Datei ausführbar:
Serverversion
rm-kernels-server
ist die Serverversion, mit der Kernel auf einmal selektiv gelöscht werden können. Anstelle eines GUI-Dialogfelds (grafisches Dialogfeld) wird ein textbasiertes Dialogfeld zum Auswählen der zu löschenden Kernel verwendet.Vor dem Ausführen des Skripts müssen Sie die Dialogfunktion folgendermaßen installieren :
sudo apt install dialog
Das Dialogfeld befindet sich in der Standardinstallation von Ubuntu Desktop, jedoch nicht in Ubuntu Server.
Beispielbildschirm
rm-kernels-server
Bash-CodeHINWEIS: Im Aufruf an
dialog
die Direktive--ascii-lines
wird der erweiterte Zeichensatz (derssh
nicht gefällt) durch "+ ----- +" zum Zeichnen von Feldern ersetzt. Wenn Ihnen dieses Erscheinungsbild nicht gefällt, können Sie die--no-lines
Direktive für kein Kästchen verwenden.Updates vom 28. Juli 2017
Die berechnete Größe jedes Kernels wurde aus
/boot/*kernel_version*
5 Dateien mit insgesamt ~ 50 MB entnommen . Die Formel wurde geändert, um die Dateien in/usr/src/*kernel_version*
und aufzunehmen/lib/modules/*kernel_version*
. Die berechnete Größe für jeden Kernel beträgt jetzt ~ 400 MB. Der obige Code fürrm-kernels
undrm-kernels-server
wurde aktualisiert. In den obigen Beispielbildschirmen sind diese Änderungen jedoch noch nicht enthalten.Standardmäßig wird die Dateigröße für Linux-Header auf 125 MB und für Linux-Image auf 220 MB geschätzt, da
du
dies schmerzhaft langsam sein kann, sofern sich keine Dateien im Cache befinden. Um die tatsächliche Größe zu ermitteln,du
übergeben Sie einen beliebigen Parameter an das Skript.Die Gesamtsumme aller Kernelgrößen (mit Ausnahme der aktuell ausgeführten Version, die nicht entfernt werden kann) wird jetzt in der Titelleiste angezeigt.
Das Dialogfeld, in dem das letzte Zugriffsdatum jedes Kernels angezeigt wird . Dieses Datum kann bei Backups oder ähnlichen Vorgängen für alle Kernel überschrieben werden. Das Dialogfeld zeigt jetzt stattdessen das Änderungsdatum an .
quelle
Eine einfache Möglichkeit, fast alle veralteten Pakete, Pakete, die nicht mehr in einer Paketliste enthalten sind, sowie veraltete Kernel zu entfernen, besteht darin, einen der folgenden Schritte auszuführen:
Hierdurch werden jedoch Pakete übersehen, die noch von anderen Paketen empfohlen werden, und das Argument -R / - without-recommends löst dieses Problem nicht.
dWählen Sie nach dem Umschalten des Sortiermodus mit 'o', um alle veralteten Pakete anzuzeigen, einschließlich derjenigen, bei denen die Eignung fehlt. Einige Benutzer verwenden sie jedoch nicht gern.
quelle
Die akzeptierte Antwort, die verwendet wird
sed
, um ältere Kernel dauerhaft zu entfernen, weist einige Fehler auf. Wenn jemand den Computer nach dem Upgrade des Kernels nicht neu gestartet hat, entfernt der Befehl auch den neueren Kernel.Hier ist eine alternative Lösung, die alle Situationen berücksichtigt, um nur ältere Kernel zu entfernen:
Wenn Sie eine neuere Version als die aktuelle haben, erhalten Sie eine Warnung, dass Sie den Computer zuerst neu starten müssen. Beachten Sie auch, dass die älteren Kernel aus einem guten Grund erhalten bleiben. Wenn Sie Ihren aktuellen Kernel irgendwie durcheinander bringen und Ihr System instabil machen, sollten Sie in der Lage sein, einen älteren Kernel zu booten.
quelle
sed
Lösungen.grep -Po "^linux-image-[^-]+-[^-]+-generic\b"
mitgrep -Eo "^linux-(image|headers|tools)-[^-]+-[^-]+(|-generic)\s" | sed -e "s/\s//g"
undgrep -Po ".*(?=-[a-z]*$)"
mitgrep -Eo "^[0-9]+\.[0-9]+\.[0-9]+-[0-9]+"
undgrep -Po "[0-9].*(?=-[a-z]*)"
mitgrep -Eo "[0-9]+\.[0-9]+\.[0-9]+-[0-9]+"
?ailurus hat die Funktion, alte Kernel sowie nicht verwendete Konfigurationen zu entfernen. Ich persönlich entferne es manuell von synaptic. Sie können ailurus sowohl von getdeb als auch von ppa aus installieren
quelle
Ich habe ein Skript dafür, das nicht sehr ausgefallene String-Analyse benötigt.
Entfernen Sie Überschriften und Bilder mit Ausnahme der aktuellen, um Speicherplatz freizugeben
quelle
Sie können ukuu - es ist alles GUI - verwenden, um alte Kernel zu aktualisieren und zu löschen. Funktioniert bei mir!
Denken Sie daran, lassen Sie die letzten 2 installiert und natürlich den "laufenden" Kernel.
Sie können ukuu auch so einstellen, dass nur Hauptversionen, sogar RC-Kernel, angezeigt werden und Punktversionen ausgeblendet werden.
Sie finden ukuu in Synaptic, oder Anweisungen finden Sie hier:
OMG! Ubuntu ukuu Installationsanweisungen
quelle
Basierend auf einer früheren Antwort von David Kemp werden im folgenden Skript alle Überschriften und Bilder mit Ausnahme der letzten beiden Versionen gelöscht.
(verwenden
apt-get -y
, um ohne Frage zu entfernen)quelle
| xargs sudo apt-get -y purge
ganz). Wenn es 3.13.0-43-lowlatency ausgibt, dann haben Sie vielleicht einige spätere Versionen als die, die auf Ihrem System installiert sind.Hier ist ein grober Abriss dessen, was ich getan habe. Da ich kein Linux-Experte bin, stellen Sie sicher, dass Sie wissen, was Sie tun, und alle Dateien, die Sie ändern, gesichert haben.
Suchen Sie dann die Einträge, die Sie behalten möchten. Wir werden sie markieren und kopieren
Sie sehen eine Liste von Dateien wie 10_linux und 30_os-prober
Dadurch wird das automatische Hinzufügen aller Linux-Einträge zum Grub-Boot-Menü beendet.
öffne die benutzerdefinierte Boot-Menü-Datei, gehe dann zurück zu grub.cfg (die noch in gedit geöffnet sein sollte) und kopiere die Einträge, die du behalten möchtest ... wie zum Beispiel
Fügen Sie sie ein
40_custom
und speichern Sie sie.macht es ausführbar, dann aktualisieren wir endlich grub, was die Datei grub.cfg ändert:
ACHTUNG, wenn Sie Ihren Kernel oder Ihr Betriebssystem aktualisieren, wird Ihr Boot-Menü wahrscheinlich nicht aktualisiert ... Sie müssen dies manuell tun. Mit dieser Prozedur können Sie das Boot-Menü jedoch ein wenig weiter anpassen, z. B. indem Sie die Kernel-Version entfernen und einfach den Ubuntu-Namen eingeben ... z. B. Ubuntu Lucid 10.04 usw.
Hoffe, jemand findet das hilfreich, da ich eine Weile gebraucht habe, um es herauszufinden ... habe diese Lösung nirgendwo gesehen ...
quelle
Installieren Sie den Synaptic Package Manager und wechseln Sie zur Registerkarte Filter (ich denke Filter, wenn nicht alle 5) und wählen Sie "local". Dadurch werden verwaiste Pakete auf Ihrem System angezeigt, z. B. die Kernel. Nachdem Sie sie deinstalliert haben, führen Sie sie aus
update-grub
. Dieser Befehl aktualisiert die Liste der Startoptionen für grub.Wenn dies fehlschlägt, können Sie es jederzeit versuchen
apt-get remove linux-image-version-generic
.quelle
update-grub
wird geraten.Um etwas mehr Kontrolle darüber zu haben, welche Versionen beibehalten werden sollen, wählen Sie explizit die Versionen aus, die Sie entfernen möchten. Wenn Sie beispielsweise die Kernel-Versionen 3.2.0 entfernen möchten [49-53], verwenden Sie eine einfache
for
Schleife:Passen Sie die Liste der Kernelversionen an.
quelle
Versuche dies. Führen Sie es als root aus.
Speichern Sie dieses Skript unter ./keep-n-kernels.sh
Übergeben Sie als Befehlszeilenargument die Anzahl der aktuellsten Kernel, die Sie beibehalten möchten.
Beispielnutzung:
Wenn Sie [UND AUF EIGENES RISIKO] möchten, können Sie dem Befehl apt-get ein -y (oder ein Force-Flag) hinzufügen und ihn nicht interaktiv machen.
quelle
Ich verwende einen KDE-Desktop und die einfachste Option, die ich gefunden habe, war die Verwendung der Anwendung kde-config-grub2, wie hier vorgeschlagen: https://www.kubuntuforums.net/showthread.php?58075-remove-old-linux-versions (die ich bereits zum Einstellen des Hintergrundbildes, der Standardstartoption und dergleichen installiert hatte). Neben dem Dropdown-Feld, in dem Sie den Standardeintrag auswählen können, befindet sich die Schaltfläche "Alte Einträge entfernen". Wenn Sie auf diese Schaltfläche klicken, wird eine Liste aller installierten Kernel angezeigt, und Sie können auswählen, welche entfernt werden sollen. Wenn Sie die Änderungen anwenden, werden sie mit dpkg aus dem System sowie aus dem GRUB-Menü entfernt.
quelle
Nur um einzuschalten, können Sie auch ausstellen
apt-get remove linux-{image,headers}-x.y.z-{1,2,...,n}
als root, und die Arbeit wird erledigt.
quelle
Wenn Sie ansible verwenden, um die Maschinen zu steuern, kann dieses Playbook hilfreich sein.
quelle