0

I have a tests server that runs an Intel S2600C0 bios version SE5C600.86B.02.06.0002. It has 7 SSDs: 5 SDLFNCAR-960G-1HA2s and 2 Micron_M500DC_MTFDDAK800MBB. The OS and all the files are on the first SSD and the other 6 SSDs are used by our software.

The problem is that if the first SSD is not the first in the boot order, the BIOS will get stuck when trying to boot from it, instead of realizing it can not boot and proceeding to the next device in the boot order.

Our experiments suggest that the partition table is at fault:

  1. Booting with GPT partition tables(what we use for our software) on the data disks gets stuck.
  2. Booting with MBR partition tables on the data disks gets stuck.
  3. I tried adding a partition to the table and booting - it also got stuck.
  4. When I erased the partition table(with sgdisk -Z) - I was able to boot with any boot order.

The boot flag(or Legacy BIOS bootable for GPT) was always off - though I also tried activating it(still didn't work)

"Just set the correct boot order" is not a solution(though I may be forced to settle for it) because:

  1. When all the SSDs are of the same type and have the same name in the BIOS menu, it takes lots of trial and error to figure out on which one the OS resides.
  2. A tests server is one thing - we want to avoid doing it to our customers' servers.

This is the BIOS info:

    $ 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
Idan Arye
  • 115
  • 3

1 Answers1

1

This is expected behavior: when the BIOS recognize a correctly defined partition table, it loads the first 512-byte sector and hand off controls to the code just loaded from the disk. After that, it has not control/visibility/concept of a "good boot" or a "stuck boot".

When no valid partition table is found, the BIOS automatically select the next disk until it find a valid one.

To work around this problem, you have three solution:

  • use and hardware RAID controller which enable multiple disks to be saw a single entity at the BIOS level
  • use a fakeraid solution (as the one Intel provides on its chipset) which, by using an appropriate Option ROM, can abstract the multiple disks layout presenting them to main BIOS as a single disk
  • install an appropriate MBR/bootloader in each disk, so that the BIOS boot order become irrelevant (this is the classical software-RAID solution)
shodanshok
  • 47,711
  • 7
  • 111
  • 180