Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?
21.02.2019, 17:37:23

.
Einloggen mit Benutzername, Passwort und Sitzungslänge

Mitglieder
  • Mitglieder insgesamt: 21583
  • Letzte: manni1454
Statistiken
  • Beiträge insgesamt: 574984
  • Themen insgesamt: 46581
  • Heute online: 605
  • Am meisten online: 992
  • (17.11.2018, 20:17:55)
Benutzer Online

Autor Thema:  Alte Kernel-Versionen mit nur einem Befehl entfernen  (Gelesen 54481 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

DeVIL-I386Threadstarter

  • Administrator
  • *****
Wenn man sein Ubuntu schon lange Zeit betreibt, sammeln sich eine Menge von Kerneln an.
Denn wird bei einem System-Update ein neuer Kernel installiert, der Probleme bereitet, kann man einfach das System mit einem alten Kernel weiter nutzen.
Bisher hatte ich keine Probleme mit dem aktuellen Kernel, weshalb ich alle anderen, die ich ja nicht verwende, mit diesem Befehl deinstalliere:
(Nachdem dieser Befehl ausgeführt wurde, werden zukünftig keine neuen Versionen des Kernels beim System-Update angeboten.) sudo dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
Quelle: http://www.webupd8.org/2009/12/remove-unused-linux-kernel-headers.html



Möchte man auf zukünftige Versionen des Kernels beim System-Update nicht verzichten, muß man diesen Befehl im Terminal ausführen: sudo apt-get install --yes linux-generic linux-headers-generic linux-image-generic

Re: Alte Kernel-Versionen mit nur einem Befehl entfernen
« Antwort #1 am: 27.06.2012, 02:26:14 »
Mit folgendem Befehl werden alle alten Kernel automatisch gelöscht

sudo dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
---- Hier eine andere möglichkeit ----
alte Kernel löschen

1) Setze im Terminal ab:
   
Quellcode

dpkg -l linux-image* | grep ^ii
Nun bekommst Du alle Kernel angezeigt, die installiert sind. Neben dem "ii" (das steht für installiert), stehen die Paketnamen, die Du dann löschen kannst per:
   
Quellcode

sudo apt-get remove paketname1 paketname2

Re: Alte Kernel-Versionen mit nur einem Befehl entfernen
« Antwort #2 am: 01.07.2012, 20:18:42 »
Mit folgendem Befehl werden alle alten Kernel automatisch gelöscht

sudo dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge

Das funktioniert. Herzlichen Dank.  :)

Kleine Ergänzung meinerseits: Ich hatte den .26er Kernel frisch installiert, aber noch nicht neu gebootet und dieser Befehl hat mir den .23er, .24er und .26er Kernel gelöscht. Den 25er hat er gelasse (das war der unter dem ich gebootet hatte)

