Ошибка переполнения диска: apt-get не может установить или удалить
Я столкнулся со следующей ошибкой при обновлении сервера Ubuntu 12.04. Сейчас apt-get
не может установить или удалить какой-либо пакет.
Распаковка linux-headers-3.13.0-62 (из.../linux-headers-3.13.0-62_3.13.0-62.102~precision1_all.deb) ... dpkg: обработка ошибок /var/cache/apt/archives/linux-headers-3.13.0-62_3.13.0-62.102~precise1_all.deb (--unpack): невозможно создать `/usr/src/linux-headers-3.13.0-62/arch/arm/include/asm/ptrace.h.dpkg-new' (при обработке `./usr/src/linux-headers-3.13.0-62/arch/arm/include/asm/ptrace.h'): на устройстве не осталось места Не написано отчёта apport, потому что сообщение об ошибке указывает на ошибку переполнения диска dpkg-deb: ошибка: вставка подпроцесса была прервана по сигналу (сломанный канал) При обработке возникли ошибки: /var/cache/apt/archives/linux-headers-3.13.0-62_3.13.0-62.102~precise1_all.deb E: Подпроцесс / usr / bin / dpkg вернул код ошибки (1)
Хотя у меня нет свободного места на диске,
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 6.8G 4.7G 1.8G 69% /
Во всяком случае, мои иноды полны,
# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 458752 455214 3538 100% /
У меня более десяти старых ядер, но я не могу удалить их как apt-get
Сам хром. Поэтому я не могу следить за этим постом, в котором сообщается о подобной проблеме
Кажется, что единственный вариант - удалить несколько старых ядер вручную. Это вызовет какие-либо проблемы?
Есть ли лучший выход? Могу ли я использовать зарезервированное пространство для root на данный момент и удалить старые ядра?
2 ответа
Я знаю, что этот пост немного устарел, но я нашел здесь ответ для любого, кто может наткнуться на этот пост: https://help.ubuntu.com/community/RemoveOldKernels
В случае, если эта ссылка не работает, вот соответствующий фрагмент:
Безопасное удаление старых ядер
Для пользователей систем LVM, зашифрованных систем или систем с ограниченным хранилищем наиболее частой проблемой является то, что раздел /boot просто заполнен. Диспетчер пакетов не может установить ожидающее обновление из-за недостатка места. Кроме того, apt-get не может удалить пакет из-за нарушенной зависимости.
Эта проблема может быть быстро и легко устранена из оболочки. Просто определите одно или два старых ядра, которые нужно удалить вручную, что обеспечит диспетчеру пакетов достаточно места для установки обновления в очереди.
$ sudo rm -rv ${TMPDIR:-/var/tmp}/mkinitramfs-*
## In Ubuntu 16.04 and earlier there may be leftover temporary
## files to delete.
## See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=814345
$ uname -r ## This command identifies the currently-running kernel
4.2.0-21-generic ## This is the current kernel.
## DO NOT REMOVE it!
$ dpkg -l | tail -n +6 | grep -E 'linux-image-[0-9]+' | grep -Fv $(uname -r)
## This command lists all the kernels excluding the booted
## kernel in the package database, and their status.
rc linux-image-4.2.0-14-generic ## The oldest kernel in the database
## Status 'rc' means it's already been removed
ii linux-image-4.2.0-15-generic ## The oldest installed kernel. Eligible for removal.
## Status 'ii' means Installed.
ii linux-image-4.2.0-16-generic ## Another old installed kernel. Eligible for removal
ii linux-image-4.2.0-18-generic ## Another old installed kernel. Eligible for removal
ii linux-image-4.2.0-19-generic ## The previous good kernel. Keep
iU linux-image-4.2.0-22-generic ## DO NOT REMOVE. Status 'iU' means it's not installed,
## but queued for install in apt.
## This is the package we want apt to install.
## Purge the oldest kernel package using dpkg instead of apt.
## First you need to remove the image initrd.img file manually
## due to Bug #1678187.
$ sudo update-initramfs -d -k 4.2.0-15-generic
$ sudo dpkg --purge linux-image-4.2.0-15-generic linux-image-extra-4.2.0-15-generic
## If the previous command fails, some installed package
## depends on the kernel. The output of dpkg tells the name
## of the package. Purge it first.
## Also purge the respective header package.
$ sudo dpkg --purge linux-headers-4.2.0-15-generic
## Try also purging the common header package.
$ sudo dpkg --purge linux-headers-4.2.0-15
## Do not worry, if the previous command fails.
$ sudo apt-get -f install ## Try to fix the broken dependency.
Я последовал за этим с:
sudo apt-get autoremove --purge
Теперь я нашел выход из ситуации и удалил пару старых ядер из /usr/src
чтобы избавиться от ситуации. К счастью, все прошло хорошо и снова начало работать.
Настоятельно рекомендуется выполнить резервное копирование перед удалением старых ядер на производственном компьютере.