Удаление старых ядер Ubuntu

Удаление неиспользуемых ядер в Linux

Довольно часто некоторые начинающие (и наблюдательные) пользователи Linux-систем замечают, что со временем на системных разделах заметно уменьшается объём свободного дискового пространства. Причём такие изменения происходят совсем не от установки дополнительного программного обеспечения (ПО). А в результате обновлений системы. Малоопытные пользователи сетуют: ситуация, схожая с тем, как в системах Windows. Новые обновления занимают значительный объём свободного места на системном разделе. Однако, всё совершенно не так, как в Windows. И главной особенностью является то, что в отличие от Windows, ситуацию можно и нужно исправить. Причём абсолютно корректно, полностью вернув утраченное свободное место.

Что такое «неиспользуемые» ядра и почему они накапливаются в системе?

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

Но дело ещё и в том, что когда для системы выпускается новая версия Linux-ядра. То оно (новое ядро) будет установлено как отдельное независимое ядро. В процесс его установки также входит автоматическая настройка загрузчика GRUB. Для того, чтобы свежеустановленное ядро загружалось им по-умолчанию. При этом, как правило, старые ядра не удаляются. Это сделано для того, чтобы как можно в более полной степени следовать концепции «Unix Way». Которая, в частности, предполагает предотвращение всяческой самодеятельности, дабы не навредить системе. В случае с установкой новых версий ядер, старые не удаляются, чтобы дать возможность пользователю их использовать. Если с новым ядром возникнут какие-либо неполадки.

Стоит заметить, что в зависимости от «комплектности» ядер, они могут, занимать свыше 300 мегабайт дискового пространства. Нетрудно представить, какой объём в таком случае занимают несколько неиспользуемых старых ядер.

В данной статье будут рассмотрены способы очистки системы от неиспользуемых ядер на примере дистрибутивов Ubuntu. Так, например, для этих систем (как впрочем и для большинства других Linux-дистрибутивов) ядро представляет собой набор из следующих пакетов:

  • linux-headers-[версия] – заголовочные файлы ядра;
  • linux-image-[версия] – бинарный образ ядра;
  • linux-extra-[версия] – дополнительные внешние модули ядра для расширения функционала.

При установке и удалении перечисленных пакетов также выполняются и служебные скрипты для настройки системного загрузчика. Это необходимо для очистки его конфигурации (или для добавления в неё) в соответствии с установленными (или удаляемыми) в системе ядрами.

Удаление ядер с помощью системы управления пакетами

Для начала необходимо разобраться, есть ли в системе неиспользуемые ядра и сколько их. Также, первым делом, нужно определить, какое ядро является основным:

Как можно видеть, в качестве основного ядра (то, которое загружает загрузчик GRUB по-умолчанию) является версия 4.18.0-18.
Теперь можно выяснить, какие ещё ядра присутствуют в системе. На примере Ubuntu для этого используется команды менеджера пакетов dpkg:

Для первой команды вывод может быть примерно таким:

Похожий вывод даст вторая команда, но с тем лишь отличием, что в наименовании пакетов будет указано «linux-headers». Как можно видеть, кроме основного ядра версии 4.18.* в системе присутствуют также ядра из семейства версии 4.15 — 43, 46 и 47. От первых двух не мешало бы избавиться, высвободив таким образом значительный объём дискового пространства. А вот ядро 4.15.0-47 рекомендуется оставить как резервное. Это обычная практика в Linux-системах — иметь на борту альтернативное ядро предыдущей версии со стабильными проверенной конфигурацией и набором модулей.

Следует не забывать, выполнять вышеприведённые команды для пакетов linux-extra – они также могут присутствовать в системе. Но гораздо реже, поскольку данные пакеты чаще всего устанавливаются вручную.

Теперь, когда решено удалить неиспользуемые ядра версий 4.15.0-43 и 4.15.0-46, можно воспользоваться командами системы управления пакетами (СУП) для используемого дистрибутива. В данном случае, для Ubuntu, следует выполнить следующие команды:

