LINUX.ORG.RU

После обновления dpkg вызывает конфигурирование grub, которое завершается с ошибкой.

 , , , ,


0

1

После очередного 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? Мне граб по сути не нужен, комп загружает сразу раздел с линуксом.

попробуй просто закомментировать эти строки

### 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 ###

тебе по идее необходимо выполнить

apt-get -f // возможно неоднократно
apt-get update
apt-get upgrade

но это может обернуться в отдельных случаях крахом всей системы

anonymous ()

ОХТЫЖ. Оказалось, после обновления из /dev исчезли все sd*, вместо них появились nvme0n1p1, nvme0n1p5, nvme0n1p6. Неужели, сам товарищ Торвальдс решил пошутить? Теперь страшно даже перезагружаться, вдруг обратно не вернусь.

arelive ()
Ответ на: комментарий от anonymous

Так, ну вроде удалил вообще строки с /etc/grub.d/40_custom_proxy путём извлечения этого файла в бэкап. При новом apt-get upgrade grub конфигурировался 4 раза, но в итоге dpkg сошёл с мёртвой точки и обновил таки все пакеты. В том числе часть ядра, так что, возможно, если при перекомпиляции будут учитываться конфиги grub, мне больше не удастся загрузиться. В любом случае, после перезагрузки отпишу результат, получилось ли загрузить Mint напрямую, и через grub.

arelive ()
Ответ на: комментарий от arelive

я потому и предлагал закомментировать – риск поломать намного меньше, чем выбрасывание всего файла. хотя, custom* это как бы твои «правки» для генерации конфига grub/

anonymous ()

Слава Аллаху, удаление /etc/grub.d/40_custom_proxy помогло, dpkg работает, и система запускается. Правда, теперь при запуске выводит:

ошибка: не удалось найти команду "hwmatch".
Загружается Linix 4.15.0-76-generic ...
Загружается начальный виртуальный диск ...

Инфы по такой ошибке в сети, похоже, пока нет, ибо какая то новая фича, и везде обращаются только с ошибкой «неизвестная команда: hwmatch». Ещё перестал работать драйвер wifi, но это предсказуемо, после каждого обновления ядра с ним на этой пекарне проблемы. Grub ещё не тестировал, зараз попробую.

arelive ()
Ответ на: комментарий от anonymous

Так он при каждом запуске dpkg заново строчил конфиг, поэтому и не получалось просто закомментить. Проблема то не в грабе, на него пофиг, мне нужно было завести dpkg. Вроде все ошибки устранил, hwmatch оказалась частью grub, тому я переустановил его полностью, и теперь он из своего раздела тоже запускается, причём имеет в списке удалённый раньше из конфигов Mint, правда под именем Ubuntu. Алсо, дрова для wifi модуля новые накатил, и теперь с ним тоже проблем нет. Тема закрыта.

arelive ()