Вопрос или проблема
У меня есть mini ПК Protectli Vault FW4, работающий под управлением Untangle NG Firewall. Он не загрузился после того, как мне пришлось принудительно выключить его, когда веб-интерфейс не отвечал. Я подключил устройство к монитору и увидел, как запускается меню загрузки Untangle, за которым последовало короткое сообщение о не удалось прочитать сектор <случайный шестнадцатеричный код>
. Затем последовала перезагрузка.
Подумав, что 32 ГБ SSD-диск mSata может быть неисправен, я переключил настройки прошивки UEFI в режим совместимости и загрузил флешку UBCD. Я смог без проблем выполнить поверхностное (чтение) сканирование диска.
С этого момента я вернул BIOS в режим UEFI, и он отказывается видеть записи загрузки на диске.
Я создал диск Rescue для Linux и смог запустить fsck
на всех трех разделах. Он исправил несколько проблем на основном разделе. Надеюсь, это и было причиной ошибок чтения сектора (странно для логической проблемы).
Диск имеет 3 раздела.
- /dev/sda1 – Файловая система Linux
- /dev/sda2 – Linux Swap
- /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 или технической поддержки для более детальной диагностики.
Такой подход обеспечит восстановление загрузочной записи и поможет предупредить дальнейшие проблемы с загрузкой системы.