Linux mint очистка boot
По мере того, как Вы работаете в системе, система имеет разрастаться в установленными пакетами необходимыми для установки других, обновлениями, переходом на новое ядро. И встал вопрос, каким способом можно почистить каталог boot в системе применяемой в повседневности, а именно Ubuntu Trusty . Вот об этом и текущая работающая пошаговая заметка.
Удалить кеш apt репозиториев:
$ sudo rm -Rf /var/lib/apt/lists
$ sudo apt-get update
$ sudo aptitude autoclean
Проверяю какое ядро используется:
14.04.1-Ubuntu SMP Mon Jan 15 15:39:56 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
/dev/sda1 236M 134M 90M 60% /boot
Удалить старые ядра кроме 1 последнего:
$ sudo apt-get install -y bikeshed
$ sudo apt-get update --fix-missing
$ sudo apt-get install -y bikeshed
$ sudo purge-old-kernels --keep 1 -y
The following packages will be REMOVED:
Как видно осталось только одно ядро то которое сейчас в продуктиве, а теперь смотрю наличие места в каталоге /boot:
/dev/sda1 236M 50M 174M 23% /boot
Разница на лицо.
На моем ноутбуке Lenovo E555 (Ubuntu Trusty Desktop)
/dev/sda1 236M 171M 53M 77% /boot
14.04.1-Ubuntu SMP Mon Aug 14 16:07:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$ sudo purge-old-kernels --keep 1 -y
/dev/sda1 236M 57M 167M 26% /boot
после применяю свою заметку:
Распаковывается linux-image-generic-lts-xenial (4.4.0.112.96) на замену (4.4.0.93.77) …
После перезагрузки все загрузилось и что я вижу сейчас
14.04.1-Ubuntu SMP Tue Jan 23 20:41:48 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Файл.система Размер Использовано Дост Использовано% Cмонтировано в
udev 7.3G 4.0K 7.3G 1% /dev
tmpfs 1.5G 1.5M 1.5G 1% /run
/dev/dm-0 1.8T 954G 773G 56% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 7.3G 76K 7.3G 1% /run/shm
none 100M 44K 100M 1% /run/user
/dev/sda1 236M 104M 120M 47% /boot
Отлично, место в каталоге boot имеется, ядро обновлено. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.
Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:
Поблагодари автора и новые статьи
будут появляться чаще :)
Карта МКБ: 4432-7300-2472-8059
Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.
Каждый раз, когда я устанавливаю новое ядро Linux, оно остается в grub_config, каждый раз делая меню загрузки длиннее.
Я знаю, что могу вручную искать установленные пакеты и удалять их.
Предоставляет ли Ubuntu какой-либо более простой способ очистить их или не показывать в списке загрузки?
Эта команда удаляет пакеты, которые были автоматически установлены для разрешения зависимости, но теперь больше не зависят от них. Это включает в себя старые версии linux-headers-* а также linux-image-* , (Это также разумно для этого процесса, оставив одну запасную версию ядра как запасной вариант!)
GRUB2 и его отображение всех ядер
Последние версии Grub2, установленные в Ubuntu, автоматически отображают последнее ядро и скрывают старые версии, которые вы, возможно, установили.
Если вы не видите свой grub - не забудьте нажать Shift во время загрузки.
Как видите, отображается только последнее ядро.
Если вы выберете показанную опцию (нажмите Enter ), тогда все старые ядра станут видимыми и доступными для загрузки.
Как навсегда удалить старые ядра
Первая загрузка с последним доступным ядром.
Есть несколько способов удалить старые ядра. Лично я бы не стал трогать Computer Janitor, потому что это, как признается, сломало ваш компьютер своими советами.
синаптические
Альтернативой является Synaptic ( sudo apt install synaptic )
найдите linux-image, щелкните правой кнопкой мыши ядро, выберите полное удаление и, наконец, нажмите кнопку " Применить", чтобы удалить ядро.
Повторите поиск, но на этот раз для linux-header - вы можете удалить связанные заголовки для образа ядра, выбранного ранее.
Synaptic, тем не менее, не будет пытаться проверить, что вы пытаетесь удалить. вы можете непреднамеренно удалить свое новейшее ядро - или даже удалить все ваши ядра с помощью этого инструмента, оставив вам не загружаемую Ubuntu!.
Не забудьте проверить, какое ядро вы используете тип:
Результат будет похож на:
Запомните результат и номер - убедитесь, что вы не удалили соответствующее изображение или заголовок.
Моя рекомендация - оставить как минимум два или предпочтительно три ядра, включая самое последнее. Причиной рекомендации является то, что у вас будет по крайней мере одно / два других ядра для загрузки, если по какой-либо причине последнее ядро вы не можете загрузить или вводите регрессивную возможность, такую как неисправное беспроводное соединение.
Сначала перезагрузите систему, чтобы убедиться, что она использует новейшее ядро. Затем откройте терминал и проверьте ваше текущее ядро:
НЕ УДАЛЯЙТЕ ЭТОГО ЯДРА!
Затем введите команду ниже, чтобы просмотреть / просмотреть все установленные ядра в вашей системе.
Найдите все ядра, которые ниже вашего текущего ядра. Когда вы знаете, какое ядро удалить, продолжайте ниже, чтобы удалить его. Запустите команды ниже, чтобы удалить ядро, которое вы выбрали.
Наконец, выполните команды ниже, чтобы обновить grub2
Перезагрузите вашу систему.
Мой однострочник для удаления старых ядер (это также освобождает место на диске)
Объяснение (помните, | использует выходные данные предыдущей команды в качестве входных данных для следующей)
- dpkg --list список всех установленных пакетов
- grep linux-image ищет установленные образы Linux
- awk '< print $2 >' просто выводит 2-й столбец (который является именем пакета)
- sort -V упорядочивает элементы по номеру версии
- sed -n '/'`uname -r`'/q;p' печатает строки перед текущим ядром
- xargs sudo apt-get -y purge удаляет найденные ядра
Разматывать sed вызов:
- -n говорит sed быть спокойным
- `uname -r` выводит текущую установленную версию ядра - мы включаем ее в обратные кавычки, чтобы вывод был включен как часть команды (вы также можете увидеть это как $(uname -r)
- /something/q говорит остановка, когда вы сопоставляете "что-то" (в этом случае что-то выводится uname -r ) - / окружить регулярное выражение
- p это печать
- ; это разделитель команды, так /something/q;p говорит, что выход, когда вы соответствуете что-то, иначе распечатать
в целом, sed -n '/'`uname -r`'/q;p' выводит строки, пока они не совпадут с текущим именем ядра.
Если вы параноик (как я), вы можете сделать последнюю часть xargs echo sudo apt-get -y purge чтобы распечатать команду очистки старых ядер, вы можете проверить, что ничего неожиданного не было добавлено до ее запуска.
Модифицированная версия для удаления заголовков:
Обратите внимание sed вызов изменен. "$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")" извлекает только версию (например, "3.2.0-44"), без "-generic" или подобного из uname -r
Версия "все в одном" для удаления изображений и заголовков (объединяет две версии выше):
Ubuntu 16.04+:
Ubuntu 15.10 и ниже:
Я считаю, что это самый простой и быстрый способ. Он хранит последнее ядро и еще два:
Чтобы изменить количество сохраняемых дополнительных ядер:
Удаление записей из Grub 2 Записи должны быть удалены путем редактирования или удаления файлов в папке /etc/grub.d. Файл /boot/grub/grub.cfg доступен только для чтения и обычно не требует редактирования.
Слишком много ядер?
Если вы не уверены в том, какое ядро вы используете в данный момент, в терминале введите uname -r.
Ядра, удаленные через APT (Synaptic, "apt-get remove" и т. Д.), Автоматически обновят grub.cfg, и никаких действий пользователя не требуется.
Отличным инструментом для удаления ядер (и пунктов меню) является Ubuntu-Tweak, безопасное и простое в использовании приложение с графическим интерфейсом.
Установите Ubuntu твик
Ubuntu-Tweak будет доступен в разделе Приложения> Системные инструменты.
Удалить старые записи ядра
Выберите "Очиститель пакетов" слева и "Очистить ядро" на правой панели.
Выберите из отображаемого списка образы ядра и заголовки, которые вы хотите удалить. Используемое ядро отсутствует в списке.
Удалить операционные системы из меню Grub
Другие операционные системы, которые были удалены с компьютера, также будут удалены из меню после запуска "update-grub" от имени пользователя root.
Пункты меню размещаются в меню Grub2 скриптами. Если вы не хотите, чтобы в меню были введены другие операционные системы, отключите /etc/grub.d/30_osprober
Запустите эту команду, чтобы остановить запуск скрипта
sudo chmod -x /etc/grub.d/30_os-prober
DISABLE_30_OS-PROBER='true' в /etc/default/grub
Удалить Memtest86+ из меню Grub
sudo chmod -x /etc/grub.d/20_memtest86+
- Запустите команду update-grub, чтобы изменения могли быть включены в grub.cfg
Примечание. После обновления ядра в меню GRUB добавляется новая запись. Вы можете удалить более старую, если хотите. Однако большинство опытных пользователей посоветуют вам сохранить хотя бы одну запасную запись на случай, если что-то пойдет не так с обновлением, и вы для устранения неполадок необходимо загрузить более старую версию ядра.
Альтернативный способ удаления записей ядра (до 10.04)
для GRUB не GRUB2
Вы можете найти его в разделе Система >> Администрирование >>
Вы видите на втором скриншоте, вы можете выбрать, сколько ядер показать? Обычно я просто держу его на 1, но когда я получаю обновление ядра, я всегда изменяю его на 2 перед перезапуском, чтобы я мог выбрать старое ядро, если у нового ядра проблемы с моим оборудованием. Как только я знаю, что новое ядро работает хорошо, я изменяю его обратно на 1.
Чисто в командной строке это удалит все, кроме текущего и второго самого текущего (через "-2" в команде head ниже):
Обновить: purge-old-kernels устарела в настоящее время.
Я сделал скрипт для очистки ядер даже в сложных условиях. Это называется linux-purge и вы можете найти это здесь.
Если вы просто хотите очистить ядра (и связанные пакеты), которые старше, чем используемое в настоящее время ядро, когда система не сломана, вы можете использовать этот скрипт.
Здесь также есть страница документации по Ubuntu, в которой я участвовал относительно удаления старых ядер.
Вы можете следовать разделу Использование пакета "unattended-updates" в статье " Автоматические обновления безопасности" в Ubuntu Wiki, чтобы выполнить это.
Вам необходимо изменить следующую строку в файле /etc/apt/apt.conf.d/50unattended-upgrades;
автоматически удалять старые пакеты, в том числе ядра.
Также удалите или прокомментируйте строку
в разделе "NeverAutoRemove" файла /etc/apt/apt.conf.d/01autoremove.
Самый быстрый / простой способ (применим как минимум с 12.04), который уже имеется в Ubuntu: apt-get , Выполните следующие действия, если хотите удалить все старые версии ядра, которые не используются (за исключением предыдущей версии, которую вы не используете. Это делается для того, чтобы убедиться, что если текущая версия ядра каким-либо образом дает сбой, у вас есть возможность пойти вернуться в предыдущее состояние). Сделайте следующее:
Это исключит любые старые файлы (включая версии ядра), которые у вас могут быть. Обратите внимание, что если у вас много старых версий, это займет некоторое время, поскольку необходимо убедиться, что удаление версии ядра не имеет проблем. Для меня удаление последних 12 версий ядра заняло около 2 минут. Вы также можете сделать следующее:
Который устранит все загруженное и хранящееся в папке кеша apt. Наконец у вас есть:
который будет проверять наличие любых неиспользуемых пакетов и удалять их при необходимости. Это отлично подходит для тех библиотек и пакетов зависимостей, которые больше не нужны ни одному приложению.
Компьютер Janitor может очищать старые ядра, и я считаю, что по умолчанию установлен в Ubuntu (но не Kubuntu).
GRUB 1, если вы используете это, имеет опцию в /boot/grub/menu.lst указать, сколько ядер должно показываться на максимуме. GRUB 2, насколько я могу судить, не делает.
Чтобы выяснить, какие ядра и заголовки установлены, используйте
Затем вы можете удалить их по одному или вместе, просто убедитесь, что самые последние из них.
Есть также несколько удобных команд и скриптов для автоматизации удаления.
Следующие утверждения об удалении всех неиспользуемых ядер и заголовков:
Вот что происходит при запуске 18.04.1:
Чтобы удалить старые образы ядра Linux, сначала загрузитесь в ядре, которое вы хотите сохранить.
Вы также можете проверить версию ядра, используя команду uname -r чтобы вы не удалили неправильный по ошибке.
Теперь перейдите в менеджер пакетов synaptic и найдите linux-image и удалите более старые версии, кроме той, которая показана верхней командой. Вообще я предпочитаю идти с последним.
Теперь при перезагрузке вы увидите более чистое меню grub.
Вы можете установить Ubuntu-Tweak, а затем перейдите в Приложения -> Системный инструмент -> Ubuntu Tweak и
нажмите очиститель пакетов и очистите ядра. оно не показывает используемое в настоящее время ядро, поэтому вы всегда будете в безопасности.
Лично мне нравится использовать Synaptic , Это заставляет меня чувствовать себя более уверенно в том, что происходит. Единственное приложение, которое я использовал, имеет возможность удалять старые ядра, это Ubuntu Tweak.
Как удалить ядра, которые вы не используете:
- Откройте UbuntuTweak
- Нажмите "Очиститель пакетов" в разделе "Приложения" на левой панели.
- В правой части окна "Очистка" нажмите "Очистить ядра".
- Выбрать все ядра - я думаю, что используемого в списке нет, но на всякий случай проверка работает uname -a в терминале
Вы можете удалить старые ядра ( linux-image-. пакеты), используя Synaptic, и это удалит их из меню загрузки. Будьте осторожны, чтобы не удалить работающее ядро (вы можете проверить его версию с uname -r ).
Имейте в виду, что наличие одной или двух старых версий может помочь вам устранить неполадки, если что-то пойдет не так.
Кроме того, вы можете редактировать / удалять записи вручную ( gksu gedit /boot/grub/grub.cfg ), но они будут сгенерированы заново при обновлении до более нового ядра. Если вы думаете об удалении recovery mode варианты - нет. Они могут пригодиться, если вы сломаете что-то, что мешает вам загрузиться.
Преимущество этого ответа в том, что нативный Ubuntu Bash используется без установки сторонних приложений. Пользователи кастомных ядер, которые не использовали apt или же dpkg можете изменить этот сценарий bash в соответствии с их потребностями. Этот ответ основан на ( Как выборочно очистить все старые ядра сразу).
Zenity предоставляет удобный графический интерфейс для терминала для обработки списка и выбора элементов с помощью радиокнопок:
Как видно из названия, текущее ядро, с которым вы загрузились, не может быть удалено и не включено в список. Указанный размер - это то, сколько будет сохранено в /boot каталог. Больше сохранено на вашем диске, потому что двоичные файлы ядра находятся и в других областях. 27 июля 2017 г. примечание: каталоги /usr/src/*kernel_version* а также /lib/modules/*kernel_version* теперь включены также.
Дата изменения обнаружена с использованием stat команда. В моей системе эта дата "затрагивается" каждый раз, когда ядро загружается с помощью этого ( Как узнать, когда в последний раз загружалась определенная версия ядра?) Cron скрипт перезагрузки. Однако в вашей системе эта дата будет датой выпуска ядра, а не последней, когда вы ее загрузили.
Вам предоставляется последняя возможность просмотреть все, что будет очищено, и увидеть общее дисковое пространство (несколько вводящее в заблуждение), которое будет восстановлено:
Скопируйте этот код в исполняемый файл с именем rm-kernels в /usr/local/bin :
ПРИМЕЧАНИЕ. Вам нужно разрешение sudo для создания файла, поэтому используйте:
Чтобы сделать файл исполняемым, используйте:
rm-kernels-server версия сервера для выборочного удаления всех ядер одновременно Вместо графического диалогового окна с графическим интерфейсом используется текстовое диалоговое окно для выбора очищаемых ядер.
Перед запуском скрипта необходимо установить функцию диалога, используя:
sudo apt install dialog
Диалог находится в стандартной установке Ubuntu Desktop, но не в Ubuntu Server.
Образец экрана
rm-kernels-server код Bash
ПРИМЕЧАНИЕ: в вызове dialog директива --ascii-lines передается для замены расширенного набора символов рисования линии (который ssh не нравится) с "+-----+" для рисования ящиков. Если вам не нравится этот внешний вид, вы можете использовать --no-lines директива для не коробки вообще.
28 июля 2017 г. Обновления
Расчетный размер каждого ядра был взят из /boot/*kernel_version* которые были 5 файлов на общую сумму
50 МБ. Формула была изменена, чтобы включить файлы в /usr/src/*kernel_version* а также /lib/modules/*kernel_version* , Расчетный размер для каждого ядра теперь составляет
400 МБ. Код выше для rm-kernels а также rm-kernels-server был обновлен Однако приведенные выше примеры экранов еще не отражают эти изменения.
По умолчанию размер файлов для linux-заголовков оценивается в 125 МБ, а для linux-образа - в 220 МБ, потому что du может быть мучительно медленным, если файлы не находятся в кеше. Чтобы получить реальный размер, используя du передать любой параметр в скрипт.
Сумма всех размеров ядра (за исключением текущей работающей версии, которую нельзя удалить) теперь отображается в строке заголовка.
Диалоговое окно, используемое для отображения даты последнего доступа каждого ядра. Эта дата может быть перезаписана для всех ядер во время резервного копирования или аналогичных операций. Теперь в диалоговом окне отображается Дата изменения.
У меня /boot - около 500мб, но всё-равно быстро загаживается. Есть ли какие-то способы его чистить автоматически? Убунта может сгенерить кривой initrd из-за нехватки места в /boot. И как это делать с других системах, типа генты и центоси.
А у неё apt-get remove <имя пакета> не должно работать разве ?
А автоматическая очистка может привести к тому, что ты останешься с единственной нерабочей парой ядро/initrd.
AS ★★★★★ ( 15.03.16 21:48:16 )Последнее исправление: AS 15.03.16 21:49:27 (всего исправлений: 1)
Зачем ты вообще создал /boot?!
Если у тебя EFI, то надо было создавать /boot/efi. Если нет, то вообще не создавать.
Незнаю как это делать в 'системах', но в debian-подобных boot не вычищается ничем. Идешь и rm неугодные файлы сам. Это linux, детка.
Не настолько убунтовод,но в федоре у меня всегда три версии ядра, старые удаляются автоматически.
Ведро обновляется только командой dselect-upgrade. Соответственно если видишь, что есть обновления ядра, то делаешь так:
Последнее исправление: Valkeru 15.03.16 22:13:20 (всего исправлений: 1)
Выше пишут, что в такой ситуации можно остаться с нерабочим ведром и инирд. Что делать?
С чего бы? autoremove сносит пакеты, которые были установлены по зависимостям и пакеты, с которыми они притянуты и пакеты, с которыми они поставились уже удалены или ещё что с ними случилось. В случае с ядром удаляется, ЕМНИП, ведро на 2 версии младше того, что сейчас установлено. То есть условно говоря у нас есть стоящее сейчас ведро 3.19, до него ставилось 3.18 и ещё раньше 3.17, а ставишь ты сейчас 4.0. autoremove тебе снесёт 3.17, потом dkms снесёт initrd для него же. Итого после установки у тебя будет загружаемое по дефолту 4.0, и два старых 3.19 и 3.18, для которых всё уж точно рабочее.
У меня /boot - около 500мб, но всё-равно быстро загаживается. Есть ли какие-то способы его чистить автоматически? Убунта может сгенерить кривой initrd из-за нехватки места в /boot. И как это делать с других системах, типа генты и центоси.
А у неё apt-get remove <имя пакета> не должно работать разве ?
А автоматическая очистка может привести к тому, что ты останешься с единственной нерабочей парой ядро/initrd.
AS ★★★★★ ( 15.03.16 21:48:16 )Последнее исправление: AS 15.03.16 21:49:27 (всего исправлений: 1)
Зачем ты вообще создал /boot?!
Если у тебя EFI, то надо было создавать /boot/efi. Если нет, то вообще не создавать.
Незнаю как это делать в 'системах', но в debian-подобных boot не вычищается ничем. Идешь и rm неугодные файлы сам. Это linux, детка.
Не настолько убунтовод,но в федоре у меня всегда три версии ядра, старые удаляются автоматически.
Ведро обновляется только командой dselect-upgrade. Соответственно если видишь, что есть обновления ядра, то делаешь так:
Последнее исправление: Valkeru 15.03.16 22:13:20 (всего исправлений: 1)
Выше пишут, что в такой ситуации можно остаться с нерабочим ведром и инирд. Что делать?
С чего бы? autoremove сносит пакеты, которые были установлены по зависимостям и пакеты, с которыми они притянуты и пакеты, с которыми они поставились уже удалены или ещё что с ними случилось. В случае с ядром удаляется, ЕМНИП, ведро на 2 версии младше того, что сейчас установлено. То есть условно говоря у нас есть стоящее сейчас ведро 3.19, до него ставилось 3.18 и ещё раньше 3.17, а ставишь ты сейчас 4.0. autoremove тебе снесёт 3.17, потом dkms снесёт initrd для него же. Итого после установки у тебя будет загружаемое по дефолту 4.0, и два старых 3.19 и 3.18, для которых всё уж точно рабочее.
Читайте также: