Вопрос Недостаточно свободного места на диске при обновлении


При попытке и ежедневных обновлениях я получаю сообщение об ошибке при обновлении программного обеспечения. он говорит:

The upgrade needs a total of 25.3 M free space on disk `/boot`.
Please free at least an additional 25.3 M of disk space on `/boot`.
Empty your trash and remove temporary packages of former installations 
using `sudo apt-get clean`.

Я попробовал ввести sudo apt-get clean в терминал, но я все еще получаю сообщение. Все прочитанные мной страницы, похоже, для опытных Ubuntuers. Я запускаю Ubuntu 12.10. Я хочу обновиться до 13.04, но понимаю, что я должен закончить их первым.

Это результат ввода в cat /etc/fstab в Терминал:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/ubuntu-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=fa55c082-112d-4b10-bcf3-e7ffec6cebbc /boot           ext2    defaults        0       2
/dev/mapper/ubuntu-swap_1 none            swap    sw              0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0
matty@matty-G41M-ES2L:~$ 

Вывод df -h:

Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/ubuntu-root  915G   27G  842G   4% /
udev                     984M  4.0K  984M   1% /dev
tmpfs                    397M  1.1M  396M   1% /run
none                     5.0M     0  5.0M   0% /run/lock
none                     992M  1.8M  990M   1% /run/shm
none                     100M   52K  100M   1% /run/user
/dev/sda1                228M  222M     0 100% /boot
matty@matty-G41M-ES2L:~$ 

А также dpkg -l | grep linux-image дает:

ii linux-image-3.5.0-17-generic 3.5.0-17.28 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-18-generic 3.5.0-18.29 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-19-generic 3.5.0-19.30 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-21-generic 3.5.0-21.32 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-22-generic 3.5.0-22.34 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-23-generic 3.5.0-23.35 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-24-generic 3.5.0-24.37 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-25-generic 3.5.0-25.39 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-26-generic 3.5.0-26.42 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
iF linux-image-3.5.0-28-generic 3.5.0-28.48 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP

136
2018-05-22 04:30


происхождения


Кроме того, может быть полезно содержимое вашего / etc / fstab. Кажется, что / boot устанавливается на отдельный раздел. - Chuck R
Как и @Githlar, ваш fstab может предоставить нам информацию о ваших hd-разделах. - ssoto
fstab - это файл, содержащий информацию о разделах, которые монтируются при загрузке вашего компьютера. Чтобы показать содержимое этого файла, введите cat /etc/fstab в терминале. Скопируйте вывод и добавьте его в свой вопрос (вы можете отредактировать свой вопрос). Также скопируйте вывод df -h а также dpkg -l | grep linux-image, - Alaa Ali
Ваша проблема заключается в дополнительном linux-image... файлов в /boot разделение с использованием пространства - у вас всего 6 МБ бесплатно на разделе. sudo dpkg -P purge 'older_linux_image_filename' для удаления всех, кроме последних версий = 3.5.0-28.48 и 3.5.0-26.42 Это должно позволить вам обновить / обновить. - douggro
Мне просто нужно было бежать sudo apt-get autoremove чтобы исправить это. - Juampy NR


ответы:


Примечание: этот ответ должен быть скорее «объяснением», чем лучшим / простым способом удаления старых ядер. Для лучшего / простого способа удаления старых ядер просмотрите другие ответы.

Хорошо, так что из вывода /etc/fstab вы отправили, кажется, что ваш /boot монтируется на отдельный раздел, а с выхода df -h, этот раздел заполнен. Это связано с тем, что установлены старые ядра, которые не нужны; вы можете сказать, что, посмотрев на вывод dpkg -l | grep linux-image что вы опубликовали, где вы можете увидеть более одного "Linux-изображения«с разными версиями. Нам нужно удалить старые версии.

Во-первых, я хочу, чтобы вы выполнили команду uname -r в терминале это покажет вам версию ядра, которую вы сейчас используете. Мы никогда не хотим удалять эту версию ядра. Команда скажет что-то вроде этого 3.5.0-26-generic, Обратите внимание на это число, 26! Следующие команды предполагают, что это ядро, в котором вы работаете.

