Jump to content

Boot OK with AHCI, not with IDE?


imacken
 Share

17 posts in this topic

Recommended Posts

I have my HDDs set to AHCI in BIOS. Using a Asus P6T Deluxe MB.

 

For reasons not worth going into I have to reinstall Windows 7 with the drives set to EIDE. Now, I know that my SL - which is on a separate drive - will not boot when the drives are set to EIDE, only AHCI.

 

Is there anything I can do to avoid a reinstall of SL?

 

(Note: My Leo install boots fine with EIDE and it resides on a 3rd physical drive.)

Link to comment
Share on other sites

Check what is causing the system not to boot (use verbose mode "-v"), maybe AppleIntelPIIXATA.kext isn't being loaded, then you just need to add your device-id to Info.plist, or you can fix it in DSDT if it's a problem related to secondary IDE channel.

 

Thanks for that. The only thing I can see is the old favourite 'Waiting on Root Device' with 'Waiting for boot volume UUID 3A83......' a few lines above.

 

Now, the UUID mentioned is the partition that SL is installed on. When you say 'add device-id', which Info.plist do you mean?

Link to comment
Share on other sites

If the problem is the old "waiting for root device" then probably the ATA kext isn't being loaded.

 

You need to check the device-id of your ATA controller (use the command "lspci -nn", if you don't have it, download from here).

 

Then edit the file /System/Library/Extensions/IOATAFamily.kext/Contents/PlugIns/AppleIntelPIIXATA.kext/Contents/Info.plist and add the device-id. You can edit an existing key, for example the "ICH8 Serial ATA", replace with the name of your controller (ICH10R ?), and edit the IOPCIPrimaryMatch under this key to match your device-id (0x????8086).

 

And do a "sudo touch /System/Library/Extensions" to rebuild the kext cache.

Link to comment
Share on other sites

If the problem is the old "waiting for root device" then probably the ATA kext isn't being loaded.

 

You need to check the device-id of your ATA controller (use the command "lspci -nn", if you don't have it, download from here).

 

Then edit the file /System/Library/Extensions/IOATAFamily.kext/Contents/PlugIns/AppleIntelPIIXATA.kext/Contents/Info.plist and add the device-id. You can edit an existing key, for example the "ICH8 Serial ATA", replace with the name of your controller (ICH10R ?), and edit the IOPCIPrimaryMatch under this key to match your device-id (0x????8086).

 

And do a "sudo touch /System/Library/Extensions" to rebuild the kext cache.

Thanks for that. Will that affect the ability to boot in AHCI?

Link to comment
Share on other sites

Running 'lspci -nn' gave the attached screenshot.

Not sure where that leaves me! Can only see SATA AHCI controller listed. Should I put that ID in? As '0x3a228086'?

 

Sorry, I forgot that.

 

You have to boot with IDE mode set in BIOS to check the device-id, so you will have to use your Leopard install or Windows.

 

In my case it's [AHCI controller ID]-1, so your can be 3a21, but you better check.

 

Yes, you should put the ID as in "0x3a218086".

Link to comment
Share on other sites

Sorry, I forgot that.

 

You have to boot with IDE mode set in BIOS to check the device-id, so you will have to use your Leopard install or Windows.

 

In my case it's [AHCI controller ID]-1, so your can be 3a21, but you better check.

 

Yes, you should put the ID as in "0x3a218086".

OK, I'm making heavy weather of this! When I run the command from a Leopard Terminal, I just get 'lspci: Cannot find any working access method'.

Any ideas?

Link to comment
Share on other sites

OK, you are a genius!

Thanks a lot. It's now working fine.

Funny thing is though, I put the 3a20 address in, but when I do the 'lspci -nn' command both the 3a20 and the 3a26 controllers show up!

 

You are welcome.

That's because your HD is connected to the first controller. Maybe if you add both IDs the second controller will work too ("0x3a208086 0x3a268086", but I never tested).

Link to comment
Share on other sites

You are welcome.

That's because your HD is connected to the first controller. Maybe if you add both IDs the second controller will work too ("0x3a208086 0x3a268086", but I never tested).

Yes, but the funny thing is, I'm pretty sure that my 2 optical drives are on the 'other' ID (3a26) and they are also working fine.

Link to comment
Share on other sites

 Share

×
×
  • Create New...