I've discovered that when I install Mandriva 2009 on a SATA HDD, regardless of whether I choose AHCI or IDE in the system BIOS, Mandriva will detect the HDD as /dev/sda, instead of /dev/sda under AHCI and /dev/hda under IDE. This is different from RHEL5, where the HDD could be detected as /dev/sda or /dev/hda depending on system BIOS settings. May I know why and how this is achieved in Mandriva? Is it in the kernel configuration or something else? I notice that Mandriva 2009 loads the ata_piix kernel module when system BIOS is set to IDE, and ahci module when it's set to AHCI.

I ask because I have another custom kernel( that faces a problem booting up on ICH9 machines when the system BIOS settings change from AHCI to IDE. The custom kernel is compiled with rootdev as /dev/sda, so whenever system BIOS is changed to IDE, it will kernel panic as it can't find /dev/sda(HDD is instead /dev/hda).

This is despite the fact that I've built in both ahci and ata_piix directly into the kernel(not as modules). However, it seems to boot up fine on another ICH7 machine. AFAIK ata_piix supports ICH5-8, so I suspect this is why it works on the ICH7 machine and not the ICH9 machine. However, I'm wondering why Mandriva's ata_piix loads correctly in ICH9. Anyway, I'm guessing if I could make the system/kernel detect the HDD as /dev/sda regardless of BIOS settings, that would solve the problem I think, so I'm trying to find a way to make my kernel load ata_piix correctly.

Does anyone know how?