Команда для удаления старой версии ядра:

sudo apt-get purge linux-image-x.x.x-xx-generic

... где символы x - это числа. Итак, в вашем случае, поскольку у вас много старых версий (17, 18, 19 и т. Д.), Нам нужно будет запустить эту команду для каждой из версий, например:

  • sudo apt-get purge linux-image-3.5.0-17-generic
  • sudo apt-get purge linux-image-3.5.0-18-generic
  • sudo apt-get purge linux-image-3.5.0-19-generic

...и так далее. Но есть способ сделать все это с помощью одной команды. Команда такова (НЕ РАБОТАЙТЕ КОМАНДУ! Прочтите следующее. ):

sudo apt-get purge linux-image-3.5.0-{17,18,19,21,22,23,24}-generic

Эта команда удалит версии, указанные в скобках. Я не включил версии 25, 26 и 28 из-за следующих причин:

  • Не было 26 явно, потому что это версия ядра, которую вы сейчас используете! Это версия, которую мы получили от команды uname -r, запомнить? Мы никогда не хотим это удалять!
  • Не включал 28, потому что это то, что ваше обновление пыталось обновить до (вы можете сказать, что из iF status next it, что означает, что он «настроен наполовину»).
  • Не включал 25, потому что обычно хорошая практика заключается в том, чтобы оставить хотя бы одну старую версию. Так как вы используете 26, мы сохраним 25, поэтому мы не будем включать его в приведенную выше команду.

Поэтому, если последнее число в uname -r составляет 26 (или 28 или даже 25), тогда безопасно выполнить приведенную выше команду. Введите пароль при появлении запроса и введите y когда его спрашивают. Это покажет кучу строк и, в конце концов, вернется в командную строку (в вашем случае, matty@matty-G41M-ES2L:~$), надеюсь, без ошибок. Когда это будет сделано, сделайте df -h и посмотрите на последнюю строку, ту, которая начинается с /dev/sda1, Вы должны обнаружить, что теперь у него больше места, а процентная доля меньше 100%, как раньше. Теперь вы можете продолжить обновление.


187
2018-05-23 07:57



Это сработало!!! Спасибо! Бонусный вопрос: когда я впервые загрузил Ubuntu, я случайно удалил папку «картинки» в домашней области. Следите за этим, на стороне нет вкладки «картинки». Я обошел это, просто создав папку под названием «картинки», но она не отображается в боковой панели. Вы знаете, как его получить? Я попытался нажать и перетащить, но безрезультатно. @Alaa - carmatt95
Пожалуйста! По другому вопросу создайте еще один вопрос, и я отвечу на него. Таким образом, люди, которые ищут эту проблему, могут ее найти. - Alaa Ali
Мне жаль, что я не смог бы поддержать это каждый раз, когда возвращаюсь, чтобы ссылаться на него ... у него было бы много времени. - sevenseacat
да, снова здесь, чтобы упомянуть то же самое. Вы бы подумали, что я запомню это сейчас. - sevenseacat
Более сжатая команда для очистки всех старых ядер: sudo apt-get autoremove --purge - ctrueden


Вы можете установить Ubuntu-Tweak.To установить следующие шаги:

Откройте терминал. Добавьте необходимый репозиторий с помощью команды:

sudo add-apt-repository ppa:tualatrix/ppa

Обновите список программ командой:

sudo apt-get update

Наконец, установите Ubuntu Teak с помощью команды:

sudo apt-get install ubuntu-tweak

После этого откройте панель и введите «ubuntu tweak».

И затем перейдите к janitor и выберите Apps , Personal а также System установите флажки и нажмите чистый в правом нижнем углу.


42
2018-06-11 15:15