Во время удаления этих пакетов конфигурация загрузчика GRUB будет автоматически перенастроена, ничего вручную для этого делать не нужно. Следует отметить, что в системе также могут присутствовать версии ядер без «generic» в наименовании пакетов. Если такие ядра не нужны, то и их также рекомендуется удалить. Изменения для GRUB можно заметить при следующей перезагрузке системы. В меню загрузчика (если в его конфигурации включен вывод меню выбора) будут отсутствовать пункты для соответствующих удалённых ядер.

Удаление сразу нескольких ядер

Нередко старых ядер накапливается довольно много. И при их удалении одной командой apt-get purge не совсем удобно перечислять наименования пакетов всех ядер. Чтобы сделать команду удаления ядер более удобочитаемой, а также сэкономить время на её составление. Можно воспользоваться некоторыми возможностями командной строки. Такими как регулярные выражения. В этом случае для удаления двух ядер версий 4.15.0-43 и 4.15.0-46. Включая их образы и заголовочные файлы запись соответствующих команд будет выглядеть следующим образом:

Следует отметить, что данный синтаксис возможен только при использовании командных интерпретаторов Bash, а также ему подобных.

Использование специализированных утилит — скрипт purge-old-kernels

Некоторые пользователи могут и не решиться на такие действия как удаления ядер в силу малоопытности. Для подобных ситуаций во многих дистрибутивах Linux в арсенале стандартного репозитория имеются специализированные утилиты, которые позволяют безопасно выполнять самые ответственные действия с системой. Одной из таких утилит является bikeshed, которую можно установить из одноимённого пакета:

В набор этой утилиты входит скрипт purge-old-kernels для безопасной очистки системы от неиспользуемых ядер. Скрипту можно передавать параметр, указывающий, сколько ядер самых свежих версий оставить в системе. Например, для того, чтобы оставить только два самых свежих ядра:

Как и в случае с удалением ядер с помощью СУП, беспокоиться о перенастройке GRUB не стоит, поскольку данный скрипт это также умеет делать. Но если вдруг конфигурация загрузчика не была обновлена, то можно это сделать вручную, выполнив команду:

В заключение следует отметить, что использование скрипта purge-old-kernels является наиболее предпочтительным способом очистить систему от старых ядер. Главным преимуществом данного способа является его надёжность и универсальность, поскольку этот скрипт корректно удаляет даже те ядра, которые устанавливались в систему вручную путём сборки из исходных кодов.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Удаление старых ядер Ubuntu

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

А на диске они могут занимать большое количество места. Если вы часто желаете обновить систему до более новой версии и не любите чистить её, то несколько гигабайт этого ядерного кэша будет постоянно висеть на компьютере и, возможно, тормозить его. Сами то старые ядра в процессе управления ОС не участвуют. Сохраняются лишь их образы, от которых и нужно избавиться.

Как удалить

Удаление старых ядер, как можно сделать вывод, процесс обязательный. Вот только не все его выполняют. Отчасти потому, что к сожалению для большинства пользователей предполагает навыки управления текстовым интерфейсом. Дальше будут перечислены несколько способов «уборки» системы.

Apt-get — это специальный набор команд, обладающий широкими возможностями. Вводить их, конечно же, нужно вручную, при помощи терминала.

  • Смотрим, какое ядро используется сейчас. Для этого вводим:
  • Проверяем, какие были установлены:

$dpkg —list | grep linux-image
$ dpkg —list | grep linux-headers

  • Удаляем все ненужные образы, а также относящиеся к ним заголовки:

$sudo apt-get purge linux-image-
$ sudo apt-get purge linux-headers-

  • После знака дефис необходимо написать кодовый номер, например: 20.0-15
  • Grub — файл с конфигурацией обычно обновляется автоматически после удаления ядер. Если этого не произошло, обновить его можно вручную при помощи команды:

Если вы хотите удалить несколько ядерных образов разом, то проще воспользоваться синтаксисом Bash. Для этого вместо двух команд удаления нужно ввести такие же:

$ sudo apt-get purge linux-image-
$ sudo apt-get purge linux-headers-

Но после кодового номера ядра указать другие номера в скобках:

После этого будут удалены сразу несколько образов: те, что перечислены в скобках.

Purge-old-kernels

Это скрипт, который состоит в пакете bikeshed (подробнее о том, как устанавливать пакеты, в другой статье). С помощью него удалить старые ядра будет гораздо удобнее. Здесь не надо вводить энное количество команд, достаточно ввести лишь одну, если этот пакет уже установлен:

