16.04 LTS не позволяет мне обновляться, говорит & ldquo; Недостаточно свободного места на диске & rdquo; (Обновлено) [dубликат]

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

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

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

16 ответов

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

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

uname -r

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

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

и удалить ненужные вам ядра, выполнив это:

sudo apt-get remove linux-image-VERSION

Заменить VERSION версией ядра вы хотите удалить.

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

sudo apt-get autoremove

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

sudo update-grub
300
ответ дан 17 July 2018 в 13:41

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

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

uname -r

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

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

и удалить ненужные вам ядра, выполнив это:

sudo apt-get remove linux-image-VERSION

Заменить VERSION версией ядра вы хотите удалить.

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

sudo apt-get autoremove

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

sudo update-grub
300
ответ дан 20 July 2018 в 13:45

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

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

uname -r

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

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

и удалить ненужные вам ядра, выполнив это:

sudo apt-get remove linux-image-VERSION

Заменить VERSION версией ядра вы хотите удалить.

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

sudo apt-get autoremove

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

sudo update-grub
300
ответ дан 23 July 2018 в 14:33

Удаление старых ядер (для свободного места в / 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
1
ответ дан 17 July 2018 в 13:41

sudo apt-get autoremove

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

2
ответ дан 17 July 2018 в 13:41

Примечание: это только если Вы не можете использовать apt для очистки из-за 100% полный /загрузки

если apt-вам не работает, потому что ваш /Boot находится на 100%, вам потребуется, чтобы вычистить первый /загрузки. Скорее всего, это обновить ядро в частичное Установить, что означает АПТ почти полностью замерз, и будет держать говорю вам, чтобы запустить apt-get -f install даже при том, что команда не справляется.

получить список изображений ядра и определить, что вы можете сделать без. Эта команда покажет установленные ядра кроме запущенных один 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}.

[F5], чтобы очистить, что делает апта брюзга о частичной установки.

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

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

предложение, запустить [F8] и [F9] и заботиться о каких-либо обновлений, которые могут иметь пятился, ждет вас, чтобы открыть весь раздел /Boot.

Suggestion2, Обзор https://help.ubuntu.com/community/AutomaticSecurityUpdates и рассмотреть вопрос о создании автоматической-обновление::удаление неиспользуемых зависимостей в True в /etc/кв./пом.конф.д/50unattended-модернизацию. Это будет эквивалентно команде autoremove после каждого обновления, чтобы убедиться, что вы очистить неиспользуемые ядра, но также удалить другие вещи, он думает, что не используются избавляя вас от этой проблемы в будущем.

245
ответ дан 17 July 2018 в 13:41

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

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

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

Затем

sudo bootnukem --dry-run

Удалите --dry-run после подтверждения, что он выглядит безопасно

0
ответ дан 17 July 2018 в 13:41

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

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

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

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

vim /etc/fstab

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

update-grub

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

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

6
ответ дан 17 July 2018 в 13:41

Удаление старых ядер (для свободного места в / 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
1
ответ дан 20 July 2018 в 13:45
  • 1
    это был единственный, который работал ... большое решение – John 20 October 2017 в 13:29

sudo apt-get autoremove

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

2
ответ дан 20 July 2018 в 13:45

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

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

Получить список изображений ядра и определить, с чем вы можете обойтись. Эта команда покажет установленные ядра, за исключением текущей версии 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 grumpy об частичной установке.

Если вы столкнулись с ошибкой, включающей строку типа «Внутренняя ошибка: не удалось найти изображение (/ 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, чтобы позаботиться о любых обновлениях, которые могут быть скопированы, ожидая, пока вы обнаружите полный / загрузочный раздел.

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

245
ответ дан 20 July 2018 в 13:45
  • 1
    Таким образом, у меня есть последняя для следующей перезагрузки, а затем первая, прежде чем на всякий случай что-то сломается в этом. Обычно у меня много места, поэтому мне не больно иметь несколько, и это удовлетворяет моей паранойе, поскольку у вас не было достаточно вариантов резервного копирования в любом сценарии. – flickerfly 22 April 2014 в 11:32
  • 2
    У меня никогда не было проблем, вызванных автоматическими обновлениями. Я могу представить себе сценарии, где это может быть проблемой, главным образом, в зависимости от того, теряются ли потери на не-deb-упакованных установках. Скажем, вы устанавливаете php, решаете удалить его и установить более новую версию из источника. Эта версия имеет зависимости, предоставленные предыдущей установкой, но apt не знает, что она по-прежнему требуется. В следующий раз, когда вы запустите auto-remove, эти зависимости исчезнут. Если автоматизировать, это может быть немного запутанным. Если вы не устанавливаете вне репозиториев, я считаю, что это абсолютно безопасно. – flickerfly 15 April 2015 в 16:08
  • 3
    Увидев это в несколько vSphere и виртуальных серверов (где ядра были автоматически обновлены, но не сняли после этого), я написал скрипт Python автоматизировать. Я бы хотел, чтобы на него больше глаз – EvanK 30 September 2015 в 02:39
  • 4
    Если вы используете dpkg --purge при полной загрузке, вы получите следующее $ sudo dpkg --purge linux-image-3.13.0-65-generic dpkg: dependency problems prevent removal of linux-image-3.13.0-65-generic: linux-image-extra-3.13.0-65-generic depends on linux-image-3.13.0-65-generic. dpkg: error processing package linux-image-3.13.0-65-generic (--purge): dependency problems - not removing Errors were encountered while processing: linux-image-3.13.0-65-generic – flickerfly 13 February 2016 в 02:58
  • 5
    Это очень полезно. работал на меня. – deepdive 9 May 2018 в 13:01

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

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

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

тогда

sudo bootnukem --dry-run

удалить --dry-run после того, как вы подтвердите это выглядит безопасным

0
ответ дан 20 July 2018 в 13:45
  • 1
    В моем случае apt не работает из-за ожидающего ядра, и предлагаемое исправление является catch-22: – James Bowery 21 October 2016 в 07:26
  • 2
    Сначала мне пришлось исправлять сломанные пакеты с помощью askubuntu.com/a/304388/284313 . После этого ваше решение сработало. – James Bowery 21 October 2016 в 07:42
  • 3
    Я думаю, что это должно быть приемлемым решением на данный момент. – Fran Marzoa 5 August 2017 в 03:33
  • 4
    это намного безопаснее, чем принятый ответ. я думаю, что apt-get autoremove --purge должно быть достаточно. – Woodrow Barlow 28 August 2017 в 20:12

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

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

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

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

vim /etc/fstab

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

update-grub

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

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

6
ответ дан 20 July 2018 в 13:45
  • 1
    Это хорошая идея, но не работает, если вы хотите иметь полное шифрование диска для вашего корневого раздела. – Paŭlo Ebermann 9 November 2017 в 16:41

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

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

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

Затем

sudo bootnukem --dry-run

Удалите --dry-run после подтверждения, что он выглядит безопасным

43
ответ дан 31 July 2018 в 17:52

sudo apt-get autoremove

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

2
ответ дан 31 July 2018 в 17:52

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

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

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

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

vim /etc/fstab

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

update-grub

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

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

6
ответ дан 3 August 2018 в 09:35

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

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