Недостаточно свободного места на диске при обновлении
Я получаю сообщение об ошибке в программе обновления программного обеспечения, когда я пытаюсь делать свои ежедневные обновления. это говорит:
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 я использую метод, аналогичный тому, который был опубликован, но он немного проще и очищает больше места, включая заголовки ядра и т. Д.
Я проверяю, какое работающее ядро я использую, так как это не должно мешать.
uname -a
Затем я смотрю на /boot с целью удаления всех файлов, связанных с ядром, которые не связаны напрямую с работающим ядром. Это дает мне список всех версий ядра, которые я хочу удалить, например: 3.5.0-17, 3.5.0-18
ls -l /boot
Теперь я беру первую версию ядра в своем списке очистки и нахожу все пакеты, связанные с ней.
dpkg -l | grep 3.5.0-17
Очистить их от системы
sudo apt-get purge <list of packages separated by spaces>
вернитесь к 3 и выберите следующую версию ядра в моем списке очистки.
Готово
Ответ Марианою действительно помог, за исключением того, что я получил ошибку, используя 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.