Она оставляет только три самых последних версии. Если три для вас — слишком много, одну лишнюю вы легко можете удалить предыдущим способом.

Графический интерфейс

Наконец, всеми любимый способ урегулировать любые проблемы на ПК. Доступен он не на каждой версии Ubuntu, а только с 16.04.

    Открываем центр приложений.

Центр приложения Ubuntu

О ядрах и Линуксах

Ядро — это и есть та самая Linux. В быту ошибочно зовут словом Линукс сами операционнки, которые создаются на базе Linux. Таких ОС на самом деле большое множество, и все они друг от друга сильно отличаются. Называются они дистрибутивами, т. е. видоизменёнными и усовершенствованными версиями того ядра, которое лежит в основе. Таким дистрибутивом является и Ubuntu, о которой идёт речь в этой статье. Убунту на сегодняшний день — одна из самых популярных систем на базе Линукс.

Как обновить

Обновление ядра в Ubuntu— также немаловажный процесс. Часто это происходит автоматически. Например, если удалять старые образы первым способом, то система автоматически обновится до ядра последней версии. Но стоит также уметь делать это вручную.

Делать это легче всего с помощью скрипта, который мы и поставим в первую очередь.

$ cd /tmp
$ git clone git://github.com/GM-Script-Writer-62850/Ubuntu-Mainline-Kernel-Updater
$ bash Ubuntu-Mainline-Kernel-Updater/install

$Kernel Update Checker —any-release yakkety

  • Начинаем установку:
  • Отказываемся удалять старые образы, сделать это можно и самостоятельно: n
  • Соглашаемся на перезагрузку: y

Итак, нам удалось вручную обновить ядро. Как видите, сделать это легко. То же можно сказать и об удалении старых ядер. На самом деле это довольно краткое описание возможностей работы с ядрами в Ubuntu. Большему вы научитесь сами, освоив базовые действия.

Дата поста: 22-01-2018

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Выполните команду для того, чтобы узнать какое ядро сейчас используется И НЕ УДАЛЯЙТЕ ЕГО!:
  1. Получите список всех ядер за исключением текущего загруженного:

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

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

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

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

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

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

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

Удаление старых ядер в Ubuntu

Ежемесячно разработчики Ubuntu обновляют систему в целях улучшения ее производительности и безопасности. С каждым таким обновлением устанавливаются новые версии ядра, причем старые автоматически не удаляются системой. Для работы Ubuntu хватит и последнего обновленного ядра, но для запаса стоит также оставить и предыдущую версию. Обновить, а также удалить старые ядра в Ubuntu можно несколькими способами.

Зачем нужно производить удаление старых ядер в Ubuntu

Хранение одной старой папки ядра может занимать порядка 300-400 Мб. Если удаление не выполнялось продолжительное время, то оно позволит освободить несколько гигабайт памяти диска.

Так как рекомендуется устанавливать все последние обновления, то для них необходимо обеспечить достаточно места в разделе /boot. При его заполнении невозможна установка обновлений системы.

Как удалить старые ядра в Ubuntu

Просмотреть список всех накопившихся элементов можно через файловый менеджер Nautilus в вышеуказанном разделе либо с помощью терминала:

Также список ядер для загрузки Убунту доступен в загрузчике Grub при включении системы.

Говоря об удалении, многие сразу прибегают к команде:

Она позволит удалить кэш и неиспользуемые пакеты. Для выполнения потребуется ввести пароль суперпользователя. Однако утилита поможет лишь тогда, когда ядра были установлены в автоматическом режиме либо через Менеджер обновлений. Если производилась ручная установка, то данная утилита не поможет.

Часто для удаления устаревших вариантов используют программу Убунту Tweak. Она работает через графический интерфейс, поэтому не всегда этот вариант подходит (например, на серверах, не имеющих графической оболочки).

Выделяют 3 основных метода, с помощью которых можно удалить старые составляющие Убунту:

  • утилита Apt-get Ubuntu Software Center;
  • Автоскрипт Purge-old-kernels;
  • Ubuntu Software Center.

Как удалить старые версии ядра в Ubuntu с помощью Apt-get

