dpkg: ошибка при обработке пакета shim-signed (–configure), /var/lib/grub/esp: специальное устройство /xxx не существует

Вопрос или проблема

Автообновление моего сервера не удалось, и я нашел эту ошибку в журнале:

Настройка shim-signed (1.51.4+15.8-0ubuntu1) ...
mount: /var/lib/grub/esp: специальное устройство /dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_vol03d89b2c32d75dfae-part15 не существует.
dpkg: ошибка при обработке пакета shim-signed (--configure):
 установленный пакетshim-signed завершил исполнение постскрипта с ошибкой, код выхода 32

Думаю, проблема связана с этим случаем, но это странно, я не менял никакой объем:
Ошибка при обновлении grub-efi-amd64-signed – специальное устройство [старый SSD] не существует

Пользователь plaisthos рекомендует отредактировать этот кэш-файл:

/var/cache/debconf/config.dat

и выполнить

sudo dpkg --configure -a

Но что именно следует редактировать? И безопасно ли перезагружать систему в этом состоянии или это может даже решить проблему? К сожалению, проблема возникла на рабочей системе, и я хочу быть очень осторожным, чтобы избежать простоев.

Моя система:

Сервер AWS EC2, работающий под управлением Ubuntu 22.04.4 LTS и Plesk

sudo lsblk

NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0          7:0    0  21.8M  1 loop /snap/amazon-ssm-agent/7984
loop1          7:1    0  21.9M  1 loop /snap/amazon-ssm-agent/7994
loop2          7:2    0  49.1M  1 loop /snap/core18/2810
loop3          7:3    0  49.1M  1 loop /snap/core18/2826
loop4          7:4    0  59.8M  1 loop /snap/core20/2267
loop5          7:5    0  59.8M  1 loop /snap/core20/2321
loop6          7:6    0  77.4M  1 loop /snap/lxd/28384
loop7          7:7    0  77.4M  1 loop /snap/lxd/29353
loop8          7:8    0  33.7M  1 loop /snap/snapd/21467
loop9          7:9    0  33.7M  1 loop /snap/snapd/21761
nvme0n1      259:0    0   512G  0 disk
├─nvme0n1p1  259:1    0 511.9G  0 part /
└─nvme0n1p15 259:2    0    99M  0 part /boot/efi

sudo df -h

Файловая система    Размер Использовано Доступно Использование% Монтировано на
/dev/root        496G  375G  122G  76% /
tmpfs             31G     0   31G   0% /dev/shm
tmpfs             13G  1.1M   13G   1% /run
tmpfs            5.0M   28K  5.0M   1% /run/lock
efivarfs         128K  3.3K  125K   3% /sys/firmware/efi/efivars
/dev/nvme0n1p15   98M  6.3M   92M   7% /boot/efi
tmpfs            6.2G  4.0K  6.2G   1% /run/user/1000

часть /var/cache/debconf/config.dat

Name: grub-efi/install_devices
Template: grub-efi/install_devices
Value: /dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_vol03d89b2c32d75dfae-part15
Owners: grub-common, grub-efi-arm64, grub-pc
Flags: seen
Variables:
 CHOICES = /dev/nvme0n1p15 (103 MB; /boot/efi) на 68719 MB Amazon Elastic Block Store
 RAW_CHOICES = /dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_vol09ffbe328bafbd0eb-part15

Name: grub-efi/install_devices_disks_changed
Template: grub-efi/install_devices_disks_changed
Value: /dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_vol03d89b2c32d75dfae-part15, /dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_vol049f91243e2980923-part15
Owners: grub-common, grub-efi-arm64
Variables:
 CHOICES = /dev/nvme0n1p15 (103 MB; /boot/efi) на 549755 MB Amazon Elastic Block Store
 RAW_CHOICES = /dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_vol049f91243e2980923-part15

Name: grub-efi/install_devices_empty
Template: grub-efi/install_devices_empty
Owners: grub-common, grub-efi-arm64

Name: grub-efi/install_devices_failed
Template: grub-efi/install_devices_failed
Owners: grub-common, grub-efi-arm64

Name: grub-efi/partition_description
Template: grub-efi/partition_description
Owners: grub-common, grub-efi-arm64
Variables:
 DEVICE = /dev/nvme0n1p15
 DISK_MODEL = Amazon Elastic Block Store
 DISK_SIZE = 549755
 PATH = /boot/efi
 SIZE = 103

Name: grub2/kfreebsd_cmdline
Template: grub2/kfreebsd_cmdline
Owners: grub-efi-arm64

Name: grub2/kfreebsd_cmdline_default
Template: grub2/kfreebsd_cmdline_default
Owners: grub-efi-arm64

Name: grub2/linux_cmdline
Template: grub2/linux_cmdline
Value: 
Owners: grub-efi-arm64

Name: grub2/linux_cmdline_default
Template: grub2/linux_cmdline_default
Value: quiet splash
Owners: grub-efi-arm64

Name: grub2/no_efi_extra_removable
Template: grub2/no_efi_extra_removable
Owners: grub-efi-arm64

Name: grub2/unsigned_kernels
Template: grub2/unsigned_kernels
Owners: grub-efi-arm64

Name: grub2/unsigned_kernels_title
Template: grub2/unsigned_kernels_title
Owners: grub-efi-arm64

Name: grub2/update_nvram
Template: grub2/update_nvram
Value: true
Owners: grub-efi-arm64

cat /etc/fstab

LABEL=cloudimg-rootfs   /        ext4   discard,errors=remount-ro       0 1
LABEL=UEFI      /boot/efi       vfat    umask=0077      0 1
/swapfile none swap sw 0 0

sudo parted -l

Model: Amazon Elastic Block Store (nvme)
Disk /dev/nvme0n1: 550GB
Размер сектора (логический/физический): 512B/4096B
Таблица разделов: gpt
Флаги диска:

Number  Start   End    Size   File system  Name  Flags
15      1049kB  105MB  104MB  fat32              boot, esp
 1      106MB   550GB  550GB  ext4

ИЗМЕНЕНИЕ

Как предложил Дэвид DE, я посмотрел эту тему:
Ошибка при обработке пакета shim-signed

Я не эксперт, но, на мой взгляд, моя проблема имеет другой характер. Мне кажется, что проблема связана с идентификатором диска (ошибка: “не существует”) для точки монтирования /boot/efi, которая по какой-то причине изменяется.

В кэш-файле (/var/cache/debconf/config.dat) я вижу:

nvme-Amazon_Elastic_Block_Store_vol03d89b2c32d75dfae-part15
vs
nvme-Amazon_Elastic_Block_Store_vol09ffbe328bafbd0eb-part15
vs
nvme-Amazon_Elastic_Block_Store_vol049f91243e2980923-part15

Как я могу выяснить правильный идентификатор и как исправить настройку? Могу ли я просто удалить цитируемую часть кэш-файла (/var/cache/debconf/config.dat) и сгенерировать его снова с обновленным/исправленным идентификатором диска?

ИЗМЕНЕНИЕ:

Это сработало и для моего случая (Ошибка при обновлении grub-efi-amd64-signed – специальное устройство [старый SSD] не существует)

echo PURGE | debconf-communicate grub-common
echo PURGE | debconf-communicate grub-pc
dpkg --configure -a

Ответ или решение

Решение проблемы с dpkg: ошибка обработки пакета shim-signed на Ubuntu 22.04.4 LTS

Ошибка, с которой вы столкнулись, возникает в процессе настройки пакета shim-signed, и связана с тем, что система пытается примонтировать EFI-раздел (в данном случае /boot/efi), но не может найти указанный специальный устройством с ID: /dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_vol03d89b2c32d75dfae-part15. Эта проблема может быть вызвана изменениями в конфигурации или путаницей с ID накопителей.

Шаги по устранению ошибки

  1. Проверка текущего состояния дисков:
    Сначала убедитесь, что все устройства, указанные в логах, существуют и корректно определяются системой. Вы уже выполнили команды lsblk и df -h, которые подтверждают, что ваш /boot/efi смонтирован на /dev/nvme0n1p15. Следовательно, мы можем работать с его корректным указанием в конфигурации.

  2. Редактирование файла конфигурации debconf:
    В вашем config.dat зафиксированы старыеVALUES и нужно обновить их для правильной работы grub. В частности, нужно изменить строки, касающиеся неверного устройства. Вы можете отредактировать файл вручную, удалив старые идентификаторы, чтобы они больше не использовались. Но безопаснее использовать команды debconf для очистки конфигурации.

  3. Очистка кэша Debconf:
    Используйте следующие команды для очистки старых настроек и повторной конфигурации:

    echo PURGE | debconf-communicate grub-common
    echo PURGE | debconf-communicate grub-pc
  4. Повторная настройка пакетов:
    После очистки используйте команду, чтобы повторно сконфигурировать пакеты во избежание ошибок:

    sudo dpkg --configure -a
  5. Проверка и перезагрузка:
    После выполнения вышеуказанных шагов проверьте, есть ли какие-либо оставшиеся ошибки. Если все прошло успешно, вы можете безопасно перезагрузить систему, чтобы убедиться, что изменения вступили в силу.

Изменения в /etc/fstab

Хотя в вашем случае это не основная проблема, стоит убедиться, что в файле /etc/fstab указаны корректные UUID и метки для разделов. Например, убедитесь, что запись для /boot/efi соответствует существующему устройству. В вашем случае запись выглядит корректной:

LABEL=UEFI      /boot/efi       vfat    umask=0077      0 1

Заключение

Данные шаги помогут вам устранить проблему с обновлением пакета shim-signed и восстановить работоспособность вашего сервера на AWS EC2. Всегда рекомендуется делать резервные копии критически важных данных перед выполнением изменений в системе, особенно на производственных серверах. Если по завершении вы столкнетесь с новыми проблемами, рекомендую изучить журналы и искать конкретные сообщения об ошибках для их устранения.

Если у вас возникнут дополнительные вопросы или потребуется помощь, пожалуйста, не стесняйтесь обращаться.

Оцените материал
Добавить комментарий

Капча загружается...