Ich habe eine Fehlermeldung erhalten, die erklärt, dass mein / boot voll ist. Der Versuch, alte Imagedateien zu bereinigen, scheint immer aufgrund von Fehlern bei vollem Datenträger oder Abhängigkeitsfehlern zu scheitern. Könnte jemand erklären, wo ich falsch liege.
$ sudo apt-get autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run ‘apt-get -f install’ to correct these.
The following packages have unmet dependencies.
linux-image-extra-3.13.0-44-generic : Depends: linux-image-3.13.0-44-generic but it is not installed
linux-image-extra-3.13.0-45-generic : Depends: linux-image-3.13.0-45-generic but it is not installed
linux-image-generic : Depends: linux-image-3.13.0-45-generic but it is not installed
E: Unmet dependencies. Try using -f.
$ ls /boot
abi-3.13.0-32-generic initrd.img-3.13.0-43-generic
abi-3.13.0-36-generic lost+found
abi-3.13.0-37-generic memtest86+.bin
abi-3.13.0-39-generic memtest86+.elf
abi-3.13.0-40-generic memtest86+_multiboot.bin
abi-3.13.0-43-generic System.map-3.13.0-32-generic
config-3.13.0-32-generic System.map-3.13.0-36-generic
config-3.13.0-36-generic System.map-3.13.0-37-generic
config-3.13.0-37-generic System.map-3.13.0-39-generic
config-3.13.0-39-generic System.map-3.13.0-40-generic
config-3.13.0-40-generic System.map-3.13.0-43-generic
config-3.13.0-43-generic vmlinuz-3.13.0-32-generic
grub vmlinuz-3.13.0-36-generic
initrd.img-3.13.0-32-generic vmlinuz-3.13.0-37-generic
initrd.img-3.13.0-36-generic vmlinuz-3.13.0-39-generic
initrd.img-3.13.0-37-generic vmlinuz-3.13.0-40-generic
initrd.img-3.13.0-39-generic vmlinuz-3.13.0-43-generic
initrd.img-3.13.0-40-generic
ich benutzte
kernelver=$(uname -r | sed -r 's/-[a-z]+//')
dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve $kernelver
bekommen
linux-headers-3.13.0-32
linux-headers-3.13.0-32-generic
linux-headers-3.13.0-36
linux-headers-3.13.0-36-generic
linux-headers-3.13.0-37
linux-headers-3.13.0-37-generic
linux-headers-3.13.0-39
linux-headers-3.13.0-39-generic
linux-headers-3.13.0-40
linux-headers-3.13.0-40-generic
linux-headers-3.13.0-44
linux-headers-3.13.0-44-generic
linux-headers-3.13.0-45
linux-headers-3.13.0-45-generic
linux-image-3.13.0-32-generic
linux-image-3.13.0-36-generic
linux-image-3.13.0-37-generic
linux-image-3.13.0-39-generic
linux-image-3.13.0-40-generic
Wählen Sie dann das erste zu entfernende Bild aus
$ sudo apt-get purge linux-image-3.13.0-32-generic
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies.
linux-image-extra-3.13.0-32-generic : Depends: linux-image-3.13.0-32-generic but it is not going to be installed
linux-image-extra-3.13.0-44-generic : Depends: linux-image-3.13.0-44-generic but it is not going to be installed
linux-image-extra-3.13.0-45-generic : Depends: linux-image-3.13.0-45-generic but it is not going to be installed
linux-image-generic : Depends: linux-image-3.13.0-45-generic but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
boot
package-management
disk-usage
Philip Howard
quelle
quelle
sudo apt-get autoremove
undls /boot
.uname -r
Befehl, um Ihre aktuelle Kernel-Version zu ermitteln, und versuchen Sie, einen anderen Kernel als diesen zu entfernen.Antworten:
In diesem Fall würde ich das
dpkg
Tool verwenden, um das Entfernen einiger Kernelpakete zu erzwingen. Dies wird nicht für die allgemeine Verwendung empfohlen und ist ein bisschen gefährlich . In diesem Fall können jedoch nicht erfüllte Abhängigkeiten hilfreich sein.Suchen Sie zunächst den Kernel, in dem das System gestartet wird. Die aktuell geladene. Öffnen Sie ein Terminal (STRG + ALT + T) und geben Sie den folgenden Befehl ein
Es wird Ihnen den geladenen Kernel anzeigen. Sie sollten NICHT versuchen, diesen zu entfernen.
Geben Sie dann den Befehl aus
Es werden alle installierten Images zurückgegeben. Wähle eins oder zwei und versuche sie zu entfernen. Versuchen Sie, sie mit Gewalt zu entfernen / zu reinigen. Zum Beispiel
Sie können dasselbe für andere Bilder tun, um Speicherplatz freizugeben.
Dann können Sie versuchen, die fehlenden Pakete zu installieren, oder
um zu versuchen, die Abhängigkeiten aufzulösen.
Geben Sie abschließend den Befehl "Alte Kernel bereinigen" ein
Mit dem obigen Befehl werden ALLE Kernel mit Ausnahme des derzeit geladenen Kernels entfernt.
Da Sie über eine separate / boot-Partition verfügen, müssen Sie deren Speicherplatz nachverfolgen und häufig bereinigen (die Häufigkeit hängt vom Speicherplatz von / boot ab).
quelle
dpkg
ich Kernel-Images mit entfernt hatte , musste ich laufen,sudo apt-get -f autoremove
um mich nichtapt-get
mehr über nicht erfüllte Abhängigkeiten zu beschweren. Ansonsten wurdesudo apt-get -f install
anscheinend immer wieder versucht, alle Kernel-Images, die ich entfernt hattedpkg
, neu zu installieren , was sich offensichtlich gerade wieder füllte/boot
.apt-get -f autoremove
erzwungenen Löschen und dem obigen Kommentar in @mdunsmuir möchten Sie weiterhin alle alten Kernel während der oben beschriebenen Bereinigungsvorgänge installieren. Gibt es eine Möglichkeit, es einfach anzuweisen, nicht verwandte Abhängigkeiten zu ignorieren und einen einzelnen, vollständigen alten Kernel zu entfernen?sudo dpkg --force-all -P linux-image-extra-3.13.0-32-generic
. Andernfalls hängen diese Extras immer noch vom tatsächlichen Image ab, und das-f
Flag würde dazu führen, dass das Image erneut installiert wird und nicht mehr genügend Speicherplatz zur Verfügung steht.Dies ist, was für mich auf Ubuntu 16.04 gearbeitet hat.
quelle
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:
quelle