Элементы ядра в Ubuntu содержатся в наборах:

  • linux-image-XXXXX – непосредственно образ;
  • linux-image-extra-XXXXX – подключаемые модули;
  • linux-headers-XXXXX – файлы с заголовками.

Здесь и далее X – кодовое значение версии ядра, например, 2.17-1.

Чтобы посмотреть, какое ядро работает в настоящий момент, задается команда:

Чтобы посмотреть все установленные элементы необходимо выполнить:

Удаление выполняется строкой:

Далее удаляются заголовочные элементы:

Желательно обновить конфигурацию загрузчика:

Удалить все устаревшие ядра Ubuntu разом возможно, используя Bash. С помощью оператора перечисления <> задаются версии. Конец вышеуказанных команд преобразуется в «2.17-<1,3,5,8>». В фигурных скобках необходимо указать версии ядра, подлежащие удалению.

Как удалить старые ядра в Ubuntu с помощью Purge-old-kernels

Метод является самым безопасным, поэтому неопытным юзерам рекомендуется пользоваться именно им. Скрипт разработан Дастином Киркландом специально с целью автоматизировать и упростить удаление неиспользуемых ядер как с рабочих компьютеров, так и с серверов. Он не запустится, пока в систему не будет установлена дополнительная утилита Bikeshed, в которой он содержится по умолчанию. Начиная с версии Ubuntu 16.04 для установки необходимо выполнить:

В более ранних дистрибутивах:

Данный скрипт – единственный метод сноса ядер Ubuntu (включая заголовки), собранные самостоятельно. Вид команды следующий:

Вместо (*) нужно указать количество элементов, которые должны остаться в системе. Например, параметр «—keep 2»удалит все сборки за исключением последних двух.

В справке к скрипту (вызывается командой manpurge-old-kernels) для Ubuntu 17.04 и выше появляется информация, что теперь возможно использование утилиты apt:

Удаление старых ядер в Ubuntu через центр приложений

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

Вход в Ubuntu Software Centre осуществляется с помощью меню Dash либо через панель быстрого доступаUnity. В правом верхнем углу службы расположена строка поиска. В нее необходимо ввести запрос «linux-image».

Под результатами поиска имеется ссылка «Показать дополнительные технические элементы» (может немного меняться формулировка). Остается выбрать старый образ и нажать кнопку «Удалить».

Частые ошибки

Многие пользователи сталкиваются с проблемой замкнутого круга, возникающего при удалении. Запуская процедуру, они получают сообщение о неудовлетворенных зависимостях. При этом предлагается запустить«apt-get -finstall». Проблема в том, что выполнение невозможно, так как память заполнена.

Для выхода из ситуации необходимо вручную удалить несколько устаревших папок ядра Ubuntu командой rm . Также удаление можно произвести через файловый менеджер.

Теперь команда apt-get -finstall запустится без ошибок. Далее можно приступить к любому методу для сноса старых элементов.

Заключение

О том, что необходимо удалить старые ядра Ubuntu, нужно думать уже тогда, когда раздел /boot близок к заполнению. Это позволит избежать дальнейших проблем при обновлениях. Более того, если данная процедура не выполнялась ни разу (что часто бывает),удаление позволит освободить большое количество дискового пространства. Главное – действовать строго по инструкции, чтобы избежать потери важных данных.

Как удалить старые ядра Ubuntu

В Ubuntu ядро можно обновить несколькими способами. Для версии Ubuntu Desktop, менеджер обновлений программного обеспечения позволяет обновить ядро до самой новой версии в любое удобное время. В серверной версии Ubuntu ядро обновляется автоматически, утилитами из пакета unattended-upgrades, как часть важных обновлений безопасности. Также ядро можно обновить вручную, с помощью утилит управления пакетами apt-get, aptitude или даже собрав из исходников.

Со временем из-за таких обновлений, в системе накапливается много неиспользуемых образов ядер, которые только занимают дисковое пространство. Каждый образ ядра вместе со связанными заголовочными файлами и файлами модулей занимает около 200 — 400 мегабайт. Таким образом, удаление старых ядер в ubuntu позволит освободить много дискового пространства.

Посмотреть сколько в вашей системе набралось образов ядер можно с помощью файлового менеджера, открыв каталог /boot или просто выполнив команду в терминале:

