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

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

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

9 ответов

Решение

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

Итак, из вывода /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

... где символы х являются числами. Итак, в вашем случае, поскольку у вас много старых версий (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%, как это было раньше. Теперь вы можете продолжить обновление.

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

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

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 установите флажки и нажмите кнопку очистки внизу справа.

@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]+//')") 

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

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

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

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

Ответ Марианою действительно помог, за исключением того, что я получил ошибку, используя 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]+//')")

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

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

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

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

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

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

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

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

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

sudo apt autoremove

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

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

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

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

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

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