Boot

錯誤的引導順序 - BIOS 卡住而不是嘗試下一個引導設備

  • December 7, 2016

我有一個執行 Intel S2600C0 bios 版本的測試伺服器SE5C600.86B.02.06.0002。它有 7 個 SSD:5 SDLFNCAR-960G-1HA2s 和 2 Micron_M500DC_MTFDDAK800MBB。作業系統和所有文件都在第一個 SSD 上,其他 6 個 SSD 由我們的軟體使用。

問題是,如果第一個 SSD 不是啟動順序中的第一個,BIOS 會在嘗試從它啟動時卡住,而不是意識到它無法啟動並繼續啟動順序中的下一個設備。

我們的實驗表明分區表有問題:

  1. 使用數據磁碟上的 GPT 分區表(我們用於軟體的分區表)啟動時卡住了。
  2. 使用數據磁碟上的 MBR 分區表引導會卡住。
  3. 我嘗試在表中添加一個分區並啟動 - 它也卡住了。
  4. 當我擦除分區表(使用sgdisk -Z)時 - 我能夠以任何引導順序引導。

引導標誌(或GPT可引導的 Legacy BIOS)始終處於關閉狀態 - 儘管我也嘗試過啟動它(仍然沒有工作)

“只需設置正確的引導順序”不是解決方案(儘管我可能被迫接受它),因為:

  1. 當所有 SSD 的類型相同並且在 BIOS 菜單中具有相同的名稱時,需要大量的試驗和錯誤才能確定作業系統駐留在哪一個上。
  2. 測試伺服器是一回事——我們希望避免對客戶的伺服器進行測試。

這是 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 會自動選擇下一個磁碟,直到找到有效的分區表。

要解決此問題,您有三個解決方案:

  • 使用和硬體 RAID 控制器,它可以在 BIOS 級別看到多個磁碟的單個實體
  • 使用 fakeraid 解決方案(就像英特爾在其晶片組上提供的那樣),通過使用適當的 Option ROM,可以抽像出多個磁碟佈局,將它們作為單個磁碟呈現給主 BIOS
  • 在每個磁碟上安裝一個合適的 MBR/bootloader ,這樣 BIOS 引導順序就變得無關緊要了(這是經典的軟體 RAID 解決方案)

引用自:https://serverfault.com/questions/819330