原先安装XP时,因为找不到驱动,所以把在BIOS中把AHCI改成IDE。
但这样安装成功的XP是不支持eSATA热插拔的,为了支持热插拔,又懒得重装XP,得想办法在XP中开启AHCI。
以下方法参考了“在已安裝 XP 系統上裝 intel 的 AHCI driver”一文(该文作者提到他也参考了HOWTO: enable AHCI mode after installing Windows)。
1.下载Intel Matrix Storage Manager
http://downloadmirror.intel.com/17882/a08/IATA89CD.exe
运行iata89cd.exe -a,将驱动解压到:C:\Program Files\Intel\Intel Matrix Storage Manager\driver中
记得加”-a”参数,否则会提示不能安装的。
2.修改注册表文件,将如下内容保存为一个ahci.reg文件,双击导入注册表:
achi.reg内容:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2929&cc_0106]
“Service”=”iaStor”
“ClassGUID”=”{4D36E96A-E325-11CE-BFC1-08002BE10318}”
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor]
“Type”=dword:00000001
“Start”=dword:00000000
“Group”=”SCSI miniport”
“ErrorControl”=dword:00000001
“ImagePath”=”system32\\drivers\\iaStor.sys”
“tag”=dword:00000019
“DisplayName”=”Intel AHCI Controller”
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters]
“queuePriorityEnable”=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Enum]
“0″=”PCI\\VEN_8086&DEV_2929&SUBSYS_B0051458&REV_02\\3&13c0b0c5&0&FA”
“Count”=dword:00000001
“NextInstance”=dword:00000001
注意:以上内容只针对我的ICH9M芯片组,如果是其他芯片组得修改一下。
以上注册表信息中有两处:pci#ven_8086&dev_2929&cc_0106,根据自己的主板型号加以修改。
如果不清楚如何修改,可以查看iaAHCI.inf文件内容,找到和自己主板芯片组匹配的项目:
DiskName = “Intel Matrix Storage Manager Driver”
*PNP0600.DeviceDesc = “Intel AHCI Controller”
PCI\VEN_8086&DEV_2681&CC_0106.DeviceDesc = “Intel(R) ESB2 SATA AHCI Controller”
PCI\VEN_8086&DEV_27C1&CC_0106.DeviceDesc = “Intel(R) ICH7R/DH SATA AHCI Controller”
PCI\VEN_8086&DEV_27C5&CC_0106.DeviceDesc = “Intel(R) ICH7M/MDH SATA AHCI Controller”
PCI\VEN_8086&DEV_2821&CC_0106.DeviceDesc = “Intel(R) ICH8R/DH/DO SATA AHCI Controller”
PCI\VEN_8086&DEV_2829&CC_0106.DeviceDesc = “Intel(R) ICH8M-E/M SATA AHCI Controller”
PCI\VEN_8086&DEV_2922&CC_0106.DeviceDesc = “Intel(R) ICH9R/DO/DH SATA AHCI Controller”
PCI\VEN_8086&DEV_2929&CC_0106.DeviceDesc = “Intel(R) ICH9M-E/M SATA AHCI Controller”
PCI\VEN_8086&DEV_3A02&CC_0106.DeviceDesc = “Intel(R) ICH10D/DO SATA AHCI Controller”
PCI\VEN_8086&DEV_3A22&CC_0106.DeviceDesc = “Intel(R) ICH10R SATA AHCI Controller”
PCI\VEN_8086&DEV_3B29&CC_0106.DeviceDesc = “Intel(R) PCHM SATA AHCI Controller 4 Port”
PCI\VEN_8086&DEV_3B2F&CC_0106.DeviceDesc = “Intel(R) PCHM SATA AHCI Controller 6 Port”
PCI\VEN_8086&DEV_3B22&CC_0106.DeviceDesc = “Intel(R) PCH SATA AHCI Controller”
3.重启电脑,修改BIOS,将IDE改回为AHCI。
4.如果能正常进入Windows XP,则系统会提示找到新硬件,可以安装刚才解压的驱动,或运行IATA89CD.exe。
5.安装完成后,在设备管理器中查看,原先的“IDE ATA/ATAPI控制器”会变成“Intel(R) ICH9M-E/M SATA AHCI Controller ”了。
用HDTune检测,可以发现现在已经支持NCQ(Native Command Queuing)了。
试了一下插拔esata硬盘,好像没什么问题。不过esata线有插拔次数限制,也不用试个没完没了。
和esata中安装的windows 2003一样,在系统日志中有iaStor错误:“设备 \Device\Ide\iaStor0 没有在传输等待时间内响应。”,可能真是IMSM有bug吧。