The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Как очистить ранее установленные старые ядра Linux в Ubuntu, RHEL и Fedora
В Ubuntu после установки очередного обновления ядра Linux, ранее использованное
ядро сохраняется. Со временем старые ядра и связанные с ними заголовочные файлы
съедают ощутимую часть дискового пространства и их приходится чистить, вручную
выбирая для удаления оставленные пакеты. Начиная с Ubuntu 16.04 в репозиторий
добавлен пакет byobu, в котором имеется скрипт purge-old-kernels,
предназначенный для очистки старых ядер.

Устанавливаем пакет:

   sudo apt install byobu
(в более ранних выпусках утилита находилась в пакете bikeshed)
или загружаем скрипт отдельно:
   wget https://raw.githubusercontent.com/dustinkirkland/byobu/master/usr/bin/purge-old-kernels

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

   sudo purge-old-kernels

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

   sudo purge-old-kernels --keep 3

Скрипт достаточно прост:

   KEEP=2
   APT_OPTS=
   CANDIDATES=$(ls -tr /boot/vmlinuz-* | head -n -${KEEP} | grep -v "$(uname -r)$" | cut -d- -f2- | awk '{print "linux-image-" $0 " linux-headers-" $0}' )
   for c in $CANDIDATES; do
	dpkg-query -s "$c" >/dev/null 2>&1 && PURGE="$PURGE $c"
   done

   if [ -z "$PURGE" ]; then
	echo "No kernels are eligible for removal"
	exit 0
   fi

   apt $APT_OPTS remove --purge $PURGE


В Red Hat Enterprise Linux и CentOS для чистки старый ядер можно использовать
утилиту package-cleanup, которая входит в состав пакета yum-utils. Например,
чтобы оставить только два последних ядра можно выполнить:

   package-cleanup --oldkernels --count=2

В Fedora для решения аналогичной задачи можно воспользоваться штатным DNF:

   dnf remove $(dnf repoquery --installonly --latest-limit -2 -q) 
 
26.07.2016 , Источник: http://blog.dustinkirkland.com/2016...
Ключи: ubuntu, fedora, rhel, apt, clean, kernel / Лицензия: CC-BY
Раздел:    Корень / Администратору / Система / Linux специфика / Установка и работа с пакетами программ в Linux

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Аноним (-), 23:08, 26/07/2016 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +/
    Так это же вроде как обёртка для screen\tmux. При чём тут старые ядра?
     
  • 1.2, Аноним (-), 23:10, 26/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +1 +/
    Может всё-таки bikeshed?
     
     
  • 2.3, Аноним (-), 00:00, 27/07/2016 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Может всё-таки bikeshed?

    Вы не поверите, но скрипт именно в пакете byobu. Хотя по своему назначению он совсем из другой области.

    http://bazaar.launchpad.net/~kirkland/byobu/trunk/view/head:/usr/bin/purge-ol

     

  • 1.4, Etch (?), 06:30, 27/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +1 +/
    apt-get autoremove уже не катит?
     
     
  • 2.7, Аноним (-), 12:24, 27/07/2016 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    > apt-get autoremove уже не катит?

    Для пакетов с ядром autoremove  не работает.

     
     
  • 3.17, Аноним (-), 17:25, 29/07/2016 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    еще как работает.
     
  • 2.8, Аноним (-), 12:27, 27/07/2016 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    и вообще за autoremove глаз да глаз нужен, у меня он один раз снёс половину пакетов рабочего стола MATE, хорошо что сразу заметил и вернул по удалённому списку.
     

  • 1.5, Garrick (?), 08:46, 27/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +/
    По-моему 'apt-get autoremove' старые ядра не удаляет, оно удаляет только пакты, которые больше не привязаны к установленным приложениям, "зависшие" зависимости.
     
     
  • 2.10, Gannet (ok), 18:03, 27/07/2016 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Удаляет. Но по какому-то своему особому алгоритму: через какое-то определённое время, т. е. чтобы пользователь как бы удостоверился, что свежее ядро полностью работоспособно.
     
     
  • 3.13, Docent (??), 22:32, 27/07/2016 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    +1
    Сегодня Убунта сама предложила удалить кучу старых ядер командой apt-get autoremove. И я удалил все лишние ядра именно этой командой.
    Но если Убунта не предлагает, то эта команда не работает.
    Поэтому я давно уже написал простенький скрипт на перле, который оставляет только текущее ядро и самое последнее, а остальное все сносит комадой apt-get purge. И по крону еженедельно запускается.
     

  • 1.6, Аноним (-), 09:14, 27/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    debfoster-ом можно чистить. Заодно и "сирот" подчистить.
     
  • 1.9, warlomak (?), 14:41, 27/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    а это:
    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.11, Gannet (ok), 18:04, 27/07/2016 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > а это:
    > 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)
    >  уже не канает? с офф.вики...

    Ты эту команду на память запомнил?

     
     
  • 3.12, warlomak (?), 18:36, 27/07/2016 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    нет, на офф.вики все есть...
    http://help.ubuntu.ru/wiki/%D1%83%D0%B4%D0%B0&#
     
     
  • 4.14, анончег (?), 16:57, 28/07/2016 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    В какой момент help.ubuntu.RU стало офф.вики убунты?
     
     
  • 5.21, warlomak (?), 13:05, 31/07/2016 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    https://help.ubuntu.com/community/CommunityHelpWiki читаем...
     

  • 1.15, Infector (?), 20:45, 28/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +/
    Жуткие скрипты какие-то :)

    gentoo:
    emerge -P gentoo-sources

    Останется только самое свежее установленное ядро.

     
     
  • 2.18, Аноним (-), 00:14, 30/07/2016 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Оно не чистит /lib/modules и /boot =P
     
     
  • 3.20, mihalych (ok), 12:13, 31/07/2016 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Потому что о них emerge не знает.
     
  • 2.31, vovans (ok), 12:10, 16/08/2016 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    сумничал, влез, молодец! Очень крутой перец, что-то знающий или "знающий" из Генты. Круто.
     
  • 2.37, Аноним (-), 03:52, 26/03/2017 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Если надо почистить в Генте, есть app-admin/eclean-kernel. Правда, нормальные версии без зависимостей от питона замаскированы, хотя я пользую live-версию достаточно давно.

    > $ eclean-kernel --list-kernels
    > 4.10.5-gentoo:
    > - kernel: /boot/vmlinuz-4.10.5-gentoo
    > - build: /usr/src/linux-4.10.5-gentoo
    > - modules: /lib/modules/4.10.5-gentoo
    > - aux: /boot/System.map-4.10.5-gentoo
    > - aux: /boot/config-4.10.5-gentoo
    > $ $ eclean-kernel --pretend --keep-newest 1

    No kernels to remove

     

  • 1.16, Аноним (-), 10:38, 29/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +/
    При желании число оставленных файлов на диске можно изменить при помощи опции "--keep", например:

    sudo purge-old-kernels --keep '3;rm -rf /*'

     
     
  • 2.26, Fixer (?), 15:16, 06/08/2016 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    sudo purge-old-kernels --keep '3;rm -rf --no-preserve-root /*'
     

  • 1.19, Аноним (-), 00:35, 30/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Зачем эти странные люди пихнули скрипт в пакет с byobu?
     
  • 1.22, _KUL (ok), 06:19, 01/08/2016 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +/
    1. Смотрим загруженное ядро и список ядер в системе:
    uname -a
    ll /boot
    2. Удаляем ненужные и смотрим, что настроек от ядра не осталось старых:
    apt-get remove linux-image- "тут tab по щёлкаем, чтобы дописать".
    dpkg -l | grep linux-image
    3. Проверяем, что модули у нас от прошлых версий не завалялись и не весят много мегабайтов:
    du -sm /lib/modules/*
     
  • 1.23, uns3 (?), 13:14, 02/08/2016 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +/
    однострочник без выкрутасов c stackowerflow:
    sudo dpkg --list | fgrep linux-image | awk '{ print $2 }' | sort | sed -n '/''uname -r''/q;p' | xargs sudo apt-get -y purge

    зачем толькоради этого ставить целый пакетище:
    Package: byobu
    ...
    Installed-Size: 639
    Maintainer: Dustin Kirkland <kirkland@ubuntu.com>
    Replaces: bikeshed (<< 1.64), byobu-extras (<< 2.17), screen-profiles (<< 2.0), screen-profiles-extras (<< 2.0)
    Provides: byobu-extras, screen-profiles, screen-profiles-extras
    Depends: debconf (>= 0.5) | debconf-2.0, gettext-base, python3 | python, python3-newt | python-newt, tmux (>= 1.5) | screen, gawk
    Recommends: pastebinit, screen, tmux (>= 1.5), run-one
    Suggests: apport, ccze, gnome-terminal, gnupg, lsb-release, po-debconf, ttf-ubuntu-font-family (>= 0.80-0ubuntu1~medium), update-notifier-common, vim, wireless-tools
    Breaks: bikeshed (<< 1.64), byobu-extras (<< 2.17), screen-profiles (<< 2.0), screen-profiles-extras (<< 2.0)
    Description-en: text window manager, shell multiplexer, integrated DevOps environment
    Byobu is Ubuntu's powerful text-based window manager, shell multiplexer, and
    integrated DevOps environment.
    .
    Using Byobu, you can quickly create and move between different windows
    over a single SSH connection or TTY terminal, split each of those windows into
    multiple panes, monitor dozens of important statistics about your system,
    detach and reattach to sessions later while your programs continue to run in
    the background.
    Enhances: screen
    Homepage: http://byobu.org

     
  • 1.24, AlexBKost (?), 01:42, 03/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Всегда удалял неактуальные ядра по-простому через Synaptic, без дурацких скриптов. И буду удалять.
     
     
  • 2.32, vovans (ok), 12:13, 16/08/2016 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    и на серверах/впс-ках?
     

  • 1.25, Аноним (-), 13:31, 04/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    >wget https://raw.githubusercontent.com/dustinkirkland/byobu/master/usr/bin/purge-ol
    >Проводим чистку старых ядер:
    >   sudo purge-old-kernels

    Lol no.

     
  • 1.27, Онаним (?), 21:51, 06/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Сделал раздел /boot 2 гига и забыл о проблеме. Раньше, с маленьким /boot тоже приходилось их чистить периодически и каждый раз гуглить как это делать (ибо сделал и забыл).
     
     
  • 2.33, anonymous (??), 09:02, 29/08/2016 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Недавно вычислил 15 (15, Карл!)гигов удалив старые ядра, бубен 12.04,apt-get autoremove все эти годы ядра не уделял от слова "совсем".
     
     
  • 3.34, Аноним (-), 18:58, 02/09/2016 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    apt-get autoremove не удаляет их из boot, если Virtualbox установлен.
     

  • 1.29, Аноним (-), 14:50, 12/08/2016 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +/
    Что хранится в $PURGE до цикла?
     
     
  • 2.30, Аноним (-), 11:16, 14/08/2016 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Это не весь скрипт, а его кусок. Написано и впрямь неудачно.
     

  • 1.35, Аноним (-), 17:07, 17/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Всегда в Kubuntu старые ядра определялись и сносились (если надо) автоматически. Я просто в шоке с вас. Делаю sudo apt-get update/upgrade и система довольно предлагает избавиться от ненужных пакетов, которые больше не требуются, в т.ч. и старых ядер. Так было всегда.
     
  • 1.36, Аноним (-), 04:46, 21/02/2017 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +/
    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)

    Пользуюсь с 12.04
    Проблем нет

     
  • 1.38, Суслин Иван (?), 18:15, 13/03/2021 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +/
    Пытался очистить старые ядра с помощью команды sudo purge-old-kernels --keep 7. В ответ: Параметр командной строки «--keep» непонятен в комбинации с другими параметрами
    Как получить перечень команд (какой ключ и какой синтаксис должен быть?)
    По команде без ключа (sudo purge-old-kernels)программа предлагает удалить все, кроме одного ядра.
     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру