- Удаление старых ядер в Debian и Ubuntu
- Удаление старых ядер
- Консольный вариант
- Как удалить образы неиспользуемых старых ядер в Ubuntu
- Как очистить старые образы ядер с apt-get
- Как очистить старые образы ядра с purge-old-kernels
- И ещё четырех быстрых способа удалить старые ядра
- 1. Используя графический интерфейс (GUI)
- 2. Удаление в одну простую команду
- 3. Удаление в одну сложную команду
- 4. Готовый скрипт
- Связанные статьи:
- Удаление старых ядер Ubuntu
- Зачем нужно удалять старое ядро
- Какое ядро используется
- Удалить старую версию ядра
- Обновляем загрузчик
Удаление старых ядер в Debian и Ubuntu
Иногда, при установке обновлений на сервер, можно столкнуться с проблемой нехватки места на /boot разделе. В Debian и Ubuntu есть два разных способа решения возникшей ситуации.
Первый способ — универсальный, ручной. Подходит для систем, куда установка новых пакетов не возможна, либо где пакет byobu для установки не доступен. Выводим список установленных ядер, а затем с помощью пакетного менеджера удаляем лишнее:
# dpkg --list | grep linux-image # apt-get --purge remove linux-image-XXXX
При необходимости, обновляем конфиг GRUB:
Разумеется, ручное удаление файлов с помощью rm из /boot так же возможно, но прибегать к такому способу стоит только в самом крайнем случае.
Второй способ — с помощью утилиты purge-old-kernels из пакета byobu. Устанавливаем пакет, и удаляем все старые ядра, оставив только новое (либо несколько, если это важно):
# apt-get install byobu # purge-old-kernels --keep 3
Пакет byobu доступен для установки и в Ubuntu, и в Debian (в 9 во всяком случае) прямо из репозиториев. Если вы заметили, что на сервере /boot раздел имеет небольшой размер, имеет смысл озадачиться установкой этой утилиты заранее.
Кроме того, в man purge-old-kernels для Ubuntu 17.10 можно найти следующее дополнение:
This utility is now deprecated. The functionality it used to provide should be integrated into apt(8).
Т. е. в этой версии Ubuntu уже можно использовать apt для удаления старых ядер. Например:
Удаление старых ядер
С обновлениями периодически устанавливаются новые версии ядра, которых со временем становится все больше. старые ядра можно спокойно удалить, это не причинит вреда системе. в принципе, достаточно иметь одно ядро последней версии (или той, которая наиболее стабильно работает на вашей конфигурации), но при желании можно оставить еще одно ядро предыдущей версии в качестве запасного, ибо бывает всякое. определевшись, какие ядра оставляем, можно смело удалять старые. наиболее простой и удобный способ — использовать Synaptic. для того, чтобы посмотреть список установленных ядер, введите в строке поиска linux-image и отсортируйте список по первой колонке, т.е. по статусу пакетов. установленные пакеты отмечены зеленым значком в первой колонке.
теперь удалим старые ядра. введите в строке поиска версию ядра, например, 2.6.32-21 и отметьте для удаления три установленных пакета: linux-image-2.6.32-21-generic , linux-headers-2.6.32-21 , linux-headers-2.6.32-21-generic . проделайте то же для остальных версий. нажмите кнопку Применить, проверьте список удаляемых пакетов и подтвердите, если все правильно. после удаления старых ядер update-grub выполнять не нужно, grub автоматически обновится
Так будут выглядеть отмеченые для удаления пакеты старого ядра:
Консольный вариант
Для удаления старых ядер, кроме последнего и предпоследнего, можно использовать команду
sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/7/!d' | head -n -1)
Как удалить образы неиспользуемых старых ядер в 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- : файлы заголовков ядра
Для начала давайте проверим, какие образы ядра установлены на вашей системе.
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
Вышеприведённая команда удалит образ ядра и связанные с ним файлы модулей ядра и заголовка (хедера).
Помните, что удаление старого ядра автоматически запустит установку последнего образа ядра Linux если вы ещё не обновились. Также после удаления старого ядра, конфигурация GRUB будет автоматически обновлена для удаления соответствующей записи GRUB из меню GRUB.
Если у вас много неиспользуемых ядер, вы моете удалить множество их за раз, используя следующий синтаксис оболочки. Помните, что это раскрытие скобок будет работать только для bash или других совместимых оболочек.
sudo apt-get purge linux-image-3.19.0- sudo apt-get purge linux-headers-3.19.0-
Вышеприведённая команда удалит 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, который является рандомной коллекцией полезных инструментов.
sudo apt-get install bikeshed
Испольузя purge-old-kernels, вы можете удалить настраиваемое количество старых образов ядер и файлов заголовков. Например, для удаления всех образов ядер (вместе с их файлами заголовков), кроме последних трёх ядер, запустите это:
sudo purge-old-kernels --keep 3
И ещё четырех быстрых способа удалить старые ядра
Эти способы подсказали читатели. Ещё одно подтверждение того, что если делиться знаниями, то они приумножаются.
1. Используя графический интерфейс (GUI)
Запустить Ubuntu Tweak, затем «Start Janitor», поставьте галочку «Old Kernel» (старые ядра).
2. Удаление в одну простую команду
Эта команда удалит все неиспользуемые/старые образы ядер кроме текущего.
3. Удаление в одну сложную команду
Удалить все ядра кроме текущего
sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/9/!d' | head -n -1) --assume-yes
4. Готовый скрипт
Один из читателей написал целый скрипт, который решает эту проблему: https://github.com/ClockworkNet/kernel_cleanup
Связанные статьи:
Удаление старых ядер Ubuntu
Совсем недавно я писал статью про очистку Ubuntu от старых пакетов и не нужного софта. Сегодня мы поговорим про удаление старых ядер Ubuntu.
Зачем нужно удалять старое ядро
Как известно при установке новых обновлений на систему может установиться и новое ядро. Ядро приносит с собой новые «фичи», а иногда и баги. Но сейчас не об этом. Ядра системы находятся в разделе /boot . Так уж вышло ОС ранних версий отводили под раздел /boot довольно мало места. Если конечно вы не выставляли разметку вручную. Как пример снимок с системы Ubuntu 14 версии позже обновленной до 18.
Раздел boot имеет размер 228 Мбайт, по сегодняшним меркам очень мало. Так вот при обновлении может случиться так что новое ядро не установится, потому что некуда. Для начала советую воспользоваться очисткой системы. Если и она не помогла, придется удалять старые ядра вручную.
Какое ядро используется
Чтобы узнать какое ядро используется сейчас для работы ОС запустим команду
Linux newadmin 4.15.0-50-generic #54-Ubuntu SMP Mon May 6 18:46:08 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Как видно из вывода команды у меня версия ядра 4.15.0-50-generic
Какие ядра были установлены но в данный момент не активны
dpkg --list | grep linux-image dpkg --list | grep linux-headers
В данном случае linux-image — ядро системы, linux-headers — набор библиотек плотно работающих с ядром
Удалить старую версию ядра
Вместе с ядром linux-image необходимо удалять и linux-headers, они как правило соответствую версии ядра, и при обновлении на новое ядро также ставятся новые linux-headers. Мое текущее активное ядро версии 4.15.0-50 и я смело могу удалять старые ядра
sudo apt-get purge linux-image-3.13.0-158-generic sudo apt-get purge linux-headers-3.19.0-15
Как видно на изображении выше старого linux-headers у меня уже нет, поэтому команду удаления указал для наглядности.
Обновляем загрузчик
После данной команды должно активироваться более свежее ядро установленное в системе
После всех манипуляций рекомендую сделать очистку системы от старых пакетов принадлежащих старым ядрам. Удаление старых ядер Ubuntu также позволяет освободить значительное место в системе благодаря удалению старых пакетов.