Я пытаюсь сделать, do-release-upgrade
но потом я получаю:
Недостаточно свободного места на диске
Обновление прервано. Для обновления требуется всего 25,7 М свободного места на диске «/ boot». Пожалуйста, освободите как минимум дополнительные 25,7 М дискового пространства в / boot. Очистите корзину и удалите временные пакеты из предыдущих установок, используя команду «sudo apt-get clean».
Выход df
:
237251272 214797108 10402504 96% /
udev 488120 4 488116 1% /dev
tmpfs 198676 668 198008 1% /run
none 5120 0 5120 0% /run/lock
none 496684 0 496684 0% /run/shm
/dev/sda1 233191 225867 0 100% /boot
Почему же на загрузке не осталось места? Вот вывод ls -as /boot
:
total 221839
4 .
4 ..
645 abi-2.6.32-34-generic-pae
698 abi-2.6.35-30-generic-pae
727 abi-2.6.38-12-generic-pae
727 abi-3.0.0-12-generic-pae
727 abi-3.0.0-13-generic-pae
727 abi-3.0.0-14-generic-pae
727 abi-3.0.0-15-generic-pae
727 abi-3.0.0-16-generic-pae
727 abi-3.0.0-17-generic-pae
727 abi-3.0.0-19-generic-pae
761 abi-3.0.0-20-generic-pae
115 config-2.6.32-34-generic-pae
128 config-2.6.35-30-generic-pae
136 config-2.6.38-12-generic-pae
140 config-3.0.0-12-generic-pae
140 config-3.0.0-13-generic-pae
140 config-3.0.0-14-generic-pae
140 config-3.0.0-15-generic-pae
140 config-3.0.0-16-generic-pae
140 config-3.0.0-17-generic-pae
140 config-3.0.0-19-generic-pae
140 config-3.0.0-20-generic-pae
5 grub
10773 initrd.img-2.6.32-34-generic-pae
13619 initrd.img-2.6.35-30-generic-pae
15365 initrd.img-2.6.38-12-generic-pae
16481 initrd.img-3.0.0-12-generic-pae
16487 initrd.img-3.0.0-13-generic-pae
16501 initrd.img-3.0.0-14-generic-pae
16476 initrd.img-3.0.0-15-generic-pae
16481 initrd.img-3.0.0-16-generic-pae
16478 initrd.img-3.0.0-17-generic-pae
12 lost+found
174 memtest86+.bin
176 memtest86+_multiboot.bin
1700 System.map-2.6.32-34-generic-pae
1841 System.map-2.6.35-30-generic-pae
2115 System.map-2.6.38-12-generic-pae
2141 System.map-3.0.0-12-generic-pae
2141 System.map-3.0.0-13-generic-pae
2143 System.map-3.0.0-14-generic-pae
2146 System.map-3.0.0-15-generic-pae
2147 System.map-3.0.0-16-generic-pae
2147 System.map-3.0.0-17-generic-pae
2148 System.map-3.0.0-19-generic-pae
2149 System.map-3.0.0-20-generic-pae
2 vmcoreinfo-2.6.32-34-generic-pae
2 vmcoreinfo-2.6.35-30-generic-pae
2 vmcoreinfo-2.6.38-12-generic-pae
2 vmcoreinfo-3.0.0-12-generic-pae
2 vmcoreinfo-3.0.0-13-generic-pae
2 vmcoreinfo-3.0.0-14-generic-pae
2 vmcoreinfo-3.0.0-15-generic-pae
2 vmcoreinfo-3.0.0-16-generic-pae
2 vmcoreinfo-3.0.0-17-generic-pae
2 vmcoreinfo-3.0.0-19-generic-pae
2 vmcoreinfo-3.0.0-20-generic-pae
4092 vmlinuz-2.6.32-34-generic-pae
4347 vmlinuz-2.6.35-30-generic-pae
4567 vmlinuz-2.6.38-12-generic-pae
4675 vmlinuz-3.0.0-12-generic-pae
4676 vmlinuz-3.0.0-13-generic-pae
4681 vmlinuz-3.0.0-14-generic-pae
4698 vmlinuz-3.0.0-15-generic-pae
4700 vmlinuz-3.0.0-16-generic-pae
4700 vmlinuz-3.0.0-17-generic-pae
4703 vmlinuz-3.0.0-19-generic-pae
4705 vmlinuz-3.0.0-20-generic-pae
Выход uname -a
:
Linux kitsch 3.0.0-17-generic-pae #30-Ubuntu SMP Thu Mar 8 17:53:35 UTC 2012 i686 i686 i386 GNU/Linux
upgrade
kernel
disk-usage
зажим
источник
источник
ls -l /boot
иuname -a
на ваш вопрос.dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'
к вашему вопросу.ls -as /boot
может быть полезно вместо Он будет включать в себя только размеры файлов.Ответы:
Ваш / boot раздел заполнен старыми ядрами. Иногда это так, и я не уверен, почему это никогда не исправляется. Вы можете легко удалить старые ядра, если знаете, в какие пакеты они пришли.
Сначала проверьте,
uname -a
чтобы проверить текущую версию.Затем выполните следующую команду:
Эта команда выведет список всех пакетов, которые вам больше не нужны. Я не люблю удалять их автоматически, мне нравится контролировать, когда дело доходит до удаления ядер. Таким образом, для каждой перечисленной упаковки сделайте следующее:
Интермеццо
Это intermezzo более подробно описывает, как работают команды, и пытается исправить проблему
linux-libc-dev:amd64
. Большинство пользователей могут пропустить этот пункт.dpkg -l 'linux-*'
перечислите все пакеты, имена которых начинаются с 'linux-'sed '/^ii/!d; remove all lines that do *not* start with
ii`uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/"
найти текущую версию ядра/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d
Удалить все строки, кроме тех, которые содержат текущий номер версии ядраs/^[^ ]* [^ ]* \([^ ]*\).*/\1/
Для каждой строки списка только название пакета/[0-9]/!d
Удалить строки, которые не содержат чисел.Чтобы исправить проблему Фредерика Норда, я думаю, что команда может быть изменена следующим образом:
Это в основном добавляет дополнительный фильтр:
linux-headers
илиlinux-image
/Интермеццо
Где
some-kernel-package
можно заменить одним из перечисленных пакетов. Просто помните, что вы не удаляете пакеты ядра, которые используются в данный момент (как указано вuname -a
), например.sudo apt-get purge -y linux-headers-3.0.0-12
и т.п.Это может быть автоматизировано с помощью команды xargs, но мне это не нравится. Это личная вещь. Тем не менее, вот команда, чтобы сделать это:
Вот как я
/boot
выгляжу: одно запасное ядро (2.6.38-11) на всякий случай и текущее 3.2.0-24:И использование файловой системы:
источник
It does that sometimes, not sure why it is never fixed
Ubuntu приняла решение, в лучшую или худшую сторону, предоставлять обычные новые ядра в виде новых пакетов, а не в качестве обновлений существующих пакетов, чтобы иметь возможность установить несколько ядер и переключаться между ними по желанию. Я согласен, что это предположение не устраивает 95% людей, которым просто нужно последнее ядро (и, возможно, один запасной вариант в случае новых проблем с загрузкой), и которые не хотят сами управлять установленными ядрами. Возможно, в будущем Ubuntu изменит это поведение. Пока убедитесь, что ваш / boot огромен.sudo apt-get autoremove
сделал свое дело для меня, он успешно очистил все неиспользуемые пакеты ядра.
источник
man apt-get
autoremove используется для удаления пакетов, которые были автоматически установлены для удовлетворения зависимостей для какого-либо пакета и которые больше не нужны. ядро не будет установлено для удовлетворения зависимостей, оно устанавливается во время обновлений./dev/sda1, 240M total, 171M used, 57M free, 75% used /boot
после:/dev/sda1, 240M total, 129M used, 98M free, 57% used /boot
Эквивалентно принятому ответу - другой (возможно) более простой способ - установить
ubuntu-tweak
инструмент, его можно скачать отсюда . Перейдите в «Дворник» и выберите «Старое ядро» для очистки. Это можно сделать за несколько кликов. (протестировано на рабочем столе 14.04)источник
/boot
возникает постоянно, так что это мое любимое решение - легко запустить приложение, которое выполняет работу одним щелчком мыши.По сравнению с другими ответами с графическим интерфейсом преимущество этого ответа в том, что нативный Ubuntu Bash используется без установки сторонних приложений.
Решение на базе Zenity и Bash
Zenity предоставляет удобный графический интерфейс для терминала для обработки списка и выбора элементов с помощью радиокнопок :
Текущее ядро, с которым вы загрузились, не может быть удалено и не включено в список. Указанный размер - это то, сколько будет сохранено в
/boot
каталоге. Больше сохранено на вашем диске, потому что двоичные файлы ядра находятся и в других областях. 27 июля 2017 года примечание: каталоги/usr/src/*kernel_version*
и/lib/modules/*kernel_version*
сейчас включены также.Дата изменения обнаруживается с помощью
stat
команды. В моей системе эта дата «затрагивается» каждый раз, когда ядро загружается с помощью этого ( Как узнать, когда в последний раз загружалась определенная версия ядра? ) Cron скрипт перезагрузки. Однако в вашей системе эта дата будет датой выпуска ядра, а не последней, когда вы ее загрузили.apt-get purge
дает вам возможность прерватьВам предоставляется последняя возможность просмотреть все, что будет очищено, и увидеть общее дисковое пространство (несколько вводящее в заблуждение), которое будет восстановлено:
Код
Скопируйте этот код в исполняемый файл с именем
rm-kernels
в/usr/local/bin
:ПРИМЕЧАНИЕ. Вам нужно разрешение sudo для создания файла, поэтому используйте:
Чтобы сделать файл исполняемым, используйте:
ПРИМЕЧАНИЕ. Для серверной (текстовой, а не графической) версии этого сценария см .: Как удалить старые версии ядра для очистки меню загрузки?
28 июля 2017 г. Обновления
Расчетный размер каждого ядра был взят из
/boot/*kernel_version*
5 файлов общим объемом ~ 50 МБ. Формула была изменена, чтобы включить файлы в/usr/src/*kernel_version*
и/lib/modules/*kernel_version*
. Расчетный размер для каждого ядра теперь составляет ~ 400 МБ. Выше код дляrm-kernels
иrm-kernels-server
был обновлен. Однако приведенные выше примеры экранов еще не отражают эти изменения.По умолчанию размер файлов для linux-заголовков оценивается в 125 МБ, а для linux-образа - в 220 МБ, поскольку он
du
может быть очень медленным, если файлы не находятся в кеше. Чтобы получить реальный размер,du
передайте любой параметр в скрипт.Сумма всех размеров ядра (за исключением текущей работающей версии, которую нельзя удалить) теперь отображается в строке заголовка.
Диалоговое окно, используемое для отображения даты последнего доступа каждого ядра . Эта дата может быть перезаписана для всех ядер во время резервного копирования или аналогичных операций. Теперь в диалоговом окне отображается Дата изменения .
источник
Вы можете легко обрабатывать ядра с помощью менеджера пакетов synaptic. Но сначала вы должны знать текущее используемое имя выпуска ядра в терминальной строке:
linux@linux-desktop:~$ uname -r 4.4.0-75-generic
Так что хотя бы эту версию вы должны оставить нетронутой. Откройте synaptic и начните заполнять заполнитель быстрого фильтра, как показано ниже: Теперь вы можете выбрать все пакеты, которые вы хотите удалить, и сделать следующее: Пометить для полного удаления -> Применить . Я бы посоветовал сохранить хотя бы последний текущий пакет ядра и одно предыдущее ядро. Например, в этом случае вы можете безопасно избавиться от linux-image-4.4.0-66-generic и linux-image-extra-4.4.0-66-generic , но хорошо сохранить 4.4.0-72 и, конечно, 4.4.0-75 .источник
Для удобства командной строки:
https://github.com/erichs/bootnukem
затем
источник
Работает на Linux Mint 18.3 (на основе Ubuntu 16.04).
sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1) --assume-yes
Источник: https://ubuntuforums.org/showthread.php?t=2248846&p=13146650#post13146650
источник