Иногда бывает, что в разеде /boot
заканчивается место из-за большого количества старых ядер. Решить эту проблему можно, удалив старые ядра.
Как понять, что место кончилось
Понять, что там кончилось место, можно по выхлопу apt
, который не сможет установить новое ядро вместе с обновлением:
dpkg: ошибка при обработке архива /var/cache/apt/archives/linux-modules-5.13.0-25-generic_5.13.0-25.26~20.04.1_amd64.deb (--unpack):
не удалось скопировать извлечённые данные «./boot/System.map-5.13.0-25-generic» в «/boot/System.map-5.13.0-25-generic.dpkg-new»: ошибка записи (На устройстве не осталось свободного места)
Отчёт apport не записан, так как получено сообщение об ошибке о нехватке места на диске
dpkg-deb: ошибка: вставка subprocess was killed by signal (Обрыв канала)
Решаем проблему
Смотрим все установленные ядра:
dpkg -l linux-image\*
В результате покажется список все ядер, которые есть в /boot
:
Желаемый=неизвестно[u]/установить[i]/удалить[r]/вычистить[p]/зафиксировать[h]
| Состояние=не[n]/установлен[i]/настроен[c]/распакован[U]/частично настроен[F]/
частично установлен[H]/trig-aWait/Trig-pend
|/ Ошибка?=(нет)/требуется переустановка[R] (верхний регистр
в полях состояния и ошибки указывает на ненормальную ситуацию)
||/ Имя Версия Архитектура Описание
+++-======================================-=====================-============-=======================================
un linux-image <нет> <нет> (описание недоступно)
rc linux-image-5.11.0-27-generic 5.11.0-27.29~20.04.1 amd64 Signed kernel image generic
rc linux-image-5.11.0-36-generic 5.11.0-36.40~20.04.1 amd64 Signed kernel image generic
rc linux-image-5.11.0-37-generic 5.11.0-37.41~20.04.2 amd64 Signed kernel image generic
ii linux-image-5.11.0-38-generic 5.11.0-38.42~20.04.1 amd64 Signed kernel image generic
ii linux-image-5.11.0-40-generic 5.11.0-40.44~20.04.2 amd64 Signed kernel image generic
ii linux-image-5.11.0-41-generic 5.11.0-41.45~20.04.1 amd64 Signed kernel image generic
ii linux-image-5.11.0-43-generic 5.11.0-43.47~20.04.2 amd64 Signed kernel image generic
ii linux-image-5.11.0-44-generic 5.11.0-44.48~20.04.2 amd64 Signed kernel image generic
ii linux-image-5.11.0-46-generic 5.11.0-46.51~20.04.1 amd64 Signed kernel image generic
in linux-image-5.13.0-25-generic <нет> amd64 (описание недоступно)
iU linux-image-generic-hwe-20.04 5.13.0.25.26~20.04.12 amd64 Generic Linux kernel image
un linux-image-unsigned-5.11.0-27-generic <нет> <нет> (описание недоступно)
un linux-image-unsigned-5.11.0-36-generic <нет> <нет> (описание недоступно)
un linux-image-unsigned-5.11.0-37-generic <нет> <нет> (описание недоступно)
un linux-image-unsigned-5.11.0-38-generic <нет> <нет> (описание недоступно)
un linux-image-unsigned-5.11.0-40-generic <нет> <нет> (описание недоступно)
un linux-image-unsigned-5.11.0-41-generic <нет> <нет> (описание недоступно)
un linux-image-unsigned-5.11.0-43-generic <нет> <нет> (описание недоступно)
un linux-image-unsigned-5.11.0-44-generic <нет> <нет> (описание недоступно)
un linux-image-unsigned-5.11.0-46-generic <нет> <нет> (описание недоступно)
un linux-image-unsigned-5.13.0-25-generic <нет> <нет> (описание недоступно)
Смотрим на все номера ядер, установленных в системе. Оставить можно два последних, чтобы хоть что-то было при загрузке.
ВАЖНО Ни в коем случае нельзя перезагружаться до завершения всех действий.
Удаляем руками все старые ядра:
sudo rm /boot/{vmlinuz,initrd.img,abi}-5.11.0-{27,36,37,38,40,41,43}-generic
После завершения команды исправляем все с помощью apt
:
sudo apt install -f
В идеале, он поставит то, что не смог в самом начале. Далее можно еще раз обновить систему с помощью upgrade
.