Я получил сообщение об ошибке, объясняющее, что мой / boot заполнен. попытка очистки старых файлов изображений всегда кажется неудачной из-за ошибок заполнения диска или ошибок зависимости. Может кто-нибудь объяснить, где я иду не так.
$ sudo apt-get autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run ‘apt-get -f install’ to correct these.
The following packages have unmet dependencies.
linux-image-extra-3.13.0-44-generic : Depends: linux-image-3.13.0-44-generic but it is not installed
linux-image-extra-3.13.0-45-generic : Depends: linux-image-3.13.0-45-generic but it is not installed
linux-image-generic : Depends: linux-image-3.13.0-45-generic but it is not installed
E: Unmet dependencies. Try using -f.
$ ls /boot
abi-3.13.0-32-generic initrd.img-3.13.0-43-generic
abi-3.13.0-36-generic lost+found
abi-3.13.0-37-generic memtest86+.bin
abi-3.13.0-39-generic memtest86+.elf
abi-3.13.0-40-generic memtest86+_multiboot.bin
abi-3.13.0-43-generic System.map-3.13.0-32-generic
config-3.13.0-32-generic System.map-3.13.0-36-generic
config-3.13.0-36-generic System.map-3.13.0-37-generic
config-3.13.0-37-generic System.map-3.13.0-39-generic
config-3.13.0-39-generic System.map-3.13.0-40-generic
config-3.13.0-40-generic System.map-3.13.0-43-generic
config-3.13.0-43-generic vmlinuz-3.13.0-32-generic
grub vmlinuz-3.13.0-36-generic
initrd.img-3.13.0-32-generic vmlinuz-3.13.0-37-generic
initrd.img-3.13.0-36-generic vmlinuz-3.13.0-39-generic
initrd.img-3.13.0-37-generic vmlinuz-3.13.0-40-generic
initrd.img-3.13.0-39-generic vmlinuz-3.13.0-43-generic
initrd.img-3.13.0-40-generic
я использовал
kernelver=$(uname -r | sed -r 's/-[a-z]+//')
dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve $kernelver
получить
linux-headers-3.13.0-32
linux-headers-3.13.0-32-generic
linux-headers-3.13.0-36
linux-headers-3.13.0-36-generic
linux-headers-3.13.0-37
linux-headers-3.13.0-37-generic
linux-headers-3.13.0-39
linux-headers-3.13.0-39-generic
linux-headers-3.13.0-40
linux-headers-3.13.0-40-generic
linux-headers-3.13.0-44
linux-headers-3.13.0-44-generic
linux-headers-3.13.0-45
linux-headers-3.13.0-45-generic
linux-image-3.13.0-32-generic
linux-image-3.13.0-36-generic
linux-image-3.13.0-37-generic
linux-image-3.13.0-39-generic
linux-image-3.13.0-40-generic
Затем выбираем первое изображение для удаления
$ sudo apt-get purge linux-image-3.13.0-32-generic
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies.
linux-image-extra-3.13.0-32-generic : Depends: linux-image-3.13.0-32-generic but it is not going to be installed
linux-image-extra-3.13.0-44-generic : Depends: linux-image-3.13.0-44-generic but it is not going to be installed
linux-image-extra-3.13.0-45-generic : Depends: linux-image-3.13.0-45-generic but it is not going to be installed
linux-image-generic : Depends: linux-image-3.13.0-45-generic but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
boot
package-management
disk-usage
Филип Ховард
источник
источник
sudo apt-get autoremove
иls /boot
.uname -r
команду, чтобы узнать текущую версию ядра, и попробуйте удалить другое ядро.Ответы:
В таком случае я бы использовал
dpkg
инструмент для принудительного удаления некоторых пакетов ядра. Это не рекомендуется для общего использования и немного опасно , но в этом случае могут помочь неудовлетворенные зависимости.Прежде всего найдите ядро, в котором загружается система. Тот, который в данный момент загружен. Откройте терминал (CTRL + ALT + T) и введите следующую команду
Он покажет вам загруженное ядро, вы НЕ должны пытаться удалить это.
Затем выполните команду
он вернет все установленные образы. Выберите один или два и попробуйте удалить их. Попробуйте принудительно удалить / очистить их. Например
Вы можете сделать то же самое для других изображений, чтобы освободить место.
Затем вы можете попробовать установить недостающие пакеты, или
попытаться разрешить зависимости.
Наконец, выполните команду "cleanup old kernels"
Команда выше удалит ВСЕ ядра, кроме того, которое загружено в данный момент.
Поскольку у вас есть отдельный раздел / boot, имейте в виду, что вам нужно будет отслеживать его пространство и часто очищать (частота зависит от пространства / boot)
источник
dpkg
, мне пришлось бежать ,sudo apt-get -f autoremove
чтобыapt-get
остановить жалуясь неудовлетворенными зависимостями. В противном случае,sudo apt-get -f install
очевидно, продолжал пытаться переустановить все образы ядра, которые я удалилdpkg
, которые, очевидно, просто/boot
снова заполнились .apt-get -f autoremove
комментария в @mdunsmuir, приведенного выше, он все еще хочет установить все старые ядра во время любой из приведенных выше операций очистки. Есть ли способ просто сказать ему, чтобы он игнорировал несвязанные зависимости и удалял одно, полное старое ядро?sudo dpkg --force-all -P linux-image-extra-3.13.0-32-generic
. В противном случае эти дополнения по-прежнему зависят от фактического образа, и этот-f
флаг приведет к переустановке образа и последующему исчерпанию дискового пространства.Это то, что у меня работало на Ubuntu 16.04.
источник
Список всех ядер:
Показать текущее ядро:
Перечислите все ядра, кроме текущего:
Убедитесь, что вашего текущего ядра нет в этом списке.
Удалите все ядра, кроме текущего:
Очистить другие вещи:
источник