Кроме того, в меню загрузчика Grub присутствует пункт для каждого ядра, на случай если вы захотите выбрать его для загрузки:

Для очистки диска можно удалить старые ядра в Ubuntu, если вы их не используете и они вам больше не нужны.

Удалить старые ядра Ubuntu с помощью apt-get

Перед тем как удалить старые ядра Ubuntu вспомните, что рекомендуется иметь в системе две версии ядра — последнюю, используемую на данный момент, и предыдущую, на случай какой-либо неполадки.

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

В Ubuntu образы ядра принадлежат к таким пакетам:

  • linux-image- — образ ядра
  • linux-image-extra- — внешние модули ядра
  • linux-headers- — файлы заголовков

Сначала посмотрим какое ядро используется на данный момент в вашей системе:

Смотрим какие версии ядер были установлены:

dpkg —list | grep linux-image
$ dpkg —list | grep linux-headers

На основе полученного списка вы можете удалить любую версию, например, 3.19.0-15:

sudo apt-get purge linux-image-3.19.0-15
$ sudo apt-get purge linux-headers-3.19.0-15

Эти команды удалят образ ядра, а также связанные с ним заголовочные файлы и файлы модулей.

Обратите внимание, что при удалении старого ядра, будет автоматически инициирован процесс обновления ядра до последней версии, если вы этого еще не сделали, а также после удаления будет обновлен конфигурационный файл Grub, чтобы убрать лишнюю запись из меню.

Если такое ядро не одно, вы можете удалить старые ядра ubuntu одной командой, используя расширенный синтаксис Bash. Оператор <> будет работать только в Bash и совместимых с ним оболочках:

sudo apt-get purge linux-image-3.19.0-<18,20,21,25>
$ sudo apt-get purge linux-headers-3.19.0-

После выполнения этих команд будет удаленно четыре образа ядра 3.19.0-18, 3.19.0-20, 3.19.0-21 и 3.19.0-25.

Если конфигурация Grub не обновится по каким-либо причинам, это можно сделать вручную:

Теперь можете перезагрузить компьютер, чтобы убедиться, что меню выбора операционной системы было очищено от лишних ядер.

Удаление старых версий ядер с помощью скрипта Purge-old-kernels

Это был не единственный способ удалить старые версии ядра ubuntu. Все можно сделать более удобно с помощью скрипта purge-old-kernels. Этот скрипт входит в состав пакета bikeshed вместе с другими полезными инструментами. Для установки выполните:

sudo apt-get install bikeshed

Скрипт purge-old-kernels позволяет удалить нужное количество старых ядер и их заголовочных файлов. Например, для удаления всех образов ядер вместе с дополнительными файлами, кроме трех самых новых ядер, выполните:

sudo purge-old-kernels —keep 3

Это единственный способ, который работает для ядер, собранных из исходников и установленных вручную.

Как удалить старые образы ядер с помощью центра приложений

Удаление старых ядер ubuntu 16.04 может быть выполнено и с помощью графического интерфейса. Откройте центр приложений из меню Dash или ярлыка в панели Unity, затем наберите в строке поиска linux-image:

Кликните по строчке показать дополнительные элементы. Здесь можно удалить все ненужные образы ядер, для этого нажмите кнопку удалить.

Ту же самую процедуру нужно будет проделать для пакетов linux-headers. Аналогично удаление старых ядер в Ubuntu будет выполняться в пакетном менеджере Synaptic.

Другие способы

Удалить все старые ядра, кроме используемого и предпоследнего, также можно командой:

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)

Затем нужно выполнить команду очистки системы и вручную обновить конфигурацию grub.

sudo apt-get autoremove
$ sudo update-grub

Незачем держать в системе очень много ненужных файлов. Теперь вы знаете, как правильно удалить старые версии ядер Ubuntu и сможете поддерживать свою систему в чистоте и порядке, это очень важно, особенно если вы часто обновляете ядра и тестируете новые версии. Если у вас остались вопросы, спрашивайте в комментариях!

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

Вопрос: Я обновлял ядро на моей Ubuntu множество раз. Теперь мне бы хотелось удалить неиспользуемые старые образы ядер и таким образом сберечь дисковое пространство. Какой самый простой способ удалить более ранние версии ядер Linux на Ubuntu?

