Environment: Supermicro X9SRL server, which usesC600/X79 series chipset 6-Port SATA AHCI Controller
Linux OS to boot: Debian 5.10 (kernel 2.6.18)
Error message: ALERT! It could not find the /dev/sda1 Kernel panic. ..
I found the reason why native linux kernel 2.6.18 cannot boot from the server. The error message said that "It could not find the /dev/sda1". This is because the SATA/AHCI driver in 2.6.18
kernel is outdated. Our Supermicro server is using the C600/X79 series chipset 6-Port SATA AHCI Controller (dev id: 1d02). According to http://cateee.net/lkddb/web-lkddb/SATA_AHCI.html
linux kernel include a built-in ahci driver for this type of controller starting from version 2.6.19. But unfortunately 2.6.18 misses its chance.
I tried to hack into the 2.6.18 ahci driver source code. What I did was compared the ahci.c file between 2.6.19 and 2.6.18. However, there was a dramatic change in driver design right
after 2.6.18. The ahci driver implementation seems very different between these two versions. Backporting the ahci driver to 2.6.18 is just too painful.
Try to connect the hard drive through a SATA-USB cable. 2.6.18 kernel has a built-in USB driver, so it can detect the drive where the root file system is in.
UPDATE on Aug 24, 2014:
Or you can have another SAS/SATA controller card which has open-source driver. Then you build its driver into the 2.6.18 kernel.
Forward reference: http://blog.csdn.net/kevin_ut/article/details/38799629