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

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

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 в Терминале, но я все еще получаю сообщение. Кажется, что все страницы, которые я читаю, предназначены для опытных Убунтуров. Я использую 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
153
задан 27 June 2015 в 16:05

10 ответов

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

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

Во-первых, я хочу, чтобы вы выполнили команду 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-получить очистку 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 , что означает, что это «половина сконфигурирован ").
  • Не было 25, потому что обычно рекомендуется оставить хотя бы одну старую версию. Итак, поскольку у вас 26, мы оставим 25, поэтому мы не будем включать его в приведенную выше команду.

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

198
ответ дан 27 June 2015 в 16:05

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

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

19
ответ дан 27 June 2015 в 16:05

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

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

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

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

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

1
ответ дан 27 June 2015 в 16:05

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

Не стесняйтесь сообщить, "эта ошибка влияет и на вас ", чтобы привлечь больше внимания.

6
ответ дан 27 June 2015 в 16:05

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

  6. Готово

3
ответ дан 27 June 2015 в 16:05

Вы можете установить Ubuntu-Tweak. Для установки выполните следующие действия:

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

sudo add-apt-repository ppa:tualatrix/ppa

Обновите список программного обеспечения с помощью команды:

sudo apt-get update

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

sudo apt-get install ubuntu-tweak

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

И затем перейдите на вкладку уборщик и установите флажки Приложения , Личные и Система и нажмите кнопку очистить внизу правильно.

42
ответ дан 27 June 2015 в 16:05

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

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

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

Я также рекомендую взглянуть в связанных заголовках inux , linux-image-extras (если применимо), а также linux-source и linux-tools пакеты, которые могут быть установлены вместе с любыми неиспользованными пакетами linux-image .

0
ответ дан 27 June 2015 в 16:05

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

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

  • $ cd / usr / src Каталог, в котором находится исходный код ядра.
  • $ cd linux-image-custom_kernel_name
  • $ sudo make clean
0
ответ дан 27 June 2015 в 16:05

Ответ marianoju действительно помог, за исключением того, что я получил ошибку при использовании apt purge . Я не смог найти вариант форсирования.

Объединение dpkg нижнего уровня позволило мне продолжить:

sudo dpkg -r $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' \
               | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")
0
ответ дан 27 June 2015 в 16:05

Вы можете попробовать с помощью приведенной ниже команды удалить старые пакеты образов ядра, если вы

sudo apt autoremove

После этого вы сможете выполнить обновление

0
ответ дан 11 October 2019 в 15:44

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

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