Для LVM, зашифрованных или ограниченных по размеру хранилища систем вам необходимо периодически удалять старые, неиспользуемые ядра операционной системы, чтобы не получать ошибки о нехватке места (это так же не даёт нормально обновлять и остальные пакеты в некоторых случаях). В этом посте я покажу несколько способов как можно легко почистить /boot сектор.

Удаление старых ядер можно сделать самостоятельно не боясь убить систему, или можно заставить систему саму удалять ненужные ядра. Начнём с этого, автоматического способа, который работает как на десктоп версии так и с серверной версией Ubuntu.

Для начала запустим консоль комбинацией горячих клавиш Ctrl+Alt+T и следуйте следующим шагам:

Удаление автоматически установленных ядер:

  1. Для удаления ядер, которые были автоматически установлены при обновлении системы в терминале наберите команду:
sudo apt autoremove --purge

Далее от вас потребуется пароль от пользователя с правами Sudo из под которого запускается команда. После этого старые ядра должны быть удалены, которые не используются.

autoremove

  1. Для включения автоматического удаления неиспользуемых старых ядер нужно сделать следующее:

Включение автоматического удаления ядер может вызвать проблемы если вдруг с пакетным менеджером случится беда и он вдруг затупит, баг известный, можете посмотреть информацию о нём на баг трекере Ubuntu.

Запустите команду ниже для включения режима unattended upgrades. Для Desktop версии Ubuntu 16.04 эта опция включена по умолчанию.

sudo dpkg-reconfigure unattended-upgrades

Отредактируйте конфигурационный файл через команду (для начала установите программу gksu через sudo apt install gksu):

gksudo gedit /etc/apt/apt.conf.d/50unattended-upgrades

После открытия файла раскомментируйте строку из примера ниже и установите значение в true:

//Unattended-Upgrade::Remove-Unused-Dependencies "false";

Должно выглядеть как-то так:

automatic-remove

Удаление ядер установленных вручную:

Если вы устанавливаете последние ядра из Kernel PPA, или собираете ядра сами с вашими патчами, вам может помочь скрипт purge-old-kernels, который позволяет с лёгкостью находить и удалять неиспользуемые старые ядра.

  1. Данный скрипт доступен в рамках пакета byobu - установите его командой из примера ниже:
sudo apt install byobu
  1. Теперь вы можете периодически запускать команду из примера ниже, чтобы чистить систему от старых kernels:
sudo purge-old-kernels

purge-old-kernel-script

Удаление старых Kernels через DPKG

Если ваш /boot сектор уже забит и не позволяет установить новые пакеты, например для использования скрипта из примера выше, и apt не может решить сломанные зависимости, в этом примере вы сможете освободить место через DPKG:

  1. Выполните команду для того, чтобы узнать какое ядро сейчас используется И НЕ УДАЛЯЙТЕ ЕГО!:
uname -r
  1. Получите список всех ядер за исключением текущего загруженного:
dpkg -l | tail -n +6 | grep -E 'linux-image-[0-9]+' | grep -Fv $(uname -r)

Пример вывода команды:

rc  linux-image-4.4.0-15-generic               4.4.0-15.31                                         amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-18-generic               4.4.0-18.34                                         amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-4.6.0-040600rc3-generic        4.6.0-040600rc3.201604120934                        amd64        Linux kernel image for version 4.6.0 on 64 bit x86 SMP

В данном выводе может быть 3 статуса образов ядер:

  • rc: - означает, что ядро уже удалено.
  • ii: - означает, что ядро установлено и может быть удалено.
  • iU: - ЭТО НЕЛЬЗЯ УДАЛЯТЬ. Это означает, что ядро не установлено, но требуется его установка в apt.
  1. Удаляем старые ядра со статусом ii, в примере ниже это linux-image-4.4.0-18-generic:
sudo dpkg --purge linux-image-4.4.0-18-generic

Если команда завершается с ошибкой, удалите зависимые пакеты, которые будут выведены, командой sudo dpkg --purge PACKAGE.

Так же попробуйте удалить пакеты заголовочных файлов для старых ядер (Если команда выводит ошибки можете не обращать на это внимание):

sudo dpkg --purge linux-image-4.4.0-18-header linux-image-4.4.0-18

Теперь можно исправвить зависимости командой ниже:

sudo apt -f install

Ну, собственно и всё, профит.
Примеры найдены на просторах буржуйского интернета.

Комментарии