Switch XP on AMD from IDE to AHCI
#1
Posted 03 March 2012 - 02:50 PM
I guess I need the Serial ATA AHCI/RAID drivers at the bottom of the Driver tab here http://www.biostar.c...on.php?S_ID=419 which are rather old being from 2009 but I don't know if there's any more recent ones.
I don't really know what I need to do from there though, so hopefully someone's done this before and can show me what I need to do.
#2
Posted 03 March 2012 - 02:57 PM
Do you have any WinPE around?
In WinPE 3.x would work with just this:
Try with this:
reg LOAD HKLMSYSTEM_00 c:WINDOWSSYSTEM32CONFIGSYSTEM reg add "HKLMSYSTEM_00ControlSet001Servicesahcix86" /f reg add "HKLMSYSTEM_00ControlSet001Servicesahcix86Enum" /f reg add "HKLMSYSTEM_00ControlSet001Servicesahcix86" /v Type /t REG_DWORD /d 1 /f reg add "HKLMSYSTEM_00ControlSet001Servicesahcix86" /v Start /t REG_DWORD /d 0 /f reg add "HKLMSYSTEM_00ControlSet001Servicesahcix86" /v Group /t REG_SZ /d "SCSI miniport" /f reg add "HKLMSYSTEM_00ControlSet001Servicesahcix86" /v ErrorControl /t REG_DWORD /d 1 /f reg add "HKLMSYSTEM_00ControlSet001Servicesahcix86" /v ImagePath /t REG_SZ /d "system32driversahcix86.sys" /f reg add "HKLMSYSTEM_00ControlSet001Servicesahcix86" /v tag /t REG_DWORD /d 4 /f reg add "HKLMSYSTEM_00ControlSet001ControlCriticalDeviceDatabasePCI#VEN_1002&CC_0106" /v Service /t REG_SZ /d "ahcix86" /f reg add "HKLMSYSTEM_00ControlSet001ControlCriticalDeviceDatabasePCI#VEN_1002&CC_0106" /v ClassGUID /t REG_SZ /d "{4D36E97B-E325-11CE-BFC1-08002BE10318}" /f reg UNLOAD HKLMSYSTEM_00
Then copy the ahcix86.sys,ahcix86.inf and ahcix86.cat in c:windowsinf, so Windows will find it to install it, but also copy ahcix86.sys in c:windowssystem32drivers for it to boot the first time.
#3
Posted 03 March 2012 - 03:17 PM
Try booting into a backup tool like Acronis, backing up XP from IDE only disk and restoring it to SATA & IDE Emulation disk (don't restore from inside running XP to avoid changing new disk Signature). Switch to IDE Emulation mode in your Mobo BIOS, boot from the disk, add SATA drivers support , reboot to BIOS, switch to AHCI, save and reboot. Should boot to SATA disk now.I don't really know what I need to do.
#4
Posted 03 March 2012 - 03:44 PM
Try booting into a backup tool like Acronis, backing up XP from IDE only disk and restoring it to SATA & IDE Emulation disk (don't restore from inside running XP to avoid changing new disk Signature). Switch to IDE Emulation mode in your Mobo BIOS, boot from the disk, add SATA drivers support , reboot to BIOS, switch to AHCI, save and reboot. Should boot to SATA disk now.
That should do it too, but I think it's even more complicated than injecting the driver manually. Also your solution requires some Acronis software which is not free.
About the ahcix86 driver from AMD for XP, don't worry: It's a so standard driver that it won't need any update.
#5
Posted 03 March 2012 - 03:56 PM
#6
Posted 03 March 2012 - 03:56 PM
#7
Posted 03 March 2012 - 03:56 PM
#8
Posted 03 March 2012 - 04:06 PM
Mmmm... As far as I know, when changing from one disk to another you have to change also the Dos Letters stuff (or something like that)Injecting a driver isn't enough to move OS from one disk to another. It still needs to be moved somehow, with or without Acronis, if original disk has IDE connector (unless one would use an IDE-to-SATA adapter).
If you're changing the motherboard, you'll probable need to change the HAL, inject the ide/ahci/raid driver and do some driver and legacy services cleaning.
But it seems that he just wants to turn on AHCI in a motherboard, he is not changing the hard disk, right?
#9
Posted 03 March 2012 - 04:35 PM
He has a SATA HD but it's running in IDE mode in the BIOS, so I want to make sure that XP is set up correctly so that when I switch to AHCI in the BIOS, it will boot. He's not changing any hardware at all.
I do have WinPE but I'm going to have to do this remotely (I don't trust him to do it right himself!) so I'm thinking I could get him to boot into his Win7 partition and install Logmein in that, so that I can remote in.
#11
Posted 03 March 2012 - 07:31 PM
Why from WinPE?Is pretty easy when you know how to do it
Do you have any WinPE around?
In WinPE 3.x would work with just this:
Try with this:reg LOAD HKLMSYSTEM_00 c:WINDOWSSYSTEM32CONFIGSYSTEM reg add "HKLMSYSTEM_00ControlSet001Servicesahcix86" /f reg add "HKLMSYSTEM_00ControlSet001Servicesahcix86Enum" /f reg add "HKLMSYSTEM_00ControlSet001Servicesahcix86" /v Type /t REG_DWORD /d 1 /f reg add "HKLMSYSTEM_00ControlSet001Servicesahcix86" /v Start /t REG_DWORD /d 0 /f reg add "HKLMSYSTEM_00ControlSet001Servicesahcix86" /v Group /t REG_SZ /d "SCSI miniport" /f reg add "HKLMSYSTEM_00ControlSet001Servicesahcix86" /v ErrorControl /t REG_DWORD /d 1 /f reg add "HKLMSYSTEM_00ControlSet001Servicesahcix86" /v ImagePath /t REG_SZ /d "system32driversahcix86.sys" /f reg add "HKLMSYSTEM_00ControlSet001Servicesahcix86" /v tag /t REG_DWORD /d 4 /f reg add "HKLMSYSTEM_00ControlSet001ControlCriticalDeviceDatabasePCI#VEN_1002&CC_0106" /v Service /t REG_SZ /d "ahcix86" /f reg add "HKLMSYSTEM_00ControlSet001ControlCriticalDeviceDatabasePCI#VEN_1002&CC_0106" /v ClassGUID /t REG_SZ /d "{4D36E97B-E325-11CE-BFC1-08002BE10318}" /f reg UNLOAD HKLMSYSTEM_00
Then copy the ahcix86.sys,ahcix86.inf and ahcix86.cat in c:windowsinf, so Windows will find it to install it, but also copy ahcix86.sys in c:windowssystem32drivers for it to boot the first time.
Since the system is already working the above records could be added directly to the working Windows while in IDE mode.
So it becomes something like this:
reg add "HKLMSystemCurrentControlSetServicesahcix86" /f reg add "HKLMSystemCurrentControlSetServicesahcix86Enum" /f reg add "HKLMSystemCurrentControlSetServicesahcix86" /v Type /t REG_DWORD /d 1 /f reg add "HKLMSystemCurrentControlSetServicesahcix86" /v Start /t REG_DWORD /d 0 /f reg add "HKLMSystemCurrentControlSetServicesahcix86" /v Group /t REG_SZ /d "SCSI miniport" /f reg add "HKLMSystemCurrentControlSetServicesahcix86" /v ErrorControl /t REG_DWORD /d 1 /f reg add "HKLMSystemCurrentControlSetServicesahcix86" /v ImagePath /t REG_SZ /d "system32driversahcix86.sys" /f reg add "HKLMSystemCurrentControlSetServicesahcix86" /v tag /t REG_DWORD /d 4 /f reg add "HKLMSystemCurrentControlSetControlCriticalDeviceDatabasePCI#VEN_1002&CC_0106" /v Service /t REG_SZ /d "ahcix86" /f reg add "HKLMSystemCurrentControlSetControlCriticalDeviceDatabasePCI#VEN_1002&CC_0106" /v ClassGUID /t REG_SZ /d "{4D36E97B-E325-11CE-BFC1-08002BE10318}" /f
edit: corrected the missed System
Edited by ilko, 03 March 2012 - 08:28 PM.
#12
Posted 03 March 2012 - 07:59 PM
I don't think changing Currentcontrolset is going to make a difference. As far as I know you need to modify ControlSet00x in order to have those changes next time you reboot.
Also, you forgot SYSTEM
reg add "HKLMSYSTEMControlSet001Servicesahcix86" /f reg add "HKLMSYSTEMControlSet001Servicesahcix86Enum" /f reg add "HKLMSYSTEMControlSet001Servicesahcix86" /v Type /t REG_DWORD /d 1 /f reg add "HKLMSYSTEMControlSet001Servicesahcix86" /v Start /t REG_DWORD /d 0 /f reg add "HKLMSYSTEMControlSet001Servicesahcix86" /v Group /t REG_SZ /d "SCSI miniport" /f reg add "HKLMSYSTEMControlSet001Servicesahcix86" /v ErrorControl /t REG_DWORD /d 1 /f reg add "HKLMSYSTEMControlSet001Servicesahcix86" /v ImagePath /t REG_SZ /d "system32driversahcix86.sys" /f reg add "HKLMSYSTEMControlSet001Servicesahcix86" /v tag /t REG_DWORD /d 4 /f reg add "HKLMSYSTEMControlSet001ControlCriticalDeviceDatabasePCI#VEN_1002&CC_0106" /v Service /t REG_SZ /d "ahcix86" /f reg add "HKLMSYSTEMControlSet001ControlCriticalDeviceDatabasePCI#VEN_1002&CC_0106" /v ClassGUID /t REG_SZ /d "{4D36E97B-E325-11CE-BFC1-08002BE10318}" /f
So in the end he could do a BAT from this and copy those files in those folders, and it would work
#13
Posted 03 March 2012 - 08:25 PM
Nope, that's not like this. CurrentControlSet is a copy of the current control set, i.e. ControlSet001 or whatever is in HKLMSYSTEMSelectCurrent, and one should definitely use CurrentControlSet if needs to modify the currently used control set when working with online registry. Look for details:I don't think changing Currentcontrolset is going to make a difference. As far as I know you need to modify ControlSet00x in order to have those changes next time you reboot.
http://support.microsoft.com/kb/100010
Yep, I did, wrong search&replace in Notepad++, thanksAlso, you forgot SYSTEM
#14
Posted 04 March 2012 - 02:08 AM
I love this community, everyday I learn something new!
So in the end he should do this:
reg add "HKLMSYSTEMCurrentControlSetServicesahcix86" /f reg add "HKLMSYSTEMCurrentControlSetServicesahcix86Enum" /f reg add "HKLMSYSTEMCurrentControlSetServicesahcix86" /v Type /t REG_DWORD /d 1 /f reg add "HKLMSYSTEMCurrentControlSetServicesahcix86" /v Start /t REG_DWORD /d 0 /f reg add "HKLMSYSTEMCurrentControlSetServicesahcix86" /v Group /t REG_SZ /d "SCSI miniport" /f reg add "HKLMSYSTEMCurrentControlSetServicesahcix86" /v ErrorControl /t REG_DWORD /d 1 /f reg add "HKLMSYSTEMCurrentControlSetServicesahcix86" /v ImagePath /t REG_SZ /d "system32driversahcix86.sys" /f reg add "HKLMSYSTEMCurrentControlSetServicesahcix86" /v tag /t REG_DWORD /d 4 /f reg add "HKLMSYSTEMCurrentControlSetControlCriticalDeviceDatabasePCI#VEN_1002&CC_0106" /v Service /t REG_SZ /d "ahcix86" /f reg add "HKLMSYSTEMCurrentControlSetControlCriticalDeviceDatabasePCI#VEN_1002&CC_0106" /v ClassGUID /t REG_SZ /d "{4D36E97B-E325-11CE-BFC1-08002BE10318}" /f
BTW, those tweaks are the ones I use always for every AHCI or RAID driver, and, as now, they always work.
You just need to change the following:
ahcix86 -> service name: like iastor or sisraid2
ahcix86.sys -> driver name: like iastor.sys
VEN_1002 -> 1002 means AMD, intel uses 8086, and so on.
CC_0106 -> compatible identifier of AHCI devices, change it to CC_0104 if using RAID
- wimb likes this
#15
Posted 04 March 2012 - 02:23 AM
Is it essential to change to AHCI before the next boot after doing this or will it continue to work in IDE emulation mode until the setting is changed in the BIOS?
#16
Posted 04 March 2012 - 02:38 AM
#17
Posted 04 March 2012 - 05:57 AM
Welcome back! I see you browsing the forum for awhile, but not posting anything, and was wondering why. Any plans on FiraDisk or new developments?
As to switching modes, after a major Windows update or some packs install you made need to re-enable IDE or SATA support at boot in Registry, depending on what mode the PC was in during the upgrade.
#18
Posted 04 March 2012 - 09:43 AM
ThanksBTW, those tweaks are the ones I use always for every AHCI or RAID driver, and, as now, they always work.
It works very well for me and thanks for sharing your knowledge.
Can boot now AMD computer with AHCI setting.
#19
Posted 04 March 2012 - 09:51 AM
On my IDE Intel XP install there is no ahcix86.sys file in windowssystem32drivers folder - so how does it work?
#20
Posted 04 March 2012 - 09:55 AM
Mind you, some drivers require another subkey ParametersPnpInterface=5 :...BTW, those tweaks are the ones I use always for every AHCI or RAID driver, and, as now, they always work.
You just need to change the following:
ahcix86 -> service name: like iastor or sisraid2
ahcix86.sys -> driver name: like iastor.sys
VEN_1002 -> 1002 means AMD, intel uses 8086, and so on.
CC_0106 -> compatible identifier of AHCI devices, change it to CC_0104 if using RAID
http://forum.driverp...pic.php?id=4943
http://forum.driverp...pic.php?id=3638
#21
Posted 04 March 2012 - 10:09 AM
ahcix86.sys is the driver for this motherboard from the first post.So could there be a generic cmd script which would add both IDE and AHCI to an Intel and AMD system (i.e. run the script on any system and it can then boot on any platform?). Thus makin an image which would boot on any system?
On my IDE Intel XP install there is no ahcix86.sys file in windowssystem32drivers folder - so how does it work?
The issue with XP is that there is no yet a generic AHCI driver (apart from UniATA) like the Microsoft's one introduced with Vista. One still could add many mass storage drivers, keeping in mind there is a limit how many could be loaded at system startup, if I recall correctly the limit was about 80 for XP, this is for all the boot drivers with start=0. A 64-bit NTLDR increases this limit. For 2000 the limit is way lower.
Some details and ideas here:
http://www.911cd.net...showtopic=19397
#22
Posted 04 March 2012 - 02:59 PM
It will work in both IDE and AHCI modes.
That's cool then. I just wanted to check, in case he accidentally rebooted before getting into the BIOS and changing the setting, that it would still boot OK in IDE model and I'd also read somewhere that if it wasn't changed to AHCI immediately it would deactivate the driver when rebooted, meaning the driver would have to be re-activated manually again before switching to AHCI in the BIOS, but obviously that doesn't apply to this particular situation at least.
#23
Posted 07 March 2012 - 02:23 AM
I must admit I was a little concerned when I saw it had installed them under SCSI/RAID in Device Manager, as in Windows 7 it shows my AHCI Serial ATA Controller under IDE ATI/ATAPI Controllers, but I guess that's just XP for you!
Switching his Windows 7 to AHCI was a piece of cake, as I just had to set the msahci service to Start=0.
#24
Posted 07 March 2012 - 09:35 AM
#25
Posted 11 April 2012 - 05:15 PM
I did the same procedure which worked on the other PC, copied the cat, inf and sys files to c:windowsinf and the sys file to c:windowssystem32, ran the batch file to create the registry entries. I checked the XP registry from Win7 (which booted fine in AHCI mode) and I can see it's using ControlSet002 but I don't see why that should cause any problem.
The registry's got (ignore the XP part, that's just what I named the hive when I imported it in Win7):
[HKEY_LOCAL_MACHINEXPControlSet002ControlCriticalDeviceDatabasepci#ven_0e11&dev_ae33]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"
[HKEY_LOCAL_MACHINEXPControlSet002ControlCriticalDeviceDatabasePCI#VEN_1002&CC_0106]
"Service"="ahcix86"
"ClassGUID"="{4D36E97B-E325-11CE-BFC1-08002BE10318}"
[HKEY_LOCAL_MACHINEXPControlSet002Servicesahcix86]
"Type"=dword:00000001
"Start"=dword:00000000
"Group"="SCSI miniport"
"ErrorControl"=dword:00000001
"ImagePath"="system32driversahcix86.sys"
"tag"=dword:00000004
[HKEY_LOCAL_MACHINEXPControlSet002Servicesahcix86Enum]
The only thing I can think of is importing those entries back into ControlSet001 in case it's looking there when booting
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users