18 июня 2016

Самый безопасный способ удаления старых ядер в Ubuntu

Команда разработчиков 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

Удачи.

38 комментариев :

  1. У меня не работает. пишет: No kernels are eligible for removal. Хотя много старых ядер в системе.
    Я по старинке удаляю все накопившиеся ядра одной, хоть и длинной но надежной и проверенной временем командой:
    dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge

    ОтветитьУдалить
    Ответы
    1. А система какая? И устанавливал ли пере этим дополнительные утилиты byobu или bikeshed.

      sudo apt-get install bikeshed

      или

      sudo apt-get install byobu

      Удалить
    2. Систему ставил с MinimalCD (Ubuntu 16.04) А потом накатил Cinnamon. Может в этоv проблема?

      Удалить
    3. Скорее всего. Гибриды - не самое лучшее решение для рабочей и безглючной системы.

      Удалить
    4. Да к сожалению у меня тоже самое, вспомнил для проверки зашёл в синаптик ,и все ядра на месте , удалил ядра через синаптик, без обид может это только у меня , но чё то здесь не так

      Удалить
    5. Да уж... Вы знаете толк в извращениях.) А Unity или Linux Mint Cinnamon чем не угодили?;)

      Удалить
    6. Сударь, не понимаю о каких таких извращениях вы изволите говорить? Мне удобней удалить все старые ядра одной командой, без установки дополнительных утилит. Особенно, если по работе имеются десятки компьютеров с различными версиями Linux.
      >>А Unity или Linux Mint Cinnamon чем не угодили?;)<<
      Да будет вам известно, многоуважаемый Сергей, что Unity — свободная оболочка для среды рабочего стола GNOME. А Linux Mint Cinnamon — дистрибутив операционной системы Linux. Как они связаны между собой, и почему именно они должны мне "угодить" ума не приложу.

      "Кто на ком стоял? - Крикнул Филипп Филиппович, - потрудитесь излагать ваши мысли яснее."©

      Напоследок. Позвольте мне самому решать какую OS и каким "извращенным" образом устанавливать. Я вполне самостоятельный пользователь Unix-like систем с 2006г. И если устанавливаю систему с MinimalCD, поверьте, знаю что делаю.
      P.S. Linux в отличии от Win и тем более OS X, обладает поистине огромным потенциалом и большими возможностями. Только не надо мне ничего навязывать коллега. Хорошо?

      Удалить
    7. "Систему ставил с MinimalCD (Ubuntu 16.04) А потом накатил Cinnamon" Это разве не извращение? Ладно, умного учить - только портить. Удаляюсь.)))

      Удалить
    8. Сергей Вам иногда лучше прмолчать, за умного сойдешь. Если не в теме, не пиши глупости. Удались лучше навсегда.)))

      Удалить
    9. Просто не люблю в дебри лезть. Особенно, когда "тема" выеденного яичка не стоит.)

      Удалить
    10. На том и закончили, удачи!

      Удалить
    11. Гибрид это Ubuntu,а по сути гибридов не существует, пользователь в праве сам решать какой софт ему ставить, и глючит софт или система,гибридом система становится токда-когда пользователь начинает устанавливать приложения отличные от идущих в предустановленной версией разработчиками.

      Удалить
    12. Два чая господину Eduards Shlapins.

      Удалить
  2. sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1)\
    я это использую и нормально все..

    ОтветитьУдалить
    Ответы
    1. ruslan@ruslan-System-Product-Name:~$ uname -romi
      4.6.0-040600-generic x86_64 x86_64 GNU/Linux
      У меня это последнее ядро , кроме него остались в синаптике куча старых, спасибо что напомнили поудалять их,
      Согласен с вами тоже в помощь ,только у меня в конце вот этот слеш \ не ставлю
      sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1)

      Удалить
    2. Ну и ещё sudo apt-get autoremove после выше описаного сделал , и всё ядер нет, но кстати счас через синоптик удалял, так быстрей ,просто комадны не всегда под рукой

      Удалить
  3. Если я постоянный пользователь Линукс(и Убунты в том числе) то я удаляю старое ядро после нескольких дней тестирования нового))) а программа полезная, спасибо.

    ОтветитьУдалить
    Ответы
    1. Хотя в 14.04 надо кучу хрени всякой доставить)) Обойдусь как-нибудь.

      обновлено 0, установлено 65 новых пакетов, для удаления отмечено 0 пакетов, и 1 пакетов не обновлено.
      Необходимо скачать 58,8 MБ архивов.
      После данной операции, объём занятого дискового пространства возрастёт на 101 MB.
      Хотите продолжить? [Д/н] n

      Удалить
  4. $ man purge-old-kernels
    Нет справочной страницы для purge-old-kernels

    $ sudo apt install purge-old-kernels
    Чтение списков пакетов… Готово
    Построение дерева зависимостей
    Чтение информации о состоянии… Готово
    E: Не удалось найти пакет purge-old-kernels

    $ uname -romi
    4.4.0-24-generic x86_64 x86_64 GNU/Linux

    Стоит Ubuntu 16.04 Gnome. В её составе нет данного приложения. В источниках тоже ничего нет.

    ОтветитьУдалить
    Ответы
    1. В 16.04 необходимо установить пакет byobu
      sudo apt-get install byobu

      Удалить
  5. А мне понравился способ, после установки Лайта с ядром 4.2, обновил до 4.6 и применил данный способ, после нехитрых манипуляций, было предложено удалить 4.2 =) удалил не задумываясь. Всё отлично работает!

    ОтветитьУдалить
  6. > Утилита purge-old-kernels поставляется в Ubuntu 16.04 LTS по умолчанию.
    > В более старших версиях Ubuntu,вы должны прежде установить
    > дополнительные утилиты byobu или bikeshed.

    Прошу прощения, но это не совсем так. Цитата из блога автора утилиты:

    > You'll already have the purge-old-kernels command in Ubuntu 16.04 LTS (and later),
    > as part of the byobu package.
    > In earlier releases of Ubuntu, you might need to install bikeshed...

    То есть, в Ubuntu 16.04+ этой утилиты по умолчанию нет. Для её появления необходимо установить пакет byobu. А в более ранних версиях Ubuntu нужен пакет bikeshed.

    Утилита удобная. Спасибо за информацию!

    ОтветитьУдалить
  7. А на Хubuntu 16.04 LTS эту утилиту установить можно?

    ОтветитьУдалить
    Ответы
    1. А почему нет-то? Попробуйте sudo apt-get install byobu и сами увидите.

      Удалить
    2. Максим спасибо, получилось, всё вычистил. Отличная утилита!

      Удалить
  8. sudo apt autoremove
    sudo apt autoclean
    Интересно только у меня в 16.04 эти команды работают только после sudo su?

    ОтветитьУдалить
  9. sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1) --assume-yessudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1) --assume-yes Самая лчщая команда удаления

    ОтветитьУдалить
  10. Почистил на системнике, даже не подозревал что 2.19 со времен Нади осталось, еще нашел 3.12 и 3.16, сейчас на родном 3.19 Mint 17.3/ выше 3.19 решил не лезть, пробовал, откатывался. То одно не хочет работать, то другое,

    ОтветитьУдалить
  11. Все сработало. Наконец-то есть что-то, благодаря чему не надо скрещивать пальцы :) Как всегда актуально Владимир, спасибо!

    ОтветитьУдалить
  12. Можно конечно встать и апплодировать стоя.Но.Можно и просто не ставать. Вариантов всегда два. Результат , правда всегда один..Владимр, Вы не нуждаетесь в апплодисментах..Браво..

    ОтветитьУдалить
  13. Ubuntu Tweak чем плох для удаления старых ядер?

    ОтветитьУдалить
    Ответы
    1. ==Ubuntu Tweak чем плох для удаления старых ядер?== Никто и не говорит, что Ubuntu Tweak - плох. Просто статью нужно внимательней читать:
      "Тем не менее, можно использовать некоторые сторонние программы, такие как Ubuntu Tweak для безопасного удаления неиспользуемых ядер, пакетов и их зависимостей, которые больше не нужны. Но Ubuntu Tweak это графическая программа, которая не может быть использована на серверах, которые не имеет графического режима."

      Удалить
    2. В общем-то, конечно, ничем. Кроме тех обстоятельств, что:
      1) purge-old-kernels - утилита непосредственно от разработчиков системы, чего не скажешь об Ubuntu Tweak. Какая-никакая, а гарантия безопасности.
      2) Ubuntu Tweak в дистрибутивах вроде Xubuntu, Lubuntu, UbuntuMate и тому подобных, по сути, смотрится как образцовое "нинужно" :). А старые ядра нужно чистить и там.
      3) Ubuntu Tweak сегодня есть, а завтра заброшен. Разработчик уже не раз терял интерес к проекту на моей памяти :).

      Удалить
    3. Действительно не внимательно читал.

      Удалить
  14. Спасибо,хорошая утилита,в Neon KDE работает все четко...

    ОтветитьУдалить
  15. Нафига это надо если autoremove удаляет все старые ядра кроме последних двух

    ОтветитьУдалить

Если у Вас появились вопросы или мнения, вы можете задать или оставить их здесь.
Спам и флуд будут жёстко караться вечной блокировкой их оставляющих!



If You have any questions or opinions about, just leave'em here.
Spamers & flooders will be blocked forever!!!