Всякий раз, когда я пытаюсь установить / удалить любое программное обеспечение, я получаю аналогичную ошибку, говоря, что «на устройстве нет места». Я попытался удалить старые ядра, но получил аналогичные ошибки.
gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-3.19.0-56-generic with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
dpkg: error processing package linux-image-extra-3.19.0-56-generic (--remove):
subprocess installed post-removal script returned error exit status 1
E: Sub-process /usr/bin/dpkg returned an error code (1)
Я попробовал sudo apt-get autoremove --purge, как предлагалось в Интернете, но без помощи.
Из-за этого я вообще не могу установить / удалить что-либо.
sourav@Valkyrie:~$ ls /boot
abi-3.19.0-56-generic initrd.img-4.4.0-34-generic
abi-3.19.0-61-generic initrd.img-4.4.0-34-generic.old-dkms
abi-3.19.0-64-generic lost+found
abi-3.19.0-65-generic memtest86+.bin
abi-4.4.0-34-generic memtest86+.elf
config-3.19.0-56-generic memtest86+_multiboot.bin
config-3.19.0-61-generic System.map-3.19.0-56-generic
config-3.19.0-64-generic System.map-3.19.0-61-generic
config-3.19.0-65-generic System.map-3.19.0-64-generic
config-4.4.0-34-generic System.map-3.19.0-65-generic
grub System.map-4.4.0-34-generic
initrd.img-3.19.0-56-generic vmlinuz-3.19.0-56-generic
initrd.img-3.19.0-56-generic.old-dkms vmlinuz-3.19.0-61-generic
initrd.img-3.19.0-61-generic vmlinuz-3.19.0-64-generic
initrd.img-3.19.0-64-generic vmlinuz-3.19.0-65-generic
initrd.img-3.19.0-65-generic vmlinuz-4.4.0-34-generic
sourav@Valkyrie:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 2.0G 0 2.0G 0% /dev
tmpfs 396M 6.4M 390M 2% /run
/dev/mapper/ubuntu--vg-root 913G 215G 652G 25% /
tmpfs 2.0G 248K 2.0G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda1 236M 228M 0 100% /boot
cgmfs 100K 0 100K 0% /run/cgmanager/fs
tmpfs 396M 64K 396M 1% /run/user/1000
Я вижу, что у вас есть старые ядра, похоже, из предыдущей версии Ubuntu. Я думаю, что autoremove не работает на ядрах с другим основным номером версии - по крайней мере, я видел случаи до этого.
У вас также очень маленький раздел /boot. В долгосрочной перспективе или даже сейчас, если это вариант, я бы рекомендовал вам переустановить и не создать отдельный загрузочный раздел, или если вы убедитесь, что он больше. Мой опыт в том, что установщик по умолчанию не создает его; в системе UEFI создается небольшой системный раздел EFI, установленный на /boot/efi, который не мешает пространству в /boot, где хранятся ядра.
В краткосрочной перспективе вы можете сделать пространство на удалив ядра самостоятельно. Вы можете удалить все следы ядра вручную, используя строку версии, если APT не может.
Сначала проверьте, какое ядро работает с командой
uname -r
, оно выведет строку версии, например 4.4.0-34-generic
Не удаляйте это ядро
Выберите одну из других версий, которые вы видите в ls /boot; начните с самого старого 3.19.0-56-generic и найдите все файлы, которые принадлежат ему:
locate -b -e 3.19.0-56-generic
Теперь вы можете удалить их, используя xargs
locate -b -e 3.19.0-56-generic | xargs -p sudo rm -r
Вы увидите список файлов, которые будут удалены, и вас попросят подтвердить. Если список выглядит нормально, введите y, и файлы будут удалены.
Убедитесь, что файлы были удалены:
sudo updatedb && locate -b -e 3.19.0-56-generic
Повторите это со следующим самым старым ядром. Очень желательно всегда сохранять запасное ядро, но я не думаю, что эти старые ядра будут вам очень полезны, и ваше текущее ядро, по-видимому, стабильно, поэтому вы можете либо продолжать, пока не будете иметь только текущий версию ядра (обозначенную uname -r) или только две версии ядра в /boot, затем запустите
sudo update-grub
sudo apt update
sudo apt upgrade
И, скрестив пальцы, update-initramfs должен работать нормально. Чтобы поддерживать ситуацию, каждый раз, когда вы получаете новое ядро, запустите
sudo apt autoremove
Я вижу, что у вас есть старые ядра, похоже, из предыдущей версии Ubuntu. Я думаю, что autoremove не работает на ядрах с другим основным номером версии - по крайней мере, я видел случаи до этого.
У вас также очень маленький раздел /boot. В долгосрочной перспективе или даже сейчас, если это вариант, я бы рекомендовал вам переустановить и не создать отдельный загрузочный раздел, или если вы убедитесь, что он больше. Мой опыт в том, что установщик по умолчанию не создает его; в системе UEFI создается небольшой системный раздел EFI, установленный на /boot/efi, который не мешает пространству в /boot, где хранятся ядра.
В краткосрочной перспективе вы можете сделать пространство на удалив ядра самостоятельно. Вы можете удалить все следы ядра вручную, используя строку версии, если APT не может.
Сначала проверьте, какое ядро работает с командой
uname -r
, оно выведет строку версии, например 4.4.0-34-generic
Не удаляйте это ядро
Выберите одну из других версий, которые вы видите в ls /boot; начните с самого старого 3.19.0-56-generic и найдите все файлы, которые принадлежат ему:
locate -b -e 3.19.0-56-generic
Теперь вы можете удалить их, используя xargs
locate -b -e 3.19.0-56-generic | xargs -p sudo rm -r
Вы увидите список файлов, которые будут удалены, и вас попросят подтвердить. Если список выглядит нормально, введите y, и файлы будут удалены.
Убедитесь, что файлы были удалены:
sudo updatedb && locate -b -e 3.19.0-56-generic
Повторите это со следующим самым старым ядром. Очень желательно всегда сохранять запасное ядро, но я не думаю, что эти старые ядра будут вам очень полезны, и ваше текущее ядро, по-видимому, стабильно, поэтому вы можете либо продолжать, пока не будете иметь только текущий версию ядра (обозначенную uname -r) или только две версии ядра в /boot, затем запустите
sudo update-grub
sudo apt update
sudo apt upgrade
И, скрестив пальцы, update-initramfs должен работать нормально. Чтобы поддерживать ситуацию, каждый раз, когда вы получаете новое ядро, запустите
sudo apt autoremove