Какой самый безопасный способ очистки / загрузки раздела?

У меня есть 200 МБ, выделенных для раздела /boot. Всякий раз, когда я пытаюсь обновить ядро, я получаю сообщение об ошибке, в котором говорится, что /boot заполнен.

Что можно сделать для очистки /boot и удаления / резервного копирования старых ядер?

301
задан 31 May 2016 в 18:53

8 ответов

Метод командной строки:

Сначала проверьте версию ядра, чтобы не удалять используемый образ ядра, запустив:

uname -r

Теперь выполните эту команду для списка установленных ядра:

dpkg --list 'linux-image*' | grep ^ii

и удалите ядра, которые вам больше не нужны:

sudo apt-get remove linux-image-VERSION

Замените ВЕРСИЮ на версию ядра, которое хотите удалить.

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

sudo apt-get autoremove

И, наконец, вы можете запустить эту команду, чтобы обновить список ядра grub:

sudo update-grub
353
ответ дан 31 May 2016 в 18:53

Документация по этому поводу есть на https://help.ubuntu.com/community/RemoveOldKernels

В итоге: Используйте

sudo apt-get autoremove --purge
# and/or:
sudo purge-old-kernels

Средство purge-old-kernels можно установить с помощью sudo apt install byobu . Вот описание с ее справочной страницы:

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

Если вам нужно решение с копированием и вставкой, ReSearchIT Eng предлагает следующее:

sudo apt install -y byobu
sudo purge-old-kernels -y --keep 1
sudo apt-get -y autoremove --purge
56
ответ дан 31 May 2016 в 18:53

Удаление старых ядер (для освобождения места в / boot) см .: http://askubuntu.com/questions/89710/how-do-i-free-up-more-space-in-boot

sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")

Затем запустите

sudo apt-get update
6
ответ дан 31 May 2016 в 18:53

Я обнаружил, что гораздо проще отказаться от небольшого раздела и переместить / boot в корень. Это также предотвратит любые проблемы с нехваткой места в будущем.

Сначала переместите данные из загрузочного раздела в корневой (запустите как sudo -s ):

cp -a /boot /boot2
umount /boot
rmdir /boot
mv /boot2 /boot

Удалите (или закомментируйте) ] / boot запись в / etc / fstab :

vim /etc/fstab

Обновите grub и убедитесь, что все правильно:

update-grub

apt теперь может обновиться без проблем.

Остается неиспользуемый раздел размером 200 Мбайт (который вы можете использовать для чего-нибудь еще, если сочтете, что это того стоит).

8
ответ дан 31 May 2016 в 18:53

sudo apt-get autoremove

Удаляет все ядра, кроме последних двух. Проверено на Ubuntu 16.04 LTS, когда / boot был загружен на 100%, а apt-get upgrade не удалось выполнить последнее обновление ядра. Автоматическое удаление ядра является итеративным, поэтому, если у вас несколько ядер, они будут удаляться по одному. Так что наберитесь терпения.

3
ответ дан 31 May 2016 в 18:53

Зачем делать это вручную, если это можно сделать с помощью инструмента? Вы знаете, что он вам снова понадобится через 30 секунд, потому что в наши дни им требуется 30 секунд, чтобы отправить новое обновление ядра = P

Я рекомендую использовать этот инструмент, bootnukem

git clone https://github.com/erichs/bootnukem.git
cd bootnukem
sudo ./install.sh

Затем

sudo bootnukem --dry-run

] Remove - пробный запуск , как только вы убедитесь, что он выглядит безопасным

1
ответ дан 31 May 2016 в 18:53

ПРИМЕЧАНИЕ: это только в том случае, если вы не можете использовать apt для очистки из-за 100% полного / boot

Если apt-get не работает, потому что ваш / boot установлен на 100%, вам понадобится сначала очистить / загрузиться. Вероятно, это вызвало обновление ядра при частичной установке, что означает, что apt практически полностью завис и будет продолжать сообщать вам о запуске apt-get -f install , даже если эта команда продолжает давать сбой.

Get список образов ядра и определите, без чего вы можете обойтись. Эта команда покажет установленные ядра, за исключением запущенного в данный момент sudo dpkg --list 'linux-image *' | awk '{if ($ 1 == "ii") print $ 2}' | grep -v `uname -r `. Обратите внимание на две новейшие версии в списке. Вам не нужно беспокоиться о запущенном, поскольку его здесь нет. Вы можете проверить это с помощью uname -r .

Создайте команду для удаления всех файлов в / boot для ядер, которые не имеют для вас значения, используя расширение фигурных скобок, чтобы оставаться в здравом уме. Не забудьте исключить текущий и два новейших образа ядра. Пример: sudo rm -rf /boot/*-3.2.0-{23,45,49,51,52,53,54,55}-*. Вы также можете использовать диапазон с синтаксисом {80..84}.

sudo apt-get -f install , чтобы устранить причину недовольства apt по поводу частичной установки.

Если вы столкнетесь с ошибкой, содержащей строку типа «Внутренняя ошибка: не удалось найти образ (/ boot /vmlinuz-3.2.0-56-generic) ", затем выполните команду sudo apt-get purge linux-image-3.2.0-56-generic (с вашей соответствующей версией).

Наконец, , sudo apt-get autoremove , чтобы удалить старые пакеты образов ядра, потерянные в результате очистки вручную при загрузке.

Предложение, запустите sudo apt-get update и sudo apt-get upgrade , чтобы позаботиться обо всех обновлениях, которые могли быть сохранены, пока вы ждете, пока вы обнаружите полную / boot раздел

Предложение 2, просмотрите https://help.ubuntu.com/community/AutomaticSecurityUpdates и рассмотрите возможность установки для Unattended-Upgrade :: Remove-Unused-Dependencies значения true в / etc / apt / apt. conf.d / 50unattended-upgrade. Это будет эквивалентно запуску автоматического удаления после каждого обновления безопасности, чтобы быть уверенным, что вы очистите неиспользуемые ядра, но также удалит другие вещи, которые, по его мнению, не используются, что избавит вас от этой проблемы в будущем.

296
ответ дан 31 May 2016 в 18:53

Краткий ответ - использовать мой сценарий: Ubuntu-kernel-Cleanup

0
ответ дан 2 April 2021 в 01:06

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

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