我有一个运行 Intel S2600C0 bios 版本的测试服务器SE5C600.86B.02.06.0002
。它有 7 个 SSD:5 SDLFNCAR-960G-1HA2
s 和 2 Micron_M500DC_MTFDDAK800MBB
。操作系统和所有文件都在第一个 SSD 上,其他 6 个 SSD 由我们的软件使用。
问题是,如果第一个 SSD 不是启动顺序中的第一个,BIOS 会在尝试从它启动时卡住,而不是意识到它无法启动并继续启动顺序中的下一个设备。
我们的实验表明分区表有问题:
- 使用数据磁盘上的 GPT 分区表(我们用于软件的分区表)启动时卡住了。
- 使用数据磁盘上的 MBR 分区表引导会卡住。
- 我尝试在表中添加一个分区并启动 - 它也卡住了。
- 当我擦除分区表(使用
sgdisk -Z
)时 - 我能够以任何引导顺序引导。
引导标志(或GPT可引导的 Legacy BIOS)始终处于关闭状态 - 尽管我也尝试过激活它(仍然没有工作)
“只需设置正确的引导顺序”不是解决方案(尽管我可能被迫接受它),因为:
- 当所有 SSD 的类型相同并且在 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
这是预期的行为:当 BIOS 识别出正确定义的分区表时,它会加载第一个 512 字节的扇区并将控制权交给刚从磁盘加载的代码。在那之后,它没有“良好启动”或“卡住启动”的控制/可见性/概念。
当没有找到有效的分区表时,BIOS 会自动选择下一个磁盘,直到找到有效的分区表。
要解决此问题,您有三个解决方案: