Обновление с Ubuntu 22.04 до 24.04 приводит к проблеме с grub.

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

Я заказал выделенный сервер с 2 NVMe по 1 ТБ от Contabo, который они предоставили с Ubuntu 22.04.

Я сделал do_release_upgrade для обновления до 24.04. Он установился успешно, но после перезагрузки я не могу получить доступ к этому серверу. Вот скриншот загрузки:

ошибка загрузки

Contabo предоставила систему загрузки для восстановления. Через эту опцию я сделал fdisk -l и получил следующий вывод:

Disk /dev/nvme1n1: 953.87 GiB, 1024209543168 bytes, 2000409264 sectors
Disk model: SAMSUNG MZVL21T0HCLR-00B00
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/nvme0n1: 953.87 GiB, 1024209543168 bytes, 2000409264 sectors
Disk model: SAMSUNG MZVL21T0HCLR-00B00
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 7B6821A4-AB1F-4C4D-B832-C298B2A384F9

Device            Start        End    Sectors   Size Type
/dev/nvme0n1p1     2048    1048575    1046528   511M EFI System
/dev/nvme0n1p2  1048576    4194303    3145728   1.5G Linux filesystem
/dev/nvme0n1p3  4194304   20971519   16777216     8G Linux filesystem
/dev/nvme0n1p4 20971520 2000406527 1979435008 943.9G Linux filesystem


Disk /dev/loop0: 1.02 GiB, 1097621504 bytes, 2143792 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Что я могу сделать, чтобы смонтировать загрузку?

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

При переходе с Ubuntu 22.04 на Ubuntu 24.04 вы столкнулись с проблемой загрузчика GRUB, которая делает сервер недоступным после перезагрузки. Возможной причиной может быть неправильная настройка или повреждение загрузочных параметров в процессе обновления системы. В этой ситуации необходимо выполнить ряд шагов для восстановления загрузочной записи и обеспечения корректной работы сервера.

Теория (Theory)

Во время обновления операционной системы могут возникнуть изменения в структурировании загрузочных настроек, что может привести к неисправностям в работе GRUB. Это часто происходит из-за несовместимости версий программного обеспечения, неверных настроек конфигурационных файлов или из-за установки обновлений, которые не были должным образом протестированы на совместимость с установленным оборудованием.

GRUB, являясь основным загрузчиком в системах на базе Linux, загружает операционную систему и другие параметры загрузки до начала их выполнения. Если конфигурация GRUB неправильно установлена или повреждена, система может стать полностью неработоспособной, и пользователь потеряет доступ к серверу без использования дополнительных инструментов, таких как режим восстановления.

Пример (Example)

Так как Contabo предоставили вам доступ к системе спасения, это является первым и важным шагом в решении проблемы. Вы уже получили доступ к дисковым устройствам через fdisk -l и получили информацию о наличии двух NVMe-дисков с таблицей разделов GPT. Обратите внимание на раздел /dev/nvme0n1p1, который является EFI System и предназначен для загрузочных записей.

Применение (Application)

  1. Установите программные компоненты: Первым делом вам необходимо загрузить и установить chroot-окружение для правки и обновления конфигураций. В режиме спасения выполните:

    mount /dev/nvme0n1p4 /mnt
    mount /dev/nvme0n1p1 /mnt/boot
    mount --bind /dev /mnt/dev
    mount --bind /proc /mnt/proc
    mount --bind /sys /mnt/sys
    chroot /mnt
  2. Установите обновления GRUB: После входа в chroot, обновите GRUB, чтобы он заново обнаружил и установил все нужные библиотеки и файлы:

    apt update
    apt install --reinstall grub-efi
    grub-install /dev/nvme0n1
    update-grub

    Это необходимо для того, чтобы загрузчик заново сгенерировал конфигурационные файлы и отобразил правильные параметры загрузки.

  3. Проверьте конфигурацию EFI: Удостоверьтесь, что EFI-раздел правильно отформатирован и содержит все необходимые загрузочные файлы, такие как grubx64.efi.

  4. Проверьте и исправьте файловую систему: Прежде чем перезагрузить систему, проведите проверку и исправьте ошибки на всех файловых системах, используя fsck:

    fsck /dev/nvme0n1p1
    fsck /dev/nvme0n1p2
    fsck /dev/nvme0n1p3
    fsck /dev/nvme0n1p4
  5. Перезагрузите сервер: После выполнения всех вышеуказанных шагов, выйдите из chroot (команда exit), размонтируйте все файловые системы и выполните перезагрузку:

    umount -R /mnt
    reboot

Если после перезагрузки проблема сохраняется, рекомендуется проверить логи загрузки и системные ошибки, используя live-режим либо через консольный доступ, если таковой имеется у вашего провайдера.

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

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

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