I am building a storage server for my massive footage that’s going to cross over 50TB. I considered many options (check out this article – 5 ways to build your storage server), but resorted to building my own server. One bottleneck was the number of SATA ports on consumer grade motherboards.
The best option was to get LSI SAS 9211-8i, which is a PCIe x8 card for RAID, but it can be converted into IT mode to use JBOD (just bunch of drives). There are two ports on the card and each port creates 4 SATA ports, which means I can have eight additional dedicated SATA ports.
The problem was how to flash the card for your motherboards. Unlike what Linus Tech Tips suggests, it doesn’t matter which motherboard you have. What matters is that you need access to an EFI shell where you can easily run some command to change the mode and flash the card.
I came across numerous errors as I tried different tutorials, the biggest one was gaining access to EFI shell. I tried Rufus method, I tried simply formatting the drive to FAT partition and creating /boot/efi/….nothing worked. When something worked, I got this error. “ERROR: Failed to initialize PAL. Exiting the program.”
When I almost gave up and decided to return the card, I thought of giving it a Linux treatment. So I looked at what options are there in the Linux world to boot into EFI shell (I even tried the Clover Shell which is used to create Hackintosh machines). Eventually, I found the solution in rEFInd.
If you happen to be on a card that doesn’t have the ‘boot to EFI Shell’ option, like me, this tutorial is meant for you. If you have such motherboard skip the section on how to create a bootable drive.
What you need:
- An Ubuntu or any other Linux distribution (you don’t have to have it installed on your machine, you can simply use a LIVE USB to a bootable EFI drive)
- USB drive (minimum 2GB)
- LSI SAS 9211-8i card
- Download Shell
- Download UEFI Installer and extract this package: sas2flash.efi
- Download IT flash firmware and extract two packages: 2118it.bin and mptsas2.rom
Boot into Ubuntu and install rEFInd
# apt install refind
(Note: During installation when rEFInd asks if you want to install it on the system, choose ‘NO’)
Once it’s installed, plug in the USB drive and find the block device name (in my case, it was ‘/dev/sdb’).
Now install rEFInd on this drive
# refind install --usedefault /dev/sdb1 --alldrivers
Once the installation is complete, cd to EFI directory of the USB drive. Then create a folder called ‘tools’
# mkdir tools
Copy Shell_Full.efi to the tools directory and rename it to ‘shell.efi’. Copy these three files – sas2flash.efi, 2118it.bin and mptsas2.rom to the root directory, so the structure looks like this:
Now, plug the USB drive into your computer. Install the LSI SAS 9211-8i card in the PICe8 slot, and start your PC. Once your system boots, choose UEFI boot device from the boot menu. You should see the rEFInd boot menu. Now select the EFI shell.
Eureka, you are inside the EFI shell that will actually work.
You should see the list of the drives. In my case ‘fs0’ was the USB drive where needed firmware was stored; mount this directory:
Shell> mount fs0
Now change directory to ‘fs0.
List the content
Let the fun begin:
First, remove the existing IR firmware:
Shell> sas2flash.efi -o -e 6
The process will take 1-2 minutes, once the process is complete, write/flash the IT mode firmware:
Shell> sas2flash.efi -o -f 2108it.bin -b x64sas2.rom
Once its written, exit the shell
Now reboot the system. If everything worked, you should see the IT mode enabled.