Meine /boot
Partition ist fast voll und ich erhalte jedes Mal eine Warnung, wenn ich mein System neu starte. Ich habe bereits alte Kernelpakete (Linux-Header ...) gelöscht. Eigentlich habe ich das getan, um eine neuere Kernel-Version zu installieren, die mit den automatischen Updates geliefert wurde.
Nach der Installation dieser neuen Version ist die Partition fast wieder voll. Was kann ich sonst noch löschen? Gibt es noch andere Dateien, die mit den alten Kernel-Images verknüpft sind?
Hier ist eine Liste der Dateien, die sich auf meiner /boot
Partition befinden:
:~$ ls /boot/
abi-2.6.31-21-generic lost+found
abi-2.6.32-25-generic memtest86+.bin
abi-2.6.38-10-generic memtest86+_multiboot.bin
abi-2.6.38-11-generic System.map-2.6.31-21-generic
abi-2.6.38-12-generic System.map-2.6.32-25-generic
abi-2.6.38-8-generic System.map-2.6.38-10-generic
abi-3.0.0-12-generic System.map-2.6.38-11-generic
abi-3.0.0-13-generic System.map-2.6.38-12-generic
abi-3.0.0-14-generic System.map-2.6.38-8-generic
boot System.map-3.0.0-12-generic
config-2.6.31-21-generic System.map-3.0.0-13-generic
config-2.6.32-25-generic System.map-3.0.0-14-generic
config-2.6.38-10-generic vmcoreinfo-2.6.31-21-generic
config-2.6.38-11-generic vmcoreinfo-2.6.32-25-generic
config-2.6.38-12-generic vmcoreinfo-2.6.38-10-generic
config-2.6.38-8-generic vmcoreinfo-2.6.38-11-generic
config-3.0.0-12-generic vmcoreinfo-2.6.38-12-generic
config-3.0.0-13-generic vmcoreinfo-2.6.38-8-generic
config-3.0.0-14-generic vmcoreinfo-3.0.0-12-generic
extlinux vmcoreinfo-3.0.0-13-generic
grub vmcoreinfo-3.0.0-14-generic
initrd.img-2.6.31-21-generic vmlinuz-2.6.31-21-generic
initrd.img-2.6.32-25-generic vmlinuz-2.6.32-25-generic
initrd.img-2.6.38-10-generic vmlinuz-2.6.38-10-generic
initrd.img-2.6.38-11-generic vmlinuz-2.6.38-11-generic
initrd.img-2.6.38-12-generic vmlinuz-2.6.38-12-generic
initrd.img-2.6.38-8-generic vmlinuz-2.6.38-8-generic
initrd.img-3.0.0-12-generic vmlinuz-3.0.0-12-generic
initrd.img-3.0.0-13-generic vmlinuz-3.0.0-13-generic
initrd.img-3.0.0-14-generic vmlinuz-3.0.0-14-generic
Derzeit verwende ich den 3.0.0-14-generic
Kernel.
boot
hard-drive
filesystem
disk-usage
init
user6722
quelle
quelle
Antworten:
Sie haben viele unbenutzte Kernel. Entfernen Sie alle bis auf den letzten Kernel mit:
Dies ist eine Abkürzung für:
Das Entfernen des
linux-image-x.x.x-x
Pakets wird ebenfalls entferntlinux-image-x.x.x-x-generic
.Die Header werden in
/usr/src
Kernel-Modulen installiert und beim Erstellen von Kernel-Modulen (wie dem proprietären NVIDIA-Treiber und der VirtualBox) verwendet. Die meisten Benutzer sollten diese Header-Pakete entfernen, wenn das entsprechende Kernel-Paket (linux-image-*
) nicht installiert ist.Führen Sie Folgendes aus, um alle installierten Kernel aufzulisten:
Ein Befehl zum Anzeigen aller Kernel und Header, die entfernt werden können, mit Ausnahme des aktuell ausgeführten Kernels:
Es wählt alle Pakete aus, deren Namen mit
linux-headers-<some number>
oder beginnenlinux-image-<some number>
, druckt die Paketnamen für installierte Pakete aus und schließt dann den aktuell geladenen / ausgeführten Kernel aus (nicht unbedingt den neuesten Kernel!). Dies entspricht der Empfehlung, einen neueren Kernel zu testen, bevor ältere, bekannte Kernel entfernt werden.Nach dem Upgrade des Kernels und dem Neustart, um ihn zu testen, können Sie alle anderen Kernel mit den folgenden Schritten entfernen:
quelle
uname -a
. Vermutlich am besten, um sicherzustellen, dass kein Neustart für die Installation eines neuen Kernels ansteht (wie ich es getan habe; ich habe jedoch die Nichtübereinstimmung zwischenuname -a
und dem "neuesten" Kernel festgestellt ).Ihre Bootpartition ist voll. Da es sich um ein Kernel-Update handelt, werden diese Dateien auf die Boot-Partition kopiert, sodass Sie eine Bereinigung durchführen müssen. Hier ist ein Blog-Beitrag , der Ihnen zeigt, wie Sie die alten Kernel-Images mit einem Befehl löschen können. Ich werde eine grundlegende Übersicht über die Methode geben. Verwenden Sie diesen Befehl, um die aktuelle Version Ihres Kernels auszudrucken:
Verwenden Sie dann diesen Befehl, um alle von Ihnen installierten Kernel auszudrucken, die nicht Ihr neuester Kernel sind:
Stellen Sie sicher, dass Ihr aktueller Kernel nicht auf dieser Liste steht. Beachten Sie, dass dies der größte Teil des endgültigen Befehls ist (siehe unten). Um diese alten Kernel zu deinstallieren und zu löschen, müssen Sie diese Argumente an folgende Adresse weiterleiten:
Jetzt können wir alles tun, was wir wollen, indem wir die letzten beiden Befehle zu diesem unheiligen Durcheinander kombinieren:
Und dieser eine Befehl erledigt alles für Sie. Ich werde bestätigen, dass dies perfekt funktioniert, aber niemals jemandem im Internet vertrauen. :) Für weitere Informationen bietet der Blog-Beitrag eine sehr gute Erklärung dafür, was die einzelnen Teile des Befehls tun.
quelle
Dieser Befehl erledigt die Arbeit automatisch.
quelle
Mit dem Synaptic Package Manager können alte Kernel-Images einfach ausgewählt und entfernt werden.
Wenn Sie Synaptic noch nicht installiert haben:
Starten Sie die Anwendung und wählen Sie die angezeigten Optionen aus.
Sie sollten in der Lage sein, alle "Linux-" Pakete mit der Version "2.6.x" hervorzuheben, wobei x zwischen 31 und 38 liegt, je nach den Dateien in Ihrem / boot-Ordner.
Klicken Sie mit der rechten Maustaste auf jedes dieser Linux-Pakete und wählen Sie die Option "Zum vollständigen Entfernen markieren". Klicken Sie abschließend auf die Schaltfläche Übernehmen. Dadurch werden alle Dateien und alle zugehörigen Dateien entfernt. Ihr
/boot
Ordner sollte jetzt etwas aufgeräumter sein.quelle
/boot
!Vielen Dank für Ihren ausführlichen Beitrag zu Ihrem Problem. Dadurch bin ich in die richtige Richtung gegangen. Obwohl es nützlich ist, vorherige Kerneldateien beizubehalten, können Sie alle auf einmal entfernen. Lesen Sie hierzu den folgenden Beitrag:
So entfernen Sie alle nicht verwendeten Linux-Kernel-Header, Images und Module
Erledigt über die Kommandozeile. Wenn Sie dies per Fernzugriff tun, öffnen Sie mit WINSCP eine Terminalsitzung und fügen Sie sie einfach ein. Dies funktioniert sehr gut.
Hier ist es aus dem Artikel-Link kopiert, ich schlage vor, Sie lesen den vollständigen Artikel:
quelle
Dies ist eine neue Antwort auf eine alte Frage, aber eine einfache Möglichkeit, diese Sache (und mehr) zu bereinigen, ist die Installation von Ubuntu Tweak . So installieren Sie es :
Dann können Sie Ubuntu Tweak ausführen und zur Registerkarte "janitor" wechseln. Von hier aus sind es nur noch drei Klicks:
Es ist jedoch besser, aus Sicherheitsgründen den letzten Kernel (den Sie nie kennen) oder einen bekannten funktionierenden Kernel zu belassen. aber das ist leicht anpassbar.
Mit demselben Tool können Sie viele Dinge bereinigen. Denken Sie jedoch daran, dass das System sie bei Bedarf neu erstellen muss, wenn Sie den Miniatur- oder TB-Cache bereinigen.
quelle
Ich konnte das Problem beheben, indem ich
dpkg
die Pakete direkt entfernte. Obwohl die Pakete weiterhin in aufgeführt sinddpkg -l
, werden die Dateien entfernt/boot
, um Speicherplatz freizugeben.Danach
apt-get -f install
behoben meine Abhängigkeitsprobleme, und alles war gut mit der Welt.Ich werde meine Antwort jedoch nicht akzeptieren, da ich immer noch wissen muss, ob ich mich
/boot
vergrößern oder etwas anderes tun soll.quelle
sudo dpkg --remove linux-headers-3.5.0-28*
sudo dpkg --remove linux-image-3.5.0-28*
für das Bild, überprüft überdf -h
apt-get -f install
. Vergessen Sie auch nicht, später zu tunapt-get autoremove
, um möglicherweise andere nicht benötigte zu entfernen.Sie können aufhören, eine separate / boot-Partition zu verwenden, dann haben Sie dort nicht mehr so wenig Speicherplatz. Hängen Sie dazu die Partition aus, hängen Sie sie an einer anderen Stelle ein und kopieren Sie alle Dateien in das Verzeichnis / boot in Ihrer Root-Partition. Entfernen Sie dann den Eintrag aus / etc / fstab und installieren Sie grub erneut. Zum Beispiel (Sie müssen die richtige Partition verwenden):
Anschließend können Sie mit gparted die alte / boot-Partition löschen und möglicherweise die Root-Partition erweitern, um diesen Speicherplatz zu nutzen. Um die Root-Partition zu erweitern, müssen Sie von der Live-CD booten und der freie Speicherplatz muss sofort rechts sein. Befindet sich die / boot-Partition derzeit links von der Root-Partition, müssen Sie die Root-Partition zuerst nach links verschieben und dann erweitern. Dies kann jedoch sehr, sehr lange dauern und ist möglicherweise nicht wert Ärger.
quelle
lsblk
kann verwendet werden, um zu bestimmen, welche Partition was istAus den obigen Antworten das Beste zu ziehen, ist mein bewährter Ansatz:
uname -a
um den laufenden Kernel zu finden.dpkg -l linux-{headers,image}-\* | grep ^ii
um alle aktuell installierten Kernel-bezogenen Pakete aufzulisten. Dies beinhaltet den laufenden Kernel.sudo apt-get purge linux-{image,headers}-3.16.0-{xx,yy,zz}
um die alten kerne zu entfernen. Ersetzen Siexx,yy,zz
durch eine Liste der Kernel-Builds, die Sie entfernen möchten. Dies sind alle Builds, die im vorherigen Befehl aufgeführt sind und älter als der aktuell ausgeführte Kernel sind. Stellen Sie sicher, dass Sie den aktuell ausgeführten Kernel nicht entfernen - Ihr System wird nicht mehr bootfähig . Möglicherweise müssen Sie auch die Kernelversion von3.16.0
auf die auf Ihrem System installierte Version ändern .sudo apt-get autoremove
Aktion ausführen, um alle verbleibenden Abhängigkeiten der alten Kernel zu entfernen, die von den aktuellen nicht mehr benötigt werden, und so mehr Speicherplatz freizugeben.Möglicherweise sind Header-Dateien ohne passende Kernel-Versionen installiert oder umgekehrt. Fügen Sie einfach alle diese Versionen in den Befehl ein. APT wird sich beschweren, dass einige Pakete nicht entfernt werden können, weil sie nicht installiert sind, aber das schadet nicht.
Wenn etwas fehlschlägt ...
sudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz}
.linux-image
Pakete von denlinux-headers
Paketen der gleichen Version (die Sie ebenfalls deinstallieren möchten) benötigt werden, hat dpkg das möglicherweise nicht gelöst. Überprüfen Sie die Ausgabe vondpkg -l
und geben Sie in der Befehlszeile alle Paketnamensuffixe an. Zum Beispiel war auf einem meiner Systeme der Befehl, der schließlich funktioniertesudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz}-generic-pae
.quelle
/boot
, nur nicht genug für ein anderes Kernelpaket. In diesen Fällen hat das oben Genannte gut funktioniert. Sie können jedoch den entsprechendendpkg
Befehl hinzufügen . Waspurge
, nein, es ist nicht eine Art von ‚kraft entfernen‘. Andersremove
als beim Löschen von Konfigurationsdateien. Da / solange Kernel - Pakete installieren keine Konfigurationsdateien,remove
undpurge
das gleiche gilt für Kernel - Pakete tun.Für mich haben beide
apt-get purge
unddpkg --remove
beide versagt. Also musste ich ein paar ältere Kernel-Images aus / boot mit löschenrm -f
.quelle
/boot
Partition voll war. Dieser Befehl versucht zuerst, den Kernel auf den neuesten Stand zu bringen und stürztNo space left on device
beim Erzeugen voninitrd.img
Alle Kernel auflisten:
Aktuellen Kernel anzeigen:
Listen Sie alle Kernel AUSSER dem aktuellen auf:
Stellen Sie sicher, dass Ihr aktueller Kernel nicht auf dieser Liste steht.
Entferne alle Kernel AUSSER dem aktuellen:
Andere Sachen löschen:
Wenn Sie beim Installieren / Deinstallieren von Dateien immer noch einen Boot-Speicherplatzfehler feststellen, entfernen Sie direkt eines der ALTEN Images aus dem Verzeichnis / boot.
HINWEIS: Bitte überprüfen Sie das aktuelle Kernel-Image erneut, bevor Sie ein Image löschen.
quelle
linux-headers-*
sind keine Kerne. Kernel-Pakete sind die genanntenlinux-image-*
. Die genanntenlinux-headers-*
sind Entwicklungspakete zum Kompilieren von Kernel-Modulen: Sie befinden sich nicht im Verzeichnis / boot und sind nicht für die alltägliche Verwendung Ihres Systems erforderlich.Die Dateien , die Sie in / boot aufgelistet tun mehr altes Kernel - Images (enthalten
vmlinuz*
) und kompilierten initrd Bilder (initrd.img*
) für den Kern, das ist ein Zeichen dafür , dass Sie immer noch eine Menge alten Kernel - Pakete installiert haben.Sie sollten in der Lage sein, Ihre installierten Kernel mit aufzulisten
(Beachten Sie, dass dies wahrscheinlich auch Pakete zurückgibt, die keine Kernel sind.)
Normalerweise müssen nicht mehr als zwei Kernel installiert werden - der derzeit verwendete und der vorherige (als Fallback). So können Sie die älteren nacheinander entfernen:
Stellen Sie sicher, dass Sie "3.2.0-23-generic" durch die aktuelle Kernel-Version ersetzen, die Sie entfernen möchten! Entfernen Sie auch keine Pakete wie
linux-image-generic
. Sie müssen wirklich vorsichtig sein, um den aktuell ausgeführten Kernel nicht zu entfernen, da Sie sonst nicht booten können (Ubuntu kann Sie möglicherweise davor warnen oder nicht).Sie finden Ihren aktuell ausgeführten Kernel mit:
quelle
Ich hatte dieses Problem und mehr, als ich einige
initrd-img-xxx
Dateien manuell aus dem / boot entfernte und ein Problem damit hatte, dass diese alten Versionen weiterhin generiert wurden und den/boot
Ordner füllten . Um das Problem zu beheben, habe ich folgende Schritte ausgeführt:Sie bearbeiten eine Textkonfigurationsdatei als Superuser. Fügen Sie daher Folgendes in ein Terminal ein:
Suchen Sie die Zeile
update_initramfs=yes
und ändern Sie sie inupdate_initramfs=no
. Speichern und beenden Sie die Datei und führen Sie dann Folgendes aus:Das hat mein Problem gelöst. Das basierte auf diesem Blog
Hoffentlich sollte beim Neustart alles in Ordnung sein, und später können Sie versuchen, das
no
Zurück zuyes
in zu ändernupdate-initramfs.conf
.quelle
Ich zeige, dass diese Frage auch 2017 neue Kommentare und Antworten hat, aber eine Antwort fehlt, die ich hier für sehr nützlich halte:
Ubuntu als Desktop-Betriebssystem für den einfachen alltäglichen Gebrauch hat keinen Grund, mit einer separaten \ boot-Partition installiert zu werden, und so etwas wird einem "allgemeinen Benutzer" NICHT etwas bieten ... Eine Lösung ist also eine Neuinstallation ohne \ boot-Partition und so weiter So wirst du nie ein solches Problem haben
PS: Meine Antwort kann in der akzeptierten Antwort gelöscht oder hinzugefügt werden ... (Ich denke, es wird einigen Leuten auf diese Weise helfen)
quelle
Super hilfreiches Dienstprogramm , das Ihre Boot-Partition löscht
Benutzung auf eigene Gefahr, aber bei mir hat es geklappt:
quelle
In aptitude oder synaptic gibt es einen Abschnitt "alt oder manuell installiert verpackt". Dort sollten die alten Linux-Pakete sein.
quelle
Es gibt ein Bash-Skript, das ich unten geschrieben habe und das den Prozess ein bisschen benutzerfreundlicher macht.
YMMV - es wurde für Mint 14 gemacht. Ich lerne noch BASH, also ist es wahrscheinlich etwas klobig. Verwenden Sie auf eigenes Risiko, aber es funktioniert bei mir!
quelle
[Als AskUbuntu Noob kann ich erst einen Kommentar abgeben, wenn der Ruf gleich 50 ist.]
Mein Server hat das auch gemacht. Im wahrsten Sinne des Wortes hat keine der hier erwarteten Antworten funktioniert, da diese einen gewissen Arbeitsbereich beim / booten erfordern, damit sie ausgeführt werden können. Wenn die Startpartition voll ist, wird sie abrupt beendet, ohne dass eines der Images gelöscht wird.
Das einzige, was mir geholfen hat, war, das aktuelle Bild zu überprüfen und dann manuell
sudo rm filename
nach den ältesten Bilddateien zu suchen (jede hatte -3.16.0-30 im Namen). Sobald das erledigt war,sudo apt-get autoremove
hatte er den Wackelraum, den er brauchte, um seine Arbeit zu erledigen. Es wurden einige mit dieser Version verbundene Fehler hervorgehoben, zum Beispiel: "depmod: FATAL: konnte /boot/System.map-3.16.0-30-generic: Keine solche Datei oder kein solches Verzeichnis laden", aber das ist zu erwarten.Nach Abschluss des
df
Vorgangs wurden 42% für / boot zurückgegeben, um anzuzeigen, dass der Computer wieder funktionsfähig ist.quelle
apt-get
genügend Speicherplatz zum Weiterarbeiten vorhanden ist, und b) wenn einapt-get
Fehler auftritt, weil die Festplatte zu voll ist. Das ist der andere Beitrag.Ich habe dieses Bash-Skript geschrieben , um alte Kernel auf einmal selektiv zu löschen:
Alle Bash-Codes und Anweisungen sind im Link enthalten.
quelle
Speichern Sie dieses Skript unter
/usr/local/bin/remove_kernels.sh
(denken Sie daran, Ausführungsberechtigungen zu erteilensudo chmod 755 /usr/local/bin/remove_kernels.sh
):Um dann alle alten Kernel zu entfernen, tippe einfach:
sudo remove_kernels.sh
quelle
/ boot Partition kann manchmal etwas seltsam sein
Starten Sie nicht direkt, um Kernedateien zu löschen.
Schritte zum folgen
Überprüfen Sie, ob das aktuell installierte Betriebssystem vom Linux-System verwendet wird
uname -r
Dies sollte den Namen des aktuell auf dem System installierten Kernel-Images anzeigen
Beginnen Sie nun mit dem Löschen zusätzlicher Dateien, mit Ausnahme derjenigen, die auf Ihrem System installiert sind
apt-get remove linux-image-XXXXX
Entfernen Sie auch die Header-Datei
apt-get remove linux-headers-XXXXX
Es kann auch vorkommen, dass ein Fehler aufgetreten
apt
ist. Wechseln Sie in diesem Fall zu / bootcd /boot
Beginnen Sie mit dem manuellen Entfernen von Dateien, aber denken Sie auch sehr sorgfältig daran, die Kerndateien nicht
installed one's
von Ihrem System zu löschen .rm linux-image-XXXXX
rm linux-image-extra-XXXXXX
Nach dem Entfernen der korrekten Dateien wird die Bereinigung, falls vorhanden, teilweise installiert
apt-get -f install
Entfernen Sie zusätzliche Dateien, die sich dort befinden, als manuell bereinigte Startdateien
apt-get autoremove
Aktualisiere grub
update-grub
Zuletzt aktualisieren Sie Ihre Systempakete
apt-get update
quelle
Wenn Sie nicht mehr unbenutzte Dateien entfernen können und wenn Sie eine andere Partition mit / oder freiem Speicherplatz auf demselben Gerät haben, können Sie die Größe der / boot-Partition nach parted / gparted ändern . (Es ist auch auf den Installationsmedien enthalten.)
Warnung : Das Ändern der Partitionsgröße ist ein gefährlicher Vorgang. Speichern Sie Ihre wichtigen Daten auf einem anderen Datenträger, bevor Sie dies tun!
quelle