Daraufhin habe ich auf Updates suchen lassen, aber der .26er Kernel wurde mir nicht mehr angeboten.  :(

Was kann ich tun?

Frieder108

  • Gast
Re: Alte Kernel-Versionen mit nur einem Befehl entfernen
« Antwort #3 am: 01.07.2012, 20:30:51 »
Neustart machen

DeVIL-I386Threadstarter

  • Administrator
  • *****
Re: Alte Kernel-Versionen mit nur einem Befehl entfernen
« Antwort #4 am: 01.07.2012, 21:17:27 »
Was kann ich tun?
sudo apt-get install --yes linux-generic linux-headers-generic linux-image-generic

Re: Alte Kernel-Versionen mit nur einem Befehl entfernen
« Antwort #5 am: 02.07.2012, 08:33:42 »
Bezug nehmend auf Antwort 2, würde nicht auch schon ein einfaches sudo apt-get autoremove reichen?

Re: Alte Kernel-Versionen mit nur einem Befehl entfernen
« Antwort #6 am: 02.07.2012, 12:04:42 »
Ich bin grundsätzlich bemüht, Befehle, die ich in meine Konsole eingebe, zumindest grob zu verstehen. Daher habe ich diesen Einzeiler auch noch nie verwendet. Dieser Umstand bedeutet jetzt keinen Mangel an Vertrauen in die Linuxgemeinde sondern basiert eher auf einer gewissen Neugier. Gibt es vielleicht eine Website, wo dieser Befehl im Detail erklärt wird bzw. wo ich mir das vielleicht komponentenweise selbst erarbeiten kann?

Sauron

  • Gast
Re: Alte Kernel-Versionen mit nur einem Befehl entfernen
« Antwort #7 am: 02.07.2012, 12:10:42 »
Zitat von: DeVIL-I386
Wenn man sein Ubuntu schon lange Zeit betreibt, sammeln sich eine Menge von Kerneln an.
Denn wird bei einem System-Update ein neuer Kernel installiert, der Probleme bereitet, kann man einfach das System mit einem alten Kernel weiter nutzen.
Bisher hatte ich keine Probleme mit dem aktuellen Kernel, weshalb ich alle anderen, die ich ja nicht verwende, mit diesem Befehl deinstalliere:
(Nachdem dieser Befehl ausgeführt wurde, werden zukünftig keine neuen Versionen des Kernels beim System-Update angeboten.) Code: sudo dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
Quelle: http://www.webupd8.org/2009/12/remove-unused-linux-kernel-headers.html


Meine installierten Kernel
dpkg -l linux-image-*|grep ^ii
ii  linux-image-3.2.0-2-amd64             3.2.20-1                           Linux 3.2 for 64-bit PCs
ii  linux-image-amd64                     3.2+44                             Linux for 64-bit PCs (meta-package)

Würde ich den Kernellöschbefehl bei mir absetzen
#  dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs apt-get -s purge
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
  alien libelf1 librpm3 librpmbuild3 librpmio3 librpmsign1 lsb-security pax rpm rpm-common rpm2cpio
Use 'apt-get autoremove' to remove them.
Die folgenden Pakete werden ENTFERNT:
  build-essential* g++* g++-4.7* googleearth* kernel-package* libc6-dev* libstdc++6-4.7-dev* linux-image-3.2.0-2-amd64* linux-image-amd64*
  linux-libc-dev* lsb-core*
0 aktualisiert, 0 neu installiert, 11 zu entfernen und 24 nicht aktualisiert.
Purg kernel-package [12.036+nmu2]
Purg build-essential [11.5]
Purg g++ [4:4.7.0-6]
Purg g++-4.7 [4.7.0-8] [libstdc++6-4.7-dev:amd64 ]
Purg libstdc++6-4.7-dev [4.7.0-8]
Purg googleearth [6.0.3.2197+0.7.0-1]
Purg lsb-core [4.1+Debian7]
Purg libc6-dev [2.13-33]
Purg linux-image-amd64 [3.2+44]
Purg linux-image-3.2.0-2-amd64 [3.2.20-1]
Purg linux-libc-dev [3.2.20-1]
dann könnte ich mein System danach nicht mehr starten.
Solche Monsterbefehle besser nur absetzen wenn sie auch verstanden werden. Ein einfaches apt-get remove --purge linux-image-Version entsorgt nicht mehr benutzte Kernel.

Re: Alte Kernel-Versionen mit nur einem Befehl entfernen
« Antwort #8 am: 02.07.2012, 12:21:47 »
@Sauron: Nutzt du Debian oder Ubuntu?

Sauron

  • Gast
Re: Alte Kernel-Versionen mit nur einem Befehl entfernen
« Antwort #9 am: 02.07.2012, 12:28:00 »
Debian/Wheezy 

Sauron

  • Gast
Re: Alte Kernel-Versionen mit nur einem Befehl entfernen
« Antwort #10 am: 02.07.2012, 12:48:03 »
Ich habe den Befehl mal umgeschrieben. Jetzt wird zwar nicht der Kernel, dafür aber das Kernelmetapaket deinstalliert. Einziger Nachteil wäre: In Zukunft müsste ich aktuelle Kernelheaders wohl selbst nachinstallieren. Aber da ich faul bin lasse ich alles so wie es ist.  :)
# dpkg -l linux-image-* | awk '/^ii/{print $2}' | egrep -v `uname -r | cut -f1,2 -d"-"` | egrep [0-9] | xargs apt-get -s purge
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Die folgenden Pakete werden ENTFERNT:
  linux-image-amd64*
0 aktualisiert, 0 neu installiert, 1 zu entfernen und 24 nicht aktualisiert.
Purg linux-image-amd64 [3.2+44]

Nur als Ergänzung:
Es fehlte noch update-grub und eventuell update-initramfs -u wenn ältere Kernel deinstalliert werden.
« Letzte Änderung: 02.07.2012, 13:19:26 von Sauron »

Blindenhund

  • Gast
Re: Alte Kernel-Versionen mit nur einem Befehl entfernen
« Antwort #11 am: 02.07.2012, 12:57:56 »
Aber es ist mal wieder ein schönes Beispiel dafür, daß Debianer nicht jeden Ubu-Befehl "stumpf" übernehmen können!

Re: Alte Kernel-Versionen mit nur einem Befehl entfernen
« Antwort #12 am: 02.07.2012, 15:33:36 »
Was kann ich tun?
sudo apt-get install --yes linux-generic linux-headers-generic linux-image-generic

Und mit diesem Befehl bekomme ich wieder Kernel-Updates angeboten?

EDIT:
Ach entschuldigung, habe jetzt erst die Erklärung von dir dazu im ersten Post gesehen. Alles klar, danke.  ;)
« Letzte Änderung: 02.07.2012, 15:48:46 von Ahtan »

Re: Alte Kernel-Versionen mit nur einem Befehl entfernen
« Antwort #13 am: 02.07.2012, 22:52:11 »
@Sauron: Ich habe diesen Befehl unter Linux Mint Debian und Linux Mint 9 bis 13 getestet und hatte damit keine Probleme.

