The OpenNET Project / Index page

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

Как очистить ранее установленные старые ядра 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-old-kernels

     

  • 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
    Проблем нет

     


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




    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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