После обновления dpkg вызывает конфигурирование grub, которое завершается с ошибкой
После очередного apt-get upgrade и apt-get autoremove на Mint 19 оказалось, что dpkg не смог настроить пакет с обновлением образа оси. Точнее, не смог удалить старый linux-image-4.15.0-66-generic. Когда запустил upgrade ещё раз, вывел вот это:
Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово Расчёт обновлений… Готово Следующий пакет устанавливался автоматически и больше не требуется: shim Для его удаления используйте «sudo apt autoremove». Следующие пакеты будут УДАЛЕНЫ: linux-image-4.15.0-66-generic Следующие пакеты будут оставлены в неизменном виде: fwupd fwupdate fwupdate-signed linux-generic linux-headers-generic linux-image-generic Следующие пакеты будут обновлены: code linux-base Обновлено 2 пакетов, установлено 0 новых пакетов, для удаления отмечено 1 пакетов, и 6 пакетов не обновлено. Установлено или удалено не до конца 5 пакетов. Необходимо скачать 0 B/62,3 MB архивов. После данной операции объём занятого дискового пространства уменьшится на 8 394 kB. Хотите продолжить? [Д/н] y Предварительная настройка пакетов . (Чтение базы данных … на данный момент установлено 410706 файлов и каталогов.) Удаляется linux-image-4.15.0-66-generic (4.15.0-66.75) … /etc/kernel/postrm.d/initramfs-tools: update-initramfs: Deleting /boot/initrd.img-4.15.0-66-generic /etc/kernel/postrm.d/zz-update-grub: Sourcing file `/etc/default/grub' Sourcing file `/etc/default/grub.d/50_linuxmint.cfg' Генерируется файл настройки grub … Найден образ linux: /boot/vmlinuz-4.15.0-76-generic Найден образ initrd: /boot/initrd.img-4.15.0-76-generic Найден образ linux: /boot/vmlinuz-4.15.0-72-generic Найден образ initrd: /boot/initrd.img-4.15.0-72-generic Найден образ linux: /boot/vmlinuz-4.15.0-70-generic Найден образ initrd: /boot/initrd.img-4.15.0-70-generic Найден образ linux: /boot/vmlinuz-4.15.0-20-generic Найден образ initrd: /boot/initrd.img-4.15.0-20-generic Найден образ linux: /boot/vmlinuz-4.15.0-76-generic Найден образ initrd: /boot/initrd.img-4.15.0-76-generic Найден образ linux: /boot/vmlinuz-4.15.0-72-generic Найден образ initrd: /boot/initrd.img-4.15.0-72-generic Найден образ linux: /boot/vmlinuz-4.15.0-70-generic Найден образ initrd: /boot/initrd.img-4.15.0-70-generic Найден образ linux: /boot/vmlinuz-4.15.0-20-generic Найден образ initrd: /boot/initrd.img-4.15.0-20-generic Добавление записи в загрузочное меню для конфигурации с микропрограммой EFI ошибка: syntax error. ошибка: Incorrect command. ошибка: syntax error. Синтаксическая ошибка в строке 138 В сгенерированном файле настроек GRUB обнаружены синтаксические ошибки. Убедитесь, что в файлах /etc/default/grub и /etc/grub.d/* ошибки отсутствуют или пошлите сообщение об ошибке в прикреплённым файлом /boot/grub/grub.cfg.new. run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1 dpkg: ошибка при обработке пакета linux-image-4.15.0-66-generic (--remove): installed linux-image-4.15.0-66-generic package post-removal script subprocess returned error exit status 1 При обработке следующих пакетов произошли ошибки: linux-image-4.15.0-66-generic E: Sub-process /usr/bin/dpkg returned an error code (1)
Сконфигурировал граб вручную с grub-mkconfig, но dpkg упрорно делал по своему. Когда посмотрел 138 строчку его сгенерированного конфига, там было так:
### BEGIN /etc/grub.d/40_custom_proxy ### menuentry "Linux Mint" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-f034ca3a-4301-49a0-8ca3-148874a7e419' < ># ЭТО 138 СТРОКА ### END /etc/grub.d/40_custom_proxy ###
Подозреваю, шо в блоке фигурных скобок должны быть какие-то указания, как в других блоках, но как их получить? Файл /etc/default/grub без комментариев выглядит так:
GRUB_DEFAULT="0" GRUB_TIMEOUT_STYLE="hidden" GRUB_TIMEOUT=0 GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`" GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX=""
set -e GRUB_DISTRIBUTOR="Ubuntu"
Прэкол в том, шо теперь dpkg пытается удалить старый линусячий образ при любой операции apt, будь то обновление, удаление или установка, так шо я не могу теперь вообще воспользоваться менеджером пакетов. Можно хотя бы как то заставить dpkg забыть об этом образе и не пытаться конфигурировать grub? Мне граб по сути не нужен, комп загружает сразу раздел с линуксом.
В очередной раз сломался пакетный менеджер, как починить?
Получаю ошибку аналогичную для почти всех действий с аптом:
$ sudo apt --fix-broken install Чтение списков пакетов… Готово Построение дерева зависимостей… Готово Чтение информации о состоянии… Готово Исправление зависимостей… Готово Следующие пакеты будут УДАЛЕНЫ: linux-image-6.1.0-10-amd64 linux-image-amd64 Обновлено 0 пакетов, установлено 0 новых пакетов, для удаления отмечено 2 пакетов, и 0 пакетов не обновлено. Установлено или удалено не до конца 2 пакетов. После данной операции объём занятого дискового пространства уменьшится на 408 MB. Хотите продолжить? [Д/н] (Чтение базы данных … на данный момент установлено 277124 файла и каталога.) Удаляется linux-image-amd64 (6.1.37-1) … Удаляется linux-image-6.1.0-10-amd64 (6.1.37-1) … /etc/kernel/postrm.d/initramfs-tools: update-initramfs: Deleting /boot/initrd.img-6.1.0-10-amd64 /etc/kernel/postrm.d/z50-raspi-firmware: raspi-firmware: missing /boot/firmware, did you forget to mount it? run-parts: /etc/kernel/postrm.d/z50-raspi-firmware exited with return code 1 dpkg: ошибка при обработке пакета linux-image-6.1.0-10-amd64 (--remove): подпроцесс из пакета linux-image-6.1.0-10-amd64 установлен сценарий post-removal возвратил код ошибки 1 dpkg: слишком много ошибок — останавливаемся При обработке следующих пакетов произошли ошибки: linux-image-6.1.0-10-amd64 Обработка остановлена из-за слишком большого количества ошибок. E: Sub-process /usr/bin/dpkg returned an error code (1) $ sudo apt install linux-image-6.1.0-10-amd64 Чтение списков пакетов… Готово Построение дерева зависимостей… Готово Чтение информации о состоянии… Готово Уже установлен пакет linux-image-6.1.0-10-amd64 самой новой версии (6.1.37-1). Обновлено 0 пакетов, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено. Установлено или удалено не до конца 2 пакетов. Необходимо скачать 0 B/68,4 MB архивов. После данной операции объём занятого дискового пространства возрастёт на 0 B. Хотите продолжить? [Д/н] y Настраивается пакет initramfs-tools (0.142) … update-initramfs: deferring update (trigger activated) Обрабатываются триггеры для initramfs-tools (0.142) … update-initramfs: Generating /boot/initrd.img-6.1.0-9-amd64 I: The initramfs will attempt to resume from /dev/nvme0n1p1 I: (UUID=1eca1608-e878-4431-a6fa-9db2363db4e3) I: Set the RESUME variable to override this. raspi-firmware: missing /boot/firmware, did you forget to mount it? run-parts: /etc/initramfs/post-update.d//z50-raspi-firmware exited with return code 1 dpkg: ошибка при обработке пакета initramfs-tools (--configure): подпроцесс из пакета initramfs-tools установлен сценарий post-installation возвратил код ошибки 1 При обработке следующих пакетов произошли ошибки: initramfs-tools E: Sub-process /usr/bin/dpkg returned an error code (1)
Выводы которые могут быть полезны
$ uname -a Linux tp 6.1.0-9-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.27-1 (2023-05-08) x86_64 GNU/Linux $ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 12 (bookworm) Release: 12 Codename: bookworm $ ls /etc/grub.d/ 00_header 05_debian_theme 10_linux 20_linux_xen 30_os-prober 30_uefi-firmware 35_fwupd 40_custom 41_custom README
$ sudo update-grub Generating grub configuration file . Found linux image: /boot/vmlinuz-6.1.0-9-amd64 Found initrd image: /boot/initrd.img-6.1.0-9-amd64 Warning: os-prober will be executed to detect other bootable partitions. Its output will be used to detect bootable binaries on them and create new boot entries. Found Linux Mint 21 Vanessa (21) on /dev/sda1 Found Debian GNU/Linux 12 (bookworm) on /dev/sda3 done $ dpkg --list | grep linux-image rH linux-image-6.1.0-10-amd64 6.1.37-1 amd64 Linux 6.1 for 64-bit PCs (signed) ii linux-image-6.1.0-9-amd64 6.1.27-1 amd64 Linux 6.1 for 64-bit PCs (signed) rc linux-image-amd64 6.1.37-1 amd64 Linux for 64-bit PCs (meta-package)
Система на ssd, налицо кривое обновление
Удаляем файлы z50-raspi-firmware в /etc/kernel/postinst.d и /etc/initramfs/post-update.d , также сделать sudo dpkg —remove —force-remove-reinstreq raspi-firmware , нахрен он тут всрался я по правде сказать тоже не понел
После обновления dpkg вызывает конфигурирование grub, которое завершается с ошибкой.
После очередного apt-get upgrade и apt-get autoremove на Mint 19 оказалось, что dpkg не смог настроить пакет с обновлением образа оси. Точнее, не смог удалить старый linux-image-4.15.0-66-generic. Когда запустил upgrade ещё раз, вывел вот это:
Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово Расчёт обновлений… Готово Следующий пакет устанавливался автоматически и больше не требуется: shim Для его удаления используйте «sudo apt autoremove». Следующие пакеты будут УДАЛЕНЫ: linux-image-4.15.0-66-generic Следующие пакеты будут оставлены в неизменном виде: fwupd fwupdate fwupdate-signed linux-generic linux-headers-generic linux-image-generic Следующие пакеты будут обновлены: code linux-base Обновлено 2 пакетов, установлено 0 новых пакетов, для удаления отмечено 1 пакетов, и 6 пакетов не обновлено. Установлено или удалено не до конца 5 пакетов. Необходимо скачать 0 B/62,3 MB архивов. После данной операции объём занятого дискового пространства уменьшится на 8 394 kB. Хотите продолжить? [Д/н] y Предварительная настройка пакетов . (Чтение базы данных … на данный момент установлено 410706 файлов и каталогов.) Удаляется linux-image-4.15.0-66-generic (4.15.0-66.75) … /etc/kernel/postrm.d/initramfs-tools: update-initramfs: Deleting /boot/initrd.img-4.15.0-66-generic /etc/kernel/postrm.d/zz-update-grub: Sourcing file `/etc/default/grub' Sourcing file `/etc/default/grub.d/50_linuxmint.cfg' Генерируется файл настройки grub … Найден образ linux: /boot/vmlinuz-4.15.0-76-generic Найден образ initrd: /boot/initrd.img-4.15.0-76-generic Найден образ linux: /boot/vmlinuz-4.15.0-72-generic Найден образ initrd: /boot/initrd.img-4.15.0-72-generic Найден образ linux: /boot/vmlinuz-4.15.0-70-generic Найден образ initrd: /boot/initrd.img-4.15.0-70-generic Найден образ linux: /boot/vmlinuz-4.15.0-20-generic Найден образ initrd: /boot/initrd.img-4.15.0-20-generic Найден образ linux: /boot/vmlinuz-4.15.0-76-generic Найден образ initrd: /boot/initrd.img-4.15.0-76-generic Найден образ linux: /boot/vmlinuz-4.15.0-72-generic Найден образ initrd: /boot/initrd.img-4.15.0-72-generic Найден образ linux: /boot/vmlinuz-4.15.0-70-generic Найден образ initrd: /boot/initrd.img-4.15.0-70-generic Найден образ linux: /boot/vmlinuz-4.15.0-20-generic Найден образ initrd: /boot/initrd.img-4.15.0-20-generic Добавление записи в загрузочное меню для конфигурации с микропрограммой EFI ошибка: syntax error. ошибка: Incorrect command. ошибка: syntax error. Синтаксическая ошибка в строке 138 В сгенерированном файле настроек GRUB обнаружены синтаксические ошибки. Убедитесь, что в файлах /etc/default/grub и /etc/grub.d/* ошибки отсутствуют или пошлите сообщение об ошибке в прикреплённым файлом /boot/grub/grub.cfg.new. run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1 dpkg: ошибка при обработке пакета linux-image-4.15.0-66-generic (--remove): installed linux-image-4.15.0-66-generic package post-removal script subprocess returned error exit status 1 При обработке следующих пакетов произошли ошибки: linux-image-4.15.0-66-generic E: Sub-process /usr/bin/dpkg returned an error code (1)
Сконфигурировал граб вручную с grub-mkconfig , но dpkg упрорно делал по своему. Когда посмотрел 138 строчку его сгенерированного конфига, там было так:
### BEGIN /etc/grub.d/40_custom_proxy ### menuentry "Linux Mint" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-f034ca3a-4301-49a0-8ca3-148874a7e419' < ># ЭТО 138 СТРОКА ### END /etc/grub.d/40_custom_proxy ###
Подозреваю, шо в блоке фигурных скобок должны быть какие-то указания, как в других блоках, но как их получить? Файл /etc/default/grub без комментариев выглядит так:
GRUB_DEFAULT="0" GRUB_TIMEOUT_STYLE="hidden" GRUB_TIMEOUT=0 GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`" GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX=""
А /ect/default/grub.d//etc/default/grub.d/50_linuxmint.cfg так:
set -e GRUB_DISTRIBUTOR="Ubuntu"
Прэкол в том, шо теперь dpkg пытается удалить старый линусячий образ при любой операции apt, будь то обновление, удаление или установка, так шо я не могу теперь вообще воспользоваться менеджером пакетов. Можно хотя бы как то заставить dpkg забыть об этом образе и не пытаться конфигурировать grub? Мне граб по сути не нужен, комп загружает сразу раздел с линуксом.