ncg-l
developer field notes
How to Flash your Pike 2008 / LSI SAS Controller into IT Mode
For my homelab Proxmox nodes, I chose an Asus Z9PA-D8 motherboard. I’ll cover why in another post, but if you’ve ever browsed eBay for these boards, you’ve probably seen them bundled with an Asus Pike 2008 RAID controller. It sits in the 5th PCIe slot seen here.
Each of my nodes has:
- 1x SSD for the OS
- 4x 2TB 2.5" Seagate BarraCuda drives
Initially, I had the Pike 2008 configured for RAID 10. Even accounting for these being 5400 RPM laptop drives, my write speeds were awful - about 5 MB/s to the single logical volume per node.
Not wanting to rewire everything to different SATA ports, I decided to flash the Pike into IT mode. My goals were:
- Confirm the RAID controller was the bottleneck.
- Move entirely to a distributed software storage solution. (Yes, I ignored all the “software RAID is better” posts until now.)
Below are the steps I followed, plus the resources I found most helpful.
FreeDOS Link: https://www.freedos.org/download/
Helpful Forum Post: https://forums.servethehome.com/index.php?threads/tutorial-updating-ibm-m1015-lsi-9211-8i-firmware-on-uefi-systems.11462/
Download the FreeDos img: https://www.freedos.org/download/
Find a dedicated USB Boot Drive, and plug it in. Find what device it was assigned:
lsblk
Write the image to a dedicate USB Boot drive - this formats the drive:
sudo dd if=<YOUR DOWNLOAD LOCATION> of=<YOUR USB DRIVE> bs=4M status=progress conv=fsync
for example:
sudo dd if=/home/ncgl/Downloads/fd14full.img of=/dev/sdX bs=4M status=progress conv=fsync
Mount the drive:
mount /dev/sdX1 /mnt/<SOME MOUNT DIRECTORY YOU CREATED>
In the helpful forum post above, there are only a few files that you need from the zipped archive. Drag and drop them into the base directory using your file explorer or
cp
them with the command line.2118it.bin
sas2flash/p19/dos/sas2flsh.exe
Unmount
umount /mnt/<SOME MOUNT DIRECTORY YOU CREATED>
I’ve always found the boot process for this motherboard to be confusing, but essentially on boot press F8 for god knows how long until you get a popup for what device you want to boot off of - select your USB.
If everything works you should be prompted with a FreeDOS screen - DO NOT choose installation, we just need the shell.
Once in the shell you run these commands:
sas2flsh.exe -listall
<– you should see your LSI controller printed out from thissas2flsh.exe -o -e 6
<– This assumes that this is your only raid controller. If its not, you’ll need to change this.sas2flsh.exe -o -f 2118it.bin
sas2flsh.exe -list
<– you should see your LSI controller, but now its ‘IT’On reboot you should see each of your drives individually.
You should be able to recreate using the steps outlined here, but if that forum post is taken down, etc, here is a copy of the same zipped archive here.
For complete transparency, I had never done this before and found ChatGPT to be immensely helpful.