Meine Ausgabe unter Linux Mint Debian: # dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs apt-get -s purge
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut       
Statusinformationen werden eingelesen... Fertig
Die folgenden Pakete werden ENTFERNT:
  linux-headers-3.2.0-2-486* linux-headers-3.2.0-2-common* linux-headers-486* linux-image-486* linux-kbuild-3.2*
0 aktualisiert, 0 neu installiert, 5 zu entfernen und 0 nicht aktualisiert.
Purg linux-headers-486 [3.2+44]
Purg linux-headers-3.2.0-2-486 [3.2.9-1]
Purg linux-headers-3.2.0-2-common [3.2.9-1]
Purg linux-image-486 [3.2+44]
Purg linux-kbuild-3.2 [3.2.7-1]

Wenn deine Ausgabe nicht manipuliert ist, stimmt etwas mit deinem System nicht. In deinem Fall würden einige Abhängigkeiten falsch aufgelöst werden. Was ein typisches Linux-Problem wäre, siehe hier.

Schon allein weil der Anfang des Befehls dpkg -l 'linux-*' nur Pakete beachtet, die mit "linux-" beginnen. Also werden Pakete wie "build-essential* g++* g++-4.7* googleearth* kernel-package* libc6-dev* libstdc++6-4.7-dev* lsb-core*" von oben genannten Befehl ignoriert.

Sauron

  • Gast
Re: Alte Kernel-Versionen mit nur einem Befehl entfernen
« Antwort #14 am: 03.07.2012, 01:30:02 »
Hier die installierten Kernel nebst purge-Ausgabe unter LMDE
sauron@lmde-kde ~ $ dpkg -l linux-image-*|grep ^ii
ii  linux-image-3.2.0-2-amd64                     3.2.9-1                           Linux 3.2 for 64-bit PCs
ii  linux-image-amd64                             3.2+44                            Linux for 64-bit PCs (meta-package)

sauron@lmde-kde ~ $ dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs apt-get -s purge
HINWEIS: Dies ist nur eine Simulation!
         apt-get benötigt root-Privilegien für die reale Ausführung.
         Behalten Sie ebenfalls in Hinterkopf, dass die Sperren deaktiviert
         sind, verlassen Sie sich also bezüglich des reellen aktuellen
         Status der Sperre nicht darauf!
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut       
Statusinformationen werden eingelesen... Fertig
Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
  libmozjs12d xulrunner-12.0
Verwenden Sie »apt-get autoremove«, um sie zu entfernen.
Die folgenden Pakete werden ENTFERNT:
  linux-headers-3.2.0-2-amd64* linux-headers-3.2.0-2-common* linux-headers-amd64* linux-image-3.2.0-2-amd64* linux-image-amd64* linux-kbuild-3.2*
0 aktualisiert, 0 neu installiert, 6 zu entfernen und 0 nicht aktualisiert.
Purg linux-headers-amd64 [3.2+44]
Purg linux-headers-3.2.0-2-amd64 [3.2.9-1]
Purg linux-headers-3.2.0-2-common [3.2.9-1]
Purg linux-image-amd64 [3.2+44]
Purg linux-image-3.2.0-2-amd64 [3.2.9-1]
Purg linux-kbuild-3.2 [3.2.7-1]

Auch hier werden das Kernelmetapaket nebst dem einzig installiertem Kernel deinstalliert. Was mich dann gleich zur Frage bringt ob Du das
Zitat von: Pseudonym
Wenn deine Ausgabe nicht manipuliert ist,
näher Erläutern kannst ?

Zitat von: Pseudonym
Schon allein weil der Anfang des Befehls Code: dpkg -l 'linux-*' nur Pakete beachtet, die mit "linux-" beginnen

Es sind noch mehr Pakete im System die mit linux- anfangen, aber in der Deinstallationsliste nicht mit dabei sind. Mal, weil ich eben unter LMDE hier bin, die Ausgabe von LMDE zu mit linux beginnenden Paketen sauron@lmde-kde ~ $ dpkg -l linux-*|grep ^ii
ii  linux-base                                    3.5                               Linux image base package
ii  linux-headers-3.2.0-2-amd64                   3.2.9-1                           Header files for Linux 3.2.0-2-amd64
ii  linux-headers-3.2.0-2-common                  3.2.9-1                           Common header files for Linux 3.2.0-2
ii  linux-headers-amd64                           3.2+44                            Header files for Linux amd64 configuration (meta-package)
ii  linux-image-3.2.0-2-amd64                     3.2.9-1                           Linux 3.2 for 64-bit PCs
ii  linux-image-amd64                             3.2+44                            Linux for 64-bit PCs (meta-package)
ii  linux-kbuild-3.2                              3.2.7-1                           Kbuild infrastructure for Linux 3.2
ii  linux-libc-dev                                3.2.9-1                           Linux support headers for userspace development
ii  linux-sound-base                              1.0.23+dfsg-4                     base package for ALSA and OSS sound systems
« Letzte Änderung: 03.07.2012, 01:33:53 von Sauron »