Команда разработчиков Ubuntu Kernel каждый месяц выпускает новые обновления ядра, исправления ошибок и патчи системы безопасности. Если вы постоянный пользователь Ubuntu и регулярно обновляете свою систему, то в вашей системе постепенно накапливается больше количество неиспользованных старых ядер.
Таким образом, есть вероятность того, что загрузочный раздел /boot на жестком диске будет заполнен в определенный период времени. Если ваш раздел /boot полон, вы не сможете больше обновить систему или не можете даже обновить ядро до любой последней доступной версии. В этом случае очень важно регулярно обновлять ядро и программное обеспечение. Для этого вы должны иметь достаточно свободного пространства в разделе /boot. Чтобы система Ubuntu функционировала правильно, вы должны иметь достаточно свободного места в загрузочном /boot и корневом /root разделах.
Конечно, мы можем легко удалить накопившийся системный кэш, ненужные пакеты и зависимости с помощью следующих команд:
sudo apt-get autoremove
sudo apt-get autoclean
Но проблема в том, что это работает, только в том случае, если ядра устанавливались автоматически, или если вы устанавливали их с помощью Менеджера обновлений. C помощью этих команд не будут удалены ядра установленные вручную. Тем не менее, можно использовать некоторые сторонние программы, такие как Ubuntu Tweak для безопасного удаления неиспользуемых ядер, пакетов и их зависимостей, которые больше не нужны. Но Ubuntu Tweak это графическая программа, которая не может быть использована на серверах, которые не имеет графического режима.
Одним из разработчиков Ubuntu - Dustin Kirkland, отвечающим за развитие и стратегию продукта, была создана утилита purge-old-kernels, которая самым безопасным образом удаляет из системы неиспользованные пакеты ядер из десктопных и серверных систем Ubuntu.
Как использовать утилиту purge-old-kernels?
Утилита purge-old-kernels поставляется в Ubuntu 16.04 LTS по умолчанию, но прежде нужно установить утилиту byobu. В более старших версиях Ubuntu, вы должны прежде установить дополнительно утилиту bikeshed.
Для предыдущих дистрибутивов Ubuntu
sudo apt-get install bikeshed
В Ubuntu 16.04
sudo apt-get install byobu
Затем, чтобы удалить старые неиспользуемые ядра, выполните в терминале следующую команду:
sudo purge-old-kernels
Пример вывода команды:
Чтение списков пакетов ... Готово
Построение дерева зависимостей
Чтение информации о состоянии ... Готово
был автоматически установлен следующий пакет и больше не требуется:
linux-headers-4.4.0-21
Используйте sudo apt-get autoremove, чтобы удалить его.
Следующий пакеты, которые будут УДАЛЕНЫ:
linux-headers-4.4.0-21-generic* linux-image-4.4.0-21-generic* linux-image-extra-4.4.0-21-generic*обновлено 0, установлено 0 новых пакетов, 3 для удаления, и 0 пакетов обновлено.
После этой операции будет освобождено 224 Мб дискового пространства.
Вы хотите продолжить? [Y/n]
Введите Y и нажмите Enter, чтобы избавиться от неиспользуемого ядра и освободить место в системе.
Как видно, в приведенном выше выводе команды, старые ядра занимали 224 Мб на ж/диске моей Ubuntu 16.04.
Если нет старых ядер в вашей системе, использование этой утилиты отобразит следующее сообщение:
No kernels are eligible for removal (Нет ядер для удаления).
Безопасность использование данной утилиты заключается в том, что она никогда не удалит последнее установленное ядро, а если точнее, утилита purge-old-kernels удаляет все неиспользованные ядра, за исключением ДВУХ последних - актуальное и предыдущее. Но пользователь может переопределить это значение с помощью параметра --keep.
Например, чтобы удалить все старые ядра, за исключением 3-х последних, выполните следующую команду:
sudo purge-old-kernels --keep 3 -qy
Для получения более подробной информации об утилите purge-old-kernels, посмотрите мануал (руководство пользователя):
man purge-old-kernels
Источник: Dustin Kirkland blog
Удачи.