Гораздо лучше, чем возиться с командной строкой и пытаться удалить все ядра, но не текущие, когда у них есть даже разные версии (не только -32 в конце), а также -extra-пакеты. Ubuntu tweak спас меня 5 минут, спасибо! - POMATu
Гораздо удобнее. - Saeed Amiri
Я не мог добавить PPA, но я загрузил .deb с веб-сайта proyect ubuntu-tweak.com - Luigi Siri
нет необходимости добавлять PPA на ubuntu 14.04 - Edward Torvalds
@edwardtorvalds Конечно, вы можете установить его, не добавляя его PPA 14.04, а также 14.10 его .deb пакет, но это не самое предпочтительное. Причина, по которой вы хотите установить это через PPA, связана с тем, что она обеспечивает обновления. - αғsнιη


Быстрый способ удалить все неиспользуемые ядра и заголовки (исключая текущее запущенное ядро) был отмечен @Lekensteyn в его ответ на вопрос Как освободить больше места в / 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]+//')") 

Это должно освободить достаточно места для обновления.


14
2017-09-30 08:00





Здесь есть отчет об ошибке: https://bugs.launchpad.net/ubuntu/+source/update-manager/+bug/1183692

Не стесняйтесь сказать, «эта ошибка влияет на вас тоже», чтобы она могла получить больше внимания.


6
2017-10-29 09:38





В моей домашней системе Ubuntu я следую аналогичному методу, который был опубликован, но он немного проще и очищает больше пространства, включая заголовки ядра и т. Д.

  1. Я проверяю, какое запущенное ядро ​​использую, поскольку оно императив не мешать этому.

    uname -a
    
  2. Затем я смотрю / boot с целью удаления всех файлов, связанных с ядром, которые не связанных непосредственно с запущенным ядром. Это дает мне список всех версий ядра, которые я хочу удалить, например: 3.5.0-17, 3.5.0-18

    ls -l /boot
    
  3. Теперь я беру первую версию ядра в моем списке очистки и обнаруживаю все связанные с ней пакеты.

    dpkg -l | grep 3.5.0-17
    
  4. Очистите их от системы

    sudo apt-get purge <list of packages separated by spaces>
    
  5. вернитесь к 3 и выберите следующую версию ядра в моем списке очистки.

  6. Готово


3
2017-07-18 09:59





Я получал эту ошибку, эта статья помогла.

я использовал df -h чтобы определить, что загрузка была заполнена, uname -r для версии, затем использовали purge строка, указанная выше, для удаления старых ядер. одноядерная чистка работала, мульти-нет (для меня).

Я нашел файлы в окнах; Я не мог удалить их, должен был использовать терминал, но он показал мне старые версии, которые у меня были там.

Я понятия не имею, почему / boot (sda2) разделяется вообще и почему его так мало. но теперь я могу снова использовать программу обновления Ubuntu.

У меня был небольшой успех с sudo apt-get update,sudo apt-get upgrade, sudo apt-get clean, также попробовал бесплатное ПО Bleachbit. Используйте строку очистки, но не в текущей версии. Надеюсь, это поможет кому-то.


1
2017-08-13 02:36



edit: я не думаю, что вам нужно добавить «-генерическое» в строку очистки - Brian P


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

dpkg -l "linux-image*" | grep "^i"

Это должно обеспечить обзор набора установленных пакетов изображений ядра. Для тех Linux-изображения пакеты, которые не используются, и которые, как ожидается, не понадобятся для целей восстановления - например, например, Мне нравится сохранять хотя бы одну версию ядра за установленной активной версией, для восстановления - в противном случае вы можете удалить любые такие неиспользуемые пакеты, используя свой любимый инструмент для упаковки, например aptitude.

Я также рекомендую взглянуть на inux-заголовки, линукс-изображения дополнения (если применимо), также Linux-источник, а также Linux-инструменты пакеты, которые могут быть установлены вместе с любыми неиспользуемыми Linux-изображения пакеты.


0
2018-05-23 07:27





Я сомневаюсь, что многие, если таковые вообще имеются, будут сталкиваться с этой проблемой, но я размещаю ее здесь для документации, если кому-то это понадобится.

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

  • $ cd /usr/src Каталог, в котором источник ядра
  • $ cd linux-image-custom_kernel_name
  • $ sudo make clean

0
2017-11-10 14:41