В среде Ubuntu есть несколько способов обновить ядро. На настольных компьютерах Ubuntu, приложение для обновления программ позволяет вам на ежедневной основе проверять и обновлять до последней версии ядра. В Ubuntu Server пакет unattended-upgrades (автоматических обновлений) заботиться об автоматическом обновлении ядра, как важном компоненте обновления безопасности. Иначе вы можете обновить ядро используя команду apt-get или aptitude.

Со временем продолжающиеся обновления ядра приведут к тому, что в вашей системе накопиться много неиспользуемых старых образов ядер, которые будут понапрасну занимать место на диске. Каждый образ ядра и связанные файлы модулей/ядер занимают 200-400 мегабайт дискового пространства, и понапрасну потраченное место от неиспользуемых образов ядер будет быстро прибавляться.

Менеджер загрузки GRUB поддерживает записи GRUB для каждого старого ядра, на тот случай, если вы захотите загрузиться с ним.

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

Как очистить старые образы ядер с apt-get

Перед тем, как вы удалите старые образы ядер, запомните, что рекомендуется сохранить хотя бы последние два образа (самый последний и предыдущий), на случай если что-то пойдёт не так. Теперь давайте посмотрим как удалить старые образы ядра на платформе Ubuntu.

В Ubuntu образы дисков состоят из следующих пакетов.

  • linux-image- : образ ядра
  • linux-image-extra- : дополнительные модули ядра
  • linux-headers- : файлы заголовков ядра

Для начала давайте проверим, какие образы ядра установлены на вашей системе.

Из списка образов ядра вы можете удалить конкретные версии, к примеру 3.19.0-15) следующим образом.

Вышеприведённая команда удалит образ ядра и связанные с ним файлы модулей ядра и заголовка (хедера).

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

Если у вас много неиспользуемых ядер, вы моете удалить множество их за раз, используя следующий синтаксис оболочки. Помните, что это раскрытие скобок будет работать только для bash или других совместимых оболочек.

Вышеприведённая команда удалит 4 образа ядра: 3.19.0-18, 3.19.0-20, 3.19.0-21 и 3.19.0-25.

Если по каким-либо причинам конфигурация GRUB не обновлена должным образом после удаления старых ядер, вы можете попытаться обновить конфигурацию GRUB вручную с командой update-grub2.

Теперь перезагрузитесь и проверьте, что меню GRUB очищено должным образом.

Как очистить старые образы ядра с purge-old-kernels

Другим более дружественным способом удаления старых ядер является утилита командной строки под названием purge-old-kernels. Этот инструмент является частью пакета bikeshed, который является рандомной коллекцией полезных инструментов.

Испольузя purge-old-kernels, вы можете удалить настраиваемое количество старых образов ядер и файлов заголовков. Например, для удаления всех образов ядер (вместе с их файлами заголовков), кроме последних трёх ядер, запустите это:

И ещё четырех быстрых способа удалить старые ядра

Эти способы подсказали читатели. Ещё одно подтверждение того, что если делиться знаниями, то они приумножаются.

1. Используя графический интерфейс (GUI)

Запустить Ubuntu Tweak, затем «Start Janitor», поставьте галочку «Old Kernel» (старые ядра).

2. Удаление в одну простую команду

Эта команда удалит все неиспользуемые/старые образы ядер кроме текущего.

Справочная информация

про свой опыт решения некоторых проблем и использования ряда возможностей ОС и приложений

среда, 11 января 2017 г.

Удаление старых ядер в Linux Mint

Раньше удаление старых ядер мной осуществлялось через утилиту Ubuntu Cleaner, но впоследствии появилось желание контролировать процесс. Поэтому, немного поискав в сети, на ресурсе http://losst.ru была найдена инструкция по порядку удаления старых ядер через терминал.

Сначала необходимо получить сведения об установленных в сиситеме ядрах. Введите в терминале команду ls /boot/

В моей системе была выдана информация:

abi-4.4.0-21-generic initrd.img-4.4.0-57-generic
abi-4.4.0-47-generic initrd.img-4.4.0-59-generic
abi-4.4.0-51-generic memtest86+.bin
abi-4.4.0-53-generic memtest86+.elf
abi-4.4.0-57-generic memtest86+_multiboot.bin
abi-4.4.0-59-generic System.map-4.4.0-21-generic
config-4.4.0-21-generic System.map-4.4.0-47-generic
config-4.4.0-47-generic System.map-4.4.0-51-generic
config-4.4.0-51-generic System.map-4.4.0-53-generic
config-4.4.0-53-generic System.map-4.4.0-57-generic
config-4.4.0-57-generic System.map-4.4.0-59-generic
config-4.4.0-59-generic vmlinuz-4.4.0-21-generic
grub vmlinuz-4.4.0-47-generic
initrd.img-4.4.0-21-generic vmlinuz-4.4.0-51-generic
initrd.img-4.4.0-47-generic vmlinuz-4.4.0-53-generic
initrd.img-4.4.0-51-generic vmlinuz-4.4.0-57-generic
initrd.img-4.4.0-53-generic vmlinuz-4.4.0-59-generic

Т.е. установлено 6 различных ядер, но при своей работе система использует только последнее – 4.4.0-59

Поэтому, сохранив для подстраховки и предпоследнюю версию (4.4.0-57), удалим 4 ненужных старых ядра: 4.4.0-21, 4.4.0-47, 4.4.0-51, 4.4.0-53.

Команды для удаления нескольких ядер c использованием возможностей командного интерпретатора bash:

sudo apt-get purge linux-image-. —<--,--,--,-->
sudo apt-get purge linux-headers-. —

Вместо . подставляем 4.4.0, а вместо — то, что после символа -. Таким образом, результирующие команды, которые будут выполняться последовательно, приобретут вид:

sudo apt purge linux-image-4.4.0- <21,47,51,53>&& sudo apt purge linux-headers-4.4.0-

При выполнении этих команд в терминале Вы увидите очень много записей, отображающих ход процесса.

В конечном счёте у Вас должен обновиться grub. Для подстраховки его можно обновить ещё раз, например, sudo update-grub или sudo update-grub2

При выполнении операций в окне терминала было отображено уведомление, что в результате действий по удалению старых ядер будет освобождено 872 Мб и 311 Мб. Что ж, не ахти, конечно, какая, но, всё-таки, экономия дискового пространства составила более 1,1 Гб. А копеечка, как известно, рубль бережёт.

При удалении старых ядер также было отображено сообщение, что папки ядер в каталоге /lib/modules/ не удалены, так как не являются пустыми.

Что ж, удалим их вручную. Так как их можно удалить только под правами суперпользователя, то запустим, например, Midnight Commander – sudo mc – выделим папки 4.4.-21-generic, 4.4.-47-generic, 4.4.-51-generic, 4.4.-53-generic и клавишей F8 удалим их, подтвердив свои действия в окне запроса.

Посмотрим, что вышло в конце: ls /boot/ в теминале или в менеджере файлов:

Видно, что в системе осталось 2 ядра: 57-е и 59-е. Можно считать, что цель достигнута.

Комментарии 9

Постоянно проделываю такую операцию после установки нового ядра, но только через пакетный менеджер Synaptic. На мой взгляд эта процедура быстрее и нагляднее, если учесть, что команды терминала теряют силу, если есть хотя бы одна ошибка в тексте и к тому же ещё он реагирует на изменение регистра. В среднем три удаляемых пакета одного ядра освобождают порядка 180 МБ дискового пространства.

Команду можно впечатать в пакетный файл и запускать хоть одни кликом, хоть вписать в постобработку апта и не запускать руками вообще, а синаптик нужно запустить, мышкой кликать в поиске писать.

Пакетный файл тоже нужно создать или он уже существует?

влюбом текстовом редакторе например в gedit (в графической среде) или в nano (в консоли) вставляете

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

Сохраняете например под именем purgekernels.sh в домашней папке, затем делаете файл исполняемым chmod +x purgekernels.sh (в консоли) или на вкладке права в свойствах файла ставите галку выполнение как программы. После этого запускаете (в консоли) ./purgekernels.sh или двойным кликом в графическом режиме.

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

Да, именно! Скрипт выбирает все неиспользуемые в данный момент ядра и сопутствующие пакеты и удаляет их. Остается только последнее актуальное ядро, точнее то, которое было загружено на момент запуска скрипт. Отсюда следующая практика: обновили ядро, перезагрузились под ним, запустили скрипт очистки. Ну и лучше удалять старые после того как убедились. что на новом ядре все нормально работает.

p.s. можно отвечать на мои сообщения, а не добавлять новый коментарий, тогда это будет выглядеть как беседа 🙂

Ещё читал, что предпоследнее ядро тоже рекомендуется оставить, а то если вдруг что случиться, то некуда будет откатится. Ну это так, к слову. Я хотел вопрос задать по поводу версии ядер РАЕ, это технология для компов у которых оперативки 4 гига и больше. У меня только 2 гига, а ядро стоит с РАЕ. Это может как-то влиять в худшую сторону на работу моего компа? Посмотрел пакеты установленных ядер в Центре приложений, оказывается там они идут парами, один с РАЕ, другой пакет — без РАЕ. Значит ли это, что я могу удалить пакет с РАЕ, а у меня будет работать ядро без РАЕ?

Это никак не повлияет на работу. PAE это такой программный костыль, чтобы 32-разрядная операционка могла адресовать память больше 4 гб.

Безопасное удаление старых ядер из Ubuntu

Если вы знаете, во время установки нового ядра в Ubuntu, старое не удаляется, а остается в системе «на всякий случай». Со временем количество старых ядер увеличивается и в сумме они могут занимать довольно много места жестком диске. В некоторых случаях может помочь autoremove (то есть: sudo apt-get autoremove), предназначена для очистки системы от неиспользуемых пакетов, но по отношению к файлам ядра она не всегда эффективна.

Команда autoremove может не сработать для старых ядер если вы пользуетесь версией Ubuntu, что находится в разработке или ядра, которые нужно удалить, устанавливались вручную. Так же, можно встретить баг, когда ядра не помечаются для автоматического удаления.

Можно, конечно, воспользоваться утилитами типа Ubuntu Tweak или специальными командами в 150 символов (которые вы никогда не запомните), но и при их использовании никто не застрахован от ошибок. Так есть ли какой-либо безопасный способ очистки Ubuntu от старых ядер? Да, это скрипт purge-old-kernels от Dustin Kirkland (один из разработчиков дистрибутива).

Что такое purge-old-kernels

Согласно man-странице (англ.яз) purge-old-kernels — программа (скрипт), которая способна безопасно очистить Ubuntu от старых ядер. По умолчанию, программа удаляет все, кроме двух самых свежих ядер. Таким образом, в случае каких-либо ошибок с одним, у вас будет возможность загрузить систему с другим ядром, более стабильным.

В Ubuntu 16.04 purge-old-kernels идет в составе пакета byobu поэтому, чтобы использовать скрипт, нужно установить данный пакет:

В более старых версиях Ubuntu скрипт находиться в составе пакета bikeshed. Установка:

Теперь, для того, чтобы очистить систему от старых ядер достаточно ввести в терминале:

Если вы желаете оставить в системе отличное от 2 количество ядер, для этого нужно использовать ключ keep. Например, если я хочу чтобы после очистки у меня осталось 3 ядра, команда будет выглядеть так:

Ну, вот и все. Это то, что мне хотелось рассказать в данной заметке. Надеюсь вам данная информация поможет.

compizomania

Азбука в Linux для начинающих и не только. Я знаю только то, что ничего не знаю, но другие не знают и этого. Сократ

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 это графическая программа, которая не может быть использована на серверах, которые не имеет графического режима.

Одним из разработчиков UbuntuDustin Kirkland, отвечающим за развитие и стратегию продукта, была создана утилита purge-old-kernels, которая самым безопасным образом удаляет из системы неиспользованные пакеты ядер из десктопных и серверных систем Ubuntu.

Как использовать утилиту purge-old-kernels?

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

Для предыдущих дистрибутивов Ubuntu

sudo apt-get install bikeshed

sudo apt-get install byobu

Затем, чтобы удалить старые неиспользуемые ядра, выполните в терминале следующую команду:

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

Чтение списков пакетов . Готово
Построение дерева зависимостей
Чтение информации о состоянии . Готово
был автоматически установлен следующий пакет и больше не требуется:
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, посмотрите мануал (руководство пользователя):

Ссылка на основную публикацию