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

132

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

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
    
задан carmatt95 22.05.2013 в 06:30
источник

8 ответов

180
  

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

Хорошо, поэтому из вывода /etc/fstab , который вы опубликовали, кажется, что ваш /boot монтируется на отдельный раздел и из вывода < strong> 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-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 это означает, что он «настроен наполовину»).
  • Не включал 25, потому что обычно рекомендуется оставить хотя бы одну старую версию. Так как вы используете 26, мы будем держать 25, поэтому мы не будем включать его в вышеприведенную команду.

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

    
ответ дан Alaa Ali 23.05.2013 в 09:57
источник
40

Вы можете установить 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 и нажмите кнопку clean внизу справа.

    
ответ дан αғsнιη 11.06.2014 в 17:15
14

Быстрый способ удалить все неиспользуемые ядра и заголовки (исключая текущее запущенное ядро) был отмечен @Lekensteyn в ответе на вопрос Как освободить больше места в / boot? :

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

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

ответ дан marianoju 30.09.2015 в 10:00
6

Здесь есть отчет об ошибке: Ссылка

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

    
ответ дан alci 29.10.2014 в 10:38
3

В моей домашней системе 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. Готово

ответ дан Kiat 18.07.2014 в 11:59
1

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

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

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

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

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

ответ дан Brian P 13.08.2014 в 04:36
0

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

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

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

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

    
ответ дан Sean Champ 23.05.2013 в 09:27
0

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

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

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