Ich weiß, dass diese Frage schon oft gestellt wurde, aber bei mir ist sie wohl ein bisschen anders.
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 224G 5.2G 208G 3% /
udev 1.9G 4.0K 1.9G 1% /dev
tmpfs 777M 260K 777M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 1.9G 0 1.9G 0% /run/shm
/dev/sda2 90M 88M 0 100% /boot
/dev/sda6 1.9G 514M 1.3G 29% /tmp
Meine Bootpartition ist voll.
Aktueller Kernel:
# uname -r
3.2.0-35-generic
Alle Kernel:
# dpkg --list | grep linux-image
ii linux-image-3.2.0-32-generic 3.2.0-32.51 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii linux-image-3.2.0-34-generic 3.2.0-34.53 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii linux-image-3.2.0-35-generic 3.2.0-35.55 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
iF linux-image-3.2.0-37-generic 3.2.0-37.58 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
iF linux-image-3.2.0-38-generic 3.2.0-38.60 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
iU linux-image-generic 3.2.0.37.45 Generic Linux kernel image
Also dachte ich daran, den 3.2.0.32-generischen Kernel zu entfernen mit:
# sudo apt-get purge linux-image-3.2.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-generic : Depends: linux-headers-generic (= 3.2.0.37.45) but 3.2.0.38.46 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
Kein Erfolg.
Wenn ich es versuche apt-get -f install
scheitert es auch:
# apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
linux-headers-3.2.0-34 linux-headers-3.2.0-35 linux-headers-3.2.0-34-generic linux-headers-3.2.0-35-generic
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
linux-generic linux-image-generic
The following packages will be upgraded:
linux-generic linux-image-generic
2 upgraded, 0 newly installed, 0 to remove and 9 not upgraded.
5 not fully installed or removed.
Need to get 0 B/4,334 B of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
Setting up initramfs-tools (0.99ubuntu13.1) ...
update-initramfs: deferring update (trigger activated)
Setting up linux-image-3.2.0-37-generic (3.2.0-37.58) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
The link /initrd.img is a dangling linkto /boot/initrd.img-3.2.0-38-generic
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.2.0-37-generic /boot/vmlinuz-3.2.0-37-generic
update-initramfs: Generating /boot/initrd.img-3.2.0-37-generic
gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-3.2.0-37-generic with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-3.2.0-37-generic.postinst line 1010.
dpkg: error processing linux-image-3.2.0-37-generic (--configure):
subprocess installed post-installation script returned error exit status 2
Setting up linux-image-3.2.0-38-generic (3.2.0-38.60) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
The link /initrd.img is a dangling linkto /boot/initrd.img-3.2.0-37-generic
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.2.0-38-generic /boot/vmlinuz-3.2.0-38-generic
update-initramfs: Generating /boot/initrd.img-3.2.0-38-generic
gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-3.2.0-38-generic with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-3.2.0-38-generic.postinst line 1010.
dpkg: error processing linux-image-3.2.0-38-generic (--configure):
subprocess installed post-installation script returned error exit status 2
dpkg: dependency problems prevent configuration of linux-image-generic:
linux-image-generic depends on linux-image-3.2.0-37-generic; however:
Package linux-image-3.2.0-37-generic is not configured yet.
dpkg: error processing linux-image-generic (--configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of linux-generic:
linux-generic depends on linux-image-generic (= 3.2.0.37.45); however:
Package linux-image-generic is not configured yet.
linux-generic depends on linux-headers-generic (= 3.2.0.37.45); however:
Version of linux-headers-generic on system is 3.2.0.38.46.
dpkg: error processing linux-generic (--configure):
dependency problems - leaving unconfigured
Processing triggers for initramfs-tools ...
No apport report written because the error message indicates its a followup error from a previous failure.
No apport report written because MaxReports is reached already
update-initramfs: Generating /boot/initrd.img-3.2.0-35-generic
gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-3.2.0-35-generic with 1.
dpkg: error processing initramfs-tools (--configure):
subprocess installed post-installation script returned error exit status 1
No apport report written because MaxReports is reached already
Errors were encountered while processing:
linux-image-3.2.0-37-generic
linux-image-3.2.0-38-generic
linux-image-generic
linux-generic
initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)
Jede Hilfe wäre wirklich dankbar.
Update: Ich habe:
sudo rm /boot/*-3.2.0-32-generic /boot/*-3.2.0-34-generic
Danach folgendes Problem mit apt-get -f install
:
root@localhost:/# apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
linux-generic
The following packages will be upgraded:
linux-generic
1 upgraded, 0 newly installed, 0 to remove and 9 not upgraded.
1 not fully installed or removed.
Need to get 0 B/1,722 B of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
dpkg: dependency problems prevent configuration of linux-generic:
linux-generic depends on linux-image-generic (= 3.2.0.37.45); however:
Version of linux-image-generic on system is 3.2.0.38.46.
linux-generic depends on linux-headers-generic (= 3.2.0.37.45); however:
Version of linux-headers-generic on system is 3.2.0.38.46.
dpkg: error processing linux-generic (--configure):
dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
Errors were encountered while processing:
linux-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)
Antworten:
Sie können apt-get nicht verwenden, wenn Ihr Kernel veraltet ist.
Verwenden Sie, um
ls
zu sehen, was sich in dem Ordner befindet. Entfernen Sie dann die ältesten ein oder zweiDann können Sie entweder wie in
oder einfach weiter mit rm.
Sie sollten auch,
sudo update-grub
wenn Sie fertig sindquelle
sudo apt-get -f install
startete dann neu, um sicherzustellen, dass alles in Ordnung ist, und entfernte den Rest mit,apt autoremove
wie in der vorherigen Befehlsausgabe vorgeschlagen.Anscheinend funktioniert dies:
Laut
apt-get
Manpage:3.16.0-39 ist der, den ich installieren wollte, aber fehlgeschlagen ist, weil / boot voll war. 3.16.0-38 ist meine aktuelle Version. Sie sehen, dass -38 übersprungen wurde.
quelle
autoremove
.Führen Sie in einem Terminal den folgenden Befehl aus:
Dieser Befehl listet alle derzeit installierten Linux-Kernel auf, wählt dann alle derzeit nicht verwendeten aus und entfernt sie.
quelle
Wenn der obige Befehl ohne "sudo apt-get -y purge" mit Ihrem linux-libc-dev: amd64 übereinstimmt, können Sie dem regulären Ausdruck ein Semikolon hinzufügen, um es nicht einzuschließen:
Stellen Sie jetzt sicher, dass es gut aussieht, und fügen Sie "sudo apt-get -y purge" hinzu.
quelle
Versuchen Sie dies für Ubuntu 12.04
sudo apt-get purge linux-image-[kernel version]
Dadurch werden alle Kernelversionen gelöscht. Wenn Ihr Boot-Ordner viele Kernel hat, vergessen Sie nicht, grub zu aktualisieren und Ihr System neu zu starten
Ex. sudo apt-get purge linux-image-3.11.6 *
quelle
Viele Antworten geben an, "apt autoremove" zu verwenden, aber das funktioniert möglicherweise nicht, wenn / boot voll ist, da apt versucht, vor dem Entfernen Kernel hinzuzufügen.
Next apt autoremove entfernt keine in /etc/apt/apt.conf.d/01autoremove-kernels erwähnten Kernel, daher müssen wir das korrigieren.
Hier ist der Prozess, der für mich funktioniert hat.
Entfernen Sie unerwünschte Kernel-Konfigurationsdateien.
sudo dpkg --purge $ (COLUMNS = 200 dpkg -l | grep "linux-image-extra" | grep "^ rc" | tr -s '' | cut -d '' -f 2)
Aktualisieren Sie /etc/apt/apt.conf.d/01autoremove-kernels, indem Sie ... ausführen.
sudo /etc/kernel/postinst.d/apt-auto-removal
Hoffentlich funktioniert apt autoremove.
sudo apt autoremove --purge
Andernfalls sollten Sie in der Lage sein, sehr alte und nicht verwendete Kernel manuell aus / boot zu entfernen.
Finden Sie zuerst heraus, welchen Kernel Sie ausführen.
uname -r
Entfernen Sie nicht Ihren aktuellen oder vorherigen Kernel.
sudo rm /boot/initrd.img-V.XX.Y-ZZ-generic
Jetzt sollten Sie genügend Platz haben, um das automatische Entfernen von apt erneut zu versuchen. Wenn nicht, entfernen Sie einen anderen sehr alten Kernel. Natürlich immer aktuell und am ältesten.
quelle
Ich hoffe das kann helfen:
ich lösche normalerweise alte kerne mit ubuntu-tweak janitor, netter GUI und easy :)
Klicken Sie auf "System" und es wird eine Liste der alten Kernel angezeigt. Klicken Sie einfach darauf und bereinigen Sie sie
quelle