Как восстановить записи загрузки UEFI в BIOS?

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

У меня есть mini ПК Protectli Vault FW4, работающий под управлением Untangle NG Firewall. Он не загрузился после того, как мне пришлось принудительно выключить его, когда веб-интерфейс не отвечал. Я подключил устройство к монитору и увидел, как запускается меню загрузки Untangle, за которым последовало короткое сообщение о не удалось прочитать сектор <случайный шестнадцатеричный код>. Затем последовала перезагрузка.

Подумав, что 32 ГБ SSD-диск mSata может быть неисправен, я переключил настройки прошивки UEFI в режим совместимости и загрузил флешку UBCD. Я смог без проблем выполнить поверхностное (чтение) сканирование диска.

С этого момента я вернул BIOS в режим UEFI, и он отказывается видеть записи загрузки на диске.

Я создал диск Rescue для Linux и смог запустить fsck на всех трех разделах. Он исправил несколько проблем на основном разделе. Надеюсь, это и было причиной ошибок чтения сектора (странно для логической проблемы).

Диск имеет 3 раздела.

  1. /dev/sda1 – Файловая система Linux
  2. /dev/sda2 – Linux Swap
  3. /dev/sda3 – EFI система

На /dev/sda3 я вижу следующую структуру папок…

/EFI
— debian
—— grubx64.efi
— untangle
—— grubx64.efi

Система явно основана на Debian.

Я предполагаю, что проблема в том, что переход в режим совместимости стер запись загрузки в прошивке UEFI. Как правильно добавить эту запись загрузки обратно в прошивку UEFI с помощью инструментов / команд Linux? Я нашел информацию о том, что сначала нужно перечислить записи с помощью efibootmgr, но находится только загрузочная флешка.

Сама меню прошивки UEFI, похоже, не имеет опции для добавления ручных записей, которые я вижу. Нужна ли какая-то другая информация?

Я обнаружил, что могу использовать следующую команду для восстановления записи загрузки.

efibootmgr -c -p 3 -d /dev/sda -L “UEFI: Untangle” -l “\EFI\untangle\grubx64.efi”

К сожалению, теперь, когда он загружается, я все равно получаю ошибку “не удалось прочитать сектор”.

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

Как восстановить UEFI загрузочные записи в BIOS

Восстановление загрузочных записей UEFI в BIOS может потребоваться в случае, если вы изменили настройки BIOS, что привело к потере загрузочной записи, как в вашем сценарии с устройством Protectli Vault FW4, работающим под управлением Untangle NG Firewall. В этой статье подробно изложены шаги, которые помогут восстановить загрузочные записи и решить потенциальные проблемы, такие как ошибки чтения сектора.

1. Понимание UEFI и загрузочных записей

UEFI (Unified Extensible Firmware Interface) является современным интерфейсом между операционной системой и платформой прошивки. Он заменяет устаревший BIOS и поддерживает функции, такие как управление загрузочными записями. При переключении в режим Legacy BIOS, записи UEFI могут быть потеряны, если они не были должным образом сохранены.

2. Проверка структуры разделов диска

В вашем случае у вас есть 3 раздела на SSD:

  • /dev/sda1 – файловая система Linux
  • /dev/sda2 – обменный раздел Linux
  • /dev/sda3 – система EFI, содержащая загруженные файлы для UEFI

Структура папок на разделе /dev/sda3 выглядит верно, с файлами загрузчика grubx64.efi как для Debian, так и для Untangle.

3. Восстановление загрузочной записи с помощью efibootmgr

Вы уже использовали команду efibootmgr для создания новой загрузочной записи:

efibootmgr -c -p 3 -d /dev/sda -L "UEFI: Untangle" -l "\EFI\untangle\grubx64.efi"

В этой команде:

  • -c – создаёт новую запись
  • -p 3 – указывает номер раздела, который содержит EFI
  • -d /dev/sda – указывает диск
  • -L "UEFI: Untangle" – задаёт имя записи
  • -l "\EFI\untangle\grubx64.efi" – путь к загрузочному файлу

Эта команда корректна и должна позволить вашему устройству загружаться.

4. Решение проблемы с ошибками чтения сектора

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

  • Физические проблемы с SSD: Несмотря на успешное тестирование поверхности, это может не исключать возможность наличия скрытых физических повреждений. Попробуйте использовать smartctl для проверки статуса здоровья устройства:

    sudo smartctl -a /dev/sda
  • Логические ошибки файловой системы: Вы уже использовали fsck, но следует убедиться, что все разделы были проверены. Запустите fsck еще раз на всех разделах, включая /dev/sda1.

  • Конфликты конфигурации загрузчика: Возможны проблемы в конфигурационных файлах GRUB. Проверьте /boot/grub/grub.cfg на наличие ошибок или попробуйте переустановить GRUB.

    Для переустановки GRUB выполните следующие команды:

    sudo mount /dev/sda3 /mnt/boot/efi
    sudo grub-install --target=x86_64-efi --efi-directory=/mnt/boot/efi --bootloader-id=Untangle
    sudo update-grub

5. Заключение

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

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

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

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

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