Не удается удалить старые ядра из-за неудовлетворенных зависимостей

Я пытаюсь удалить старые ядра на Ubuntu 17.10, но я попал с неудовлетворенной ошибкой зависимостей. Мое текущее ядро ​​- linux 4.13.0-38-generic.

Мой вывод из dpkg -l | grep linux-image | awk '{print$2} таков:

linux-image-4.13.0-36-generic linux-image Linux-image-4.13.0-38-generic linux-image-4.13.0-39-generic linux-image-extra-4.13.0-36-generic linux-image-extra-4.13 .0-37-generic linux-image-extra-4.13.0-38-generic linux-image-extra-4.13.0-39-generic linux-image-extra-4.13.0-41-generic linux-image-generic

Когда я пытаюсь удалить старые ядра (sudo apt-get purge linux-image-x.x.x-x-generic), это ошибка:

linux-image-4.13.0-36-generic

Чтение списков пакетов ... Готово Создание дерева зависимостей Чтение информации о состоянии ... Готово Возможно, вы захотите запустить «apt -fix-broken install», чтобы исправить это. Следующие пакеты имеют неудовлетворенные зависимости: linux-image-extra-4.13.0-41-generic: Зависит от linux-image-4.13.0-41-generic, но не установлен linux-image-generic: Зависит от linux-image -4.13.0-41-generic, но он не установлен E: Неудовлетворенные зависимости. Попробуйте «apt --fix-broken install» без пакетов (или укажите решение).

Reading package lists... Done Building dependency tree Reading state information... Done Correcting dependencies... Done The following packages were automatically installed and are no longer required: libqpdf18 linux-headers-4.13.0-37 linux-headers-4.13.0-37-generic linux-image-4.13.0-37-generic linux-image-extra-4.13.0-37-generic Use 'sudo apt autoremove' to remove them. The following additional packages will be installed: linux-image-4.13.0-41-generic Suggested packages: fdutils linux-doc-4.13.0 | linux-source-4.13.0 linux-tools The following NEW packages will be installed: linux-image-4.13.0-41-generic 0 upgraded, 1 newly installed, 0 to remove and 15 not upgraded. 5 not fully installed or removed. Need to get 0 B/20.9 MB of archives. After this operation, 72.6 MB of additional disk space will be used. Do you want to continue? [Y/n] Y (Reading database ... 374331 files and directories currently installed.) Preparing to unpack .../linux-image-4.13.0-41-generic_4.13.0-41.46_amd64.deb ... Examining /etc/kernel/preinst.d/ run-parts: executing /etc/kernel/preinst.d/intel-microcode 4.13.0-41-generic /boot/vmlinuz-4.13.0-41-generic Done. Unpacking linux-image-4.13.0-41-generic (4.13.0-41.46) ... dpkg: error processing archive /var/cache/apt/archives/linux-image-4.13.0-41-generic_4.13.0-41.46_amd64.deb (--unpack): cannot copy extracted data for './boot/vmlinuz-4.13.0-41-generic' to '/boot/vmlinuz-4.13.0-41-generic.dpkg-new': failed to write (No space left on device) No apport report written because the error message indicates a disk full error dpkg-deb: error: subprocess paste was killed by signal (Broken pipe) Examining /etc/kernel/postrm.d . run-parts: executing /etc/kernel/postrm.d/initramfs-tools 4.13.0-41-generic /boot/vmlinuz-4.13.0-41-generic run-parts: executing /etc/kernel/postrm.d/zz-update-grub 4.13.0-41-generic /boot/vmlinuz-4.13.0-41-generic Errors were encountered while processing: /var/cache/apt/archives/linux-image-4.13.0-41-generic_4.13.0-41.46_amd64.deb

Чтобы исправить поврежденные зависимости, я использую sudo apt --fix-broken install, нажмите «Да», когда вас спросят, хочу ли я продолжить и получить этот вывод:

Вывод uname -r: 4.13.0-38-generic

Filesystem Size Used Avail Use% Mounted on udev 63G 0 63G 0% /dev tmpfs 13G 2.7M 13G 1% /run /dev/mapper/sdb2_crypt 1.9T 1004G 779G 57% / tmpfs 63G 39M 63G 1% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 63G 0 63G 0% /sys/fs/cgroup /dev/nvme0n1p1 1.1T 472G 573G 46% /mnt/scratch /dev/sdb1 231M 222M 0 100% /boot /dev/md126p1 9.1T 3.0T 6.2T 33% /mnt/10TB tmpfs 13G 84K 13G 1% /run/user/1001 tmpfs 13G 0 13G 0% /run/user/1004
1
задан 21 May 2018 в 20:18

2 ответа

Сначала вам нужно освободить место в вашем /boot каталоге. У вас есть четыре ядра цепочки 4.4.13.0: -36, -37, -38 и -39. Вам нужны только -38 и -39. Поэтому вам нужно удалить -36 и -37. У меня их нет, но чтобы вы поняли, как они будут выглядеть, я использовал эту команду:

$ ll /boot/*4.4.0-124* -rw-r--r-- 1 root root 1251054 May 2 08:58 /boot/abi-4.4.0-124-generic -rw-r--r-- 1 root root 190654 May 2 08:58 /boot/config-4.4.0-124-generic -rw-r--r-- 1 root root 43369621 May 17 06:00 /boot/initrd.img-4.4.0-124-generic -rw-r--r-- 1 root root 255 May 2 08:58 /boot/retpoline-4.4.0-124-generic -rw------- 1 root root 3898100 May 2 08:58 /boot/System.map-4.4.0-124-generic -rw------- 1 root root 7143952 May 2 08:58 /boot/vmlinuz-4.4.0-124-generic

Повторите эту команду в своей системе, заменив 4.4.0-124 на 4.13.0-36 и [F16]. Как вы увидите, каждое ядро ​​занимает около 450 МБ в /boot.

Затем очень тщательно введите эти команды (но не комментарии #):

sudo rm -f /boot/*4.13.0-36* sudo rm -f /boot/*4.13.0-37* sudo apt install -f # Ensure all dependency errors are now fixed. sudo apt update # There should be no errors reported. sudo apt autoremove # This will finish removing kernels -36 & -37. sudo apt upgrade # This should install new kernel 4.13.0-41 sudo reboot # You will now boot into kernel 4.13.0-41

После перезагрузки , и в любое другое время после загрузки нового запуска обновления ядра:

sudo apt autoremove # This will keep you at current kernel plus previous version (4.13.0-39) and remove all others

Если у вас есть малейшие сомнения или неопределенность очень внимательно .

0
ответ дан 17 July 2018 в 13:47

Сначала вам нужно освободить место в вашем /boot каталоге. У вас есть четыре ядра цепочки 4.4.13.0: -36, -37, -38 и -39. Вам нужны только -38 и -39. Поэтому вам нужно удалить -36 и -37. У меня их нет, но чтобы вы поняли, как они будут выглядеть, я использовал эту команду:

$ ll /boot/*4.4.0-124* -rw-r--r-- 1 root root 1251054 May 2 08:58 /boot/abi-4.4.0-124-generic -rw-r--r-- 1 root root 190654 May 2 08:58 /boot/config-4.4.0-124-generic -rw-r--r-- 1 root root 43369621 May 17 06:00 /boot/initrd.img-4.4.0-124-generic -rw-r--r-- 1 root root 255 May 2 08:58 /boot/retpoline-4.4.0-124-generic -rw------- 1 root root 3898100 May 2 08:58 /boot/System.map-4.4.0-124-generic -rw------- 1 root root 7143952 May 2 08:58 /boot/vmlinuz-4.4.0-124-generic

Повторите эту команду в своей системе, заменив 4.4.0-124 на 4.13.0-36 и [F16]. Как вы увидите, каждое ядро ​​занимает около 450 МБ в /boot.

Затем очень тщательно введите эти команды (но не комментарии #):

sudo rm -f /boot/*4.13.0-36* sudo rm -f /boot/*4.13.0-37* sudo apt install -f # Ensure all dependency errors are now fixed. sudo apt update # There should be no errors reported. sudo apt autoremove # This will finish removing kernels -36 & -37. sudo apt upgrade # This should install new kernel 4.13.0-41 sudo reboot # You will now boot into kernel 4.13.0-41

После перезагрузки , и в любое другое время после загрузки нового запуска обновления ядра:

sudo apt autoremove # This will keep you at current kernel plus previous version (4.13.0-39) and remove all others

Если у вас есть малейшие сомнения или неопределенность очень внимательно .

0
ответ дан 20 July 2018 в 13:51

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

Похожие вопросы: