Если закончилось место в boot разделе | Zhbert’s Home
Zhbert's Home
Домашняя страничка Zhbert'а

Если закончилось место в boot разделе

Иногда бывает, что в разеде /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.