Почему Ubuntu не удаляет старые ядра автоматически? [дубликат]

На этот вопрос уже есть ответ здесь:

Интересно, почему Ubuntu не удаляет старые ядра автоматически.

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

Есть ли причина, по которой Ubuntu не делает этого автоматически ?.

93
задан 27 February 2015 в 19:51

8 ответов

Есть ли причина, по которой Ubuntu не сделает это автоматически?

Я вижу только одну причину: она не работает безупречно; в настоящее время нет четкого способа решить, что такое определение «старых ядер». «старый» не означает «неиспользованный» и не означает «нежелательный». И любая ошибка в этом убьет компьютер пользователя.

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


Ресурсы для этого вывода:

Ubuntu WIKI: Предложение по удалению старых ядер

Last-good-boot полностью реализовано в Intrepid /8.10 final, однако он был отключен, поскольку считался недостаточно стабильным. Параметр представляет собой одну строку в файле / etc / default / kernel-helper-rc.


Launchpad: Должна ли aptitude предоставлять способ удаления старых версий ядра?

apt-get имеет функцию автоматического удаления, которая удаляет все пакеты, которые не нужны как зависимости и не были установлены вручную. Начиная с Ubuntu 14.04 все устаревшие ядра и заголовки должны автоматически помечаться как ненужные и, следовательно, могут быть удалены с помощью команды apt-get autoremove. (Есть сообщения, что это еще не полностью работает) . Мне не известна особенность в aptitude, которая похожа на функцию автоматического удаления apt-get.


Ubuntu-devel: Предоставленный дистрибутивом механизм для очистки старых ядер

Соглашаясь, что это было бы весьма полезно и представляется целесообразным иметь автоматическую очистку, есть небольшая потенциальная ловушка (или два). Существуют различные разновидности ядер, и люди могут или не могут сознательно устанавливать их параллельно. Также в различных выпусках иногда менялся набор зависимых пакетов. Какое-то время это должны быть только linux-backports-modules (были linux-ubuntu-modules и linux-limited-modules). Хотя это не такая большая проблема. С точки зрения сопоставления с образцом ядра generic-pae представляют собой небольшую боль, поскольку они имеют тенденцию разрушать «использование последней части разбиения на» - «для аромата». Но в любом случае, я думаю, что основная проблема заключается в различных вкусах, поэтому автоматическая очистка должна сохранять последние три каждого из них, даже если это может привести к большему количеству ядер.

44
ответ дан 22 November 2019 в 23:07

Здесь происходит две вещи:

  1. Новые ядра - это совершенно новые пакеты, а не обновленные пакеты с новым номером версии, поэтому установка нового образа ядра не заменяет никакой старшие Они сосуществуют.

  2. Ubuntu использует кучу волшебства apt для защиты двух последних версий ядра от «apt-get autoremove» (самой последней и последней загруженной). Подробности смотрите в /etc/apt/apt.conf.d/01autoremove-kernels.

Все это означает, что после перезагрузки в последнем ядре «apt-get autoremove» должен удалить все, кроме текущего и последнего загруженного пакета ядра.

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

Это может измениться в 16.04 - исправление в пакете unattended-upgradedes по умолчанию включит автоматическое удаление старых ядер.

21
ответ дан 22 November 2019 в 23:07

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

sudo 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

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

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

18
ответ дан 22 November 2019 в 23:07

Бесхитростный способ удалить старые ядра состоит в том, чтобы использовать тонкую настройку человечности. Вы выбираете тег Швейцара и отмечаете поле Old Kernel. Это дает Вам список ядер, он думает, что Вам больше не нужно. Можно выбрать их всех и нажать Clean и, через некоторое время, задание сделало. Быть нервного расположения, которое я проверил, какое ядро я выполнял использование uname-a, но это не рассчитывало на список. Это работало над ноутбуком моей жены (который имеет довольно маленький раздел начальной загрузки и показывал, что предупреждения) и мой (который хорошо работал). Все соглашаются, что это безопасно?

3
ответ дан 22 November 2019 в 23:07

Ubuntu автоматически удаляет только те элементы, которые больше не нужны или представляют угрозу безопасности ... Поэтому я предполагаю, что причина этого в целях безопасности. Допустим, по какой-то странной причине новое ядро ​​становится небезопасным ... Тогда вы будете временно перенаправлены обратно к старому ядру, пока новое будет исправлено. Кроме того, новые ядра могут поставляться с изменениями, поэтому некоторые ядра согласны, например, для обновления 14.04.1 до 14.04.2 вы можете подписаться на новое ядро, но в апреле этого года, когда выйдет новая версия LTS 15.04, вы автоматически получите Вы обновлений ядра. Поэтому я считаю, что это в целях безопасности.

но если вы хотите удалить его, попробуйте запустить эту командную строку

sudo apt-get autoremove

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

sudo apt-get remove (kernels-name)
2
ответ дан 22 November 2019 в 23:07

Я повторно командую, используют Изменение Ubuntu, чтобы удалить старые ядра.послушайте:

, Как я удаляю старые ядерные версии, чтобы очистить меню ботинка?

2
ответ дан 22 November 2019 в 23:07

Я думаю, что последняя версия Ubuntu 15.10 может автоматически удалять старые ядра, если вы редактируете файл /etc/apt/apt.conf.d/50unattended-upgrades: Change line

// Unattended -Upgrade :: Remove-Unused-Dependencies "false";

до

Unattended-Upgrade :: Remove-Unused-Dependencies "true";

Я не проверял это, хотя.

2
ответ дан 22 November 2019 в 23:07

У меня была проблема с неспособностью установить программное обеспечение. Кв. - добирается, было неспособно установить заголовки Linux, сообщив, что диск был полон. $ df -i сообщил, что % IUse был в 100%: диск имел свободное пространство, но исчерпал inodes. $ sudo dpkg --configure -a отказавший, & также - $ sudo apt-get -f install и $ sudo apt-get autoremove

проблема, решенная, когда я вручную удалил несколько из более старых папок ядра от/usr/src - всего $ rm или shift-delete папки. Освобожденный достаточно inode располагает с интервалами, чтобы позволить $ apt-get -f install завершаться.

После этого у меня было только 10 ядер Linux. Я работал $ sudo apt-get autoremove, который удалил 1,4 ГБ файлов. Который вызывает вопрос: Действительно?? Действительно?? Но честно, действительно ли это является правильным способом выполнить удобную для пользователя систему?

2
ответ дан 22 November 2019 в 23:07

Другие вопросы по тегам:

Похожие вопросы: