Вопрос или проблема
Я заказал выделенный сервер с 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)
-
Установите программные компоненты: Первым делом вам необходимо загрузить и установить 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
-
Установите обновления GRUB: После входа в chroot, обновите GRUB, чтобы он заново обнаружил и установил все нужные библиотеки и файлы:
apt update apt install --reinstall grub-efi grub-install /dev/nvme0n1 update-grub
Это необходимо для того, чтобы загрузчик заново сгенерировал конфигурационные файлы и отобразил правильные параметры загрузки.
-
Проверьте конфигурацию EFI: Удостоверьтесь, что EFI-раздел правильно отформатирован и содержит все необходимые загрузочные файлы, такие как
grubx64.efi
. -
Проверьте и исправьте файловую систему: Прежде чем перезагрузить систему, проведите проверку и исправьте ошибки на всех файловых системах, используя
fsck
:fsck /dev/nvme0n1p1 fsck /dev/nvme0n1p2 fsck /dev/nvme0n1p3 fsck /dev/nvme0n1p4
-
Перезагрузите сервер: После выполнения всех вышеуказанных шагов, выйдите из chroot (команда
exit
), размонтируйте все файловые системы и выполните перезагрузку:umount -R /mnt reboot
Если после перезагрузки проблема сохраняется, рекомендуется проверить логи загрузки и системные ошибки, используя live-режим либо через консольный доступ, если таковой имеется у вашего провайдера.
Используйте эти шаги как руководство для решения подобных проблем с загрузчиком при обновлении дистрибутива, и надейтесь, что ваше обновление будет успешным без потери функциональности сервера. Если же проблема остаётся нерешённой, возможно, стоит рассмотреть временное возвращение к предыдущей версии Ubuntu, чтобы обеспечить наличие всех критических функций, пока проблема не будет полностью изучена и разрешена.