Неправильный порядок загрузки - BIOS застревает вместо попытки следующего загрузочного устройства
У меня есть тестовый сервер под управлением Intel S2600C0 BIOS версии SE5C600.86B.02.06.0002
, Имеет 7 SSD: 5 SDLFNCAR-960G-1HA2
с и 2 Micron_M500DC_MTFDDAK800MBB
, ОС и все файлы находятся на первом SSD, а остальные 6 SSD используются нашим программным обеспечением.
Проблема заключается в том, что если первый SSD не является первым в порядке загрузки, BIOS будет зависать при попытке загрузки с него, вместо того, чтобы понять, что он не может загрузиться и перейти к следующему устройству в порядке загрузки.
Наши эксперименты показывают, что виновна таблица разделов:
- Загрузка с таблицами разделов GPT (что мы используем для нашего программного обеспечения) на дисках данных застревает.
- Загрузка с таблицами разделов MBR на дисках с данными застревает.
- Я попытался добавить раздел в таблицу и загрузить - он тоже застрял.
- Когда я стер таблицу разделов (с
sgdisk -Z
) - Я смог загрузиться с любым порядком загрузки.
Флаг загрузки (или загрузочный Legacy BIOS для GPT) всегда был отключен - хотя я также пытался активировать его (все еще не работал)
"Просто установите правильный порядок загрузки" не является решением (хотя я могу быть вынужден согласиться на это), потому что:
- Когда все твердотельные накопители имеют одинаковый тип и имеют одинаковое имя в меню BIOS, требуется много проб и ошибок, чтобы выяснить, на какой из них установлена ОС.
- Тестовый сервер - это одно: мы хотим не делать этого на серверах наших клиентов.
Это информация о BIOS:
$ dmidecode -t bios -q
BIOS Information
Vendor: Intel Corp.
Version: SE5C600.86B.02.06.0002.101320150901
Release Date: 10/13/2015
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 8192 kB
Characteristics:
PCI is supported
BIOS is upgradeable
BIOS shadowing is allowed
Boot from CD is supported
Selectable boot is supported
EDD is supported
5.25"/1.2 MB floppy services are supported (int 13h)
3.5"/720 kB floppy services are supported (int 13h)
3.5"/2.88 MB floppy services are supported (int 13h)
Print screen service is supported (int 5h)
8042 keyboard services are supported (int 9h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
ACPI is supported
USB legacy is supported
BIOS boot specification is supported
Targeted content distribution is supported
BIOS Revision: 4.6
BIOS Language Information
Language Description Format: Long
Installable Languages: 1
en|US|iso8859-1
Currently Installed Language: en|US|iso8859-1
1 ответ
Это ожидаемое поведение: когда BIOS распознает правильно определенную таблицу разделов, она загружает первый 512-байтовый сектор и передает управление коду, только что загруженному с диска. После этого у него нет контроля / видимости / концепции "хорошей загрузки" или "застрявшей загрузки".
Если действительная таблица разделов не найдена, BIOS автоматически выбирает следующий диск, пока не найдет действительный.
Чтобы обойти эту проблему, у вас есть три решения:
- использовать и аппаратный RAID-контроллер, который позволяет нескольким дискам видеть один объект на уровне BIOS
- использовать решение fakeraid (такое, которое Intel предоставляет на своем чипсете), которое с помощью соответствующего дополнительного ПЗУ может абстрагировать структуру нескольких дисков, представляя их в основной BIOS как один диск
- установите соответствующий MBR/ загрузчик на каждом диске, чтобы порядок загрузки BIOS стал неактуальным (это классическое программное решение RAID)