Pasar de IDE a AHCI sin formatear (Windows XP)



Respecto a lo de pasar Windows XP de modo IDE a modo AHCI sin tener que reinstalarlo (en este caso con controladora SATA de chipset INTEL):

1. Con SATA en modo IDE en BIOS y el PC arrancado en Windows XP, descargar el INTEL MATRIX STORAGE DISKETTE lo más actualizado posible desde la web de Intel.

2. Extraer del fichero descargado todos los archivos a una carpeta y después copiar el archivo «IASTOR.SYS» de la misma a «C:\WINDOWS\SYSTEM32\DRIVERS».

Con esto ponemos el driver necesario dónde Windows lo necesita. El problema es que Windows de momento, no sabe que está ahí, ni sabe cómo y cuándo debe cargarlo. Esto lo solucionaremos en el siguiente paso.

3. Copiar este código a un NOTEPAD y salvarlo con el nombre que queramos pero extensión «.REG», no sirve «.REG.TXT», si no luego se volverá a abrir con el bloc de notas en vez de importarse al registro:


Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_2681&CC_0106]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="iastor"


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_27C1&CC_0106]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="iastor"


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_27C5&CC_0106]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="iastor"


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_2821&CC_0106]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="iastor"


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_2829&CC_0106]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="iastor"


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_2922&CC_0106]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="iastor"


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_2929&CC_0106]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="iastor"


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_3A02&CC_0106]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="iastor"


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_3A22&CC_0106]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="iastor"


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iastor]
"ErrorControl"=dword:00000001
"Group"="SCSI Miniport"
"Start"=dword:00000000
"Tag"=dword:0000001b
"Type"=dword:00000001
"ImagePath"="\\SystemRoot\\system32\\DRIVERS\\iastor.sys"
"DisplayName"="Intel(R) SATA AHCI Controller"

En ese código, agreamos al registro los PNP ID de la controladora AHCI en una sección de dispositivos críticos, que son de los que Windows debe cargar drivers antes de otras cosas.

Yo he pegado este REG de un fichero que me creé en su día a partir del fichero INF del driver «IAAHCI.INF» de INTEL, que recoge todos esos PNP ID (un PNP ID es este número por ejemplo: «pci#VEN_8086&DEV_3A02&CC_0106», que es un número único que define el hardware para la correcta instalación de los drivers necesarios para el mismo. Así se asegura que no se pueden meter drivers equivocados). Pero ahora en placas nuevas y por lo tanto con nuevos chipsets, es posible que haya nuevas controladoras SATA con PNP ID diferentes a esos (por ser más nuevas) y que esta solución no funcione (aunque con actualizar los PNP ID desde el INF del driver, se solucionaría rápido este pequeño problemilla).

Aparte, en la sección final del código posteado, se ve que creamos un SERVICIO nuevo. Se llama «IASTOR». Windows lee «CRITICALDEVICEDATABASE» para ver si el dispositivo SATA del que arranca está en esa lista. Si lo encuentra, dentro lee que tiene que cargar el servicio «IASTOR», el servicio «IASTOR» a su vez le dice que debe cargar «IASTOR.SYS» aparte de otros parámetros, como el tipo de controlador, el grupo, el orden de carga, etc.

4. Una vez salvado el fichero con extensión «.REG» y que contiene el código posteado, debemos hacer doble click sobre este fichero para importar su contenido al registro de Windows. Lo hacemos y respondemos que «SÍ» a la pregunta de importar, etc., etc…

5. Ahora que Windows ya tiene en su base de datos de dispositivos críticos el SATA en modo AHCI, reiniciamos el PC y en la BIOS establecemos el modo SATA en AHCI.

6. Windows debería arrancar normalmente. Si la cosa no ha ido bien, dará un pantallazo azul con un STOP 0x7B (hay muchos ceros, pero se omiten después del «0x»).

7. Al terminar de arrancar (entonces la cosa ha ido bien), detectará el SATA y pedirá drivers porque no está bien instalado, ya que lo hemos hecho nosotros directamente editando el registro pero hacen falta más cosas que son las que hace el INF del driver. (Puede que no pida el driver al arrancar, no recuerdo bien, pero aunque no lo pida, hay que instalarlo desde el admin de dispositivos).

Reinstalamos el driver de modo normal (lo que hicimos antes era sólo para que Windows arrancara sin pantallazo azul), es decir, cuando salga el asistente de dispositivo nuevo encontrado blablabla que corresponde al SATA AHCI, hay que instalar manualmente el driver y decirle la ubicación dónde habíamos descomprimido antes los ficheros del mismo (IASTOR.SYS, IAAHCI.CAT, IAAHCI.INF y alguno más) y seleccionar el «IAAHCI.INF». Lo abrimos y siguiente siguiente hasta que lo termine de instalar. Si pide reinicia se reinicia y listo.

Así ya tenemos XP con SATA en modo AHCI sin formatear ni reinstalar.

OTRAS NOTAS:

* El fichero INF es un fichero de texto que contiene instrucciones sobre cómo Windows debe instalar un controlador. El fabricante se encarga de diseñar el INF de acuerdo a las especificaciones de Microsoft de cómo se debe hacer (y normalmente revisado por Microsoft si ha obtenido la firma WHQL). Dentro de ese fichero se hace referencia al PNP ID del dispositivo a instalar (para que no se usen drivers equivocados en dispositivos que no corresponden), a los archivos del driver en sí, dónde se deben copiar, modificaicones en el registro que se deben realizar, servicios a crear, etc.).

* El fichero SYS es el del driver en sí, programado por el fabricante del dispositivo (y normalmente revisado por Microsoft si ha obtenido la firma WHQL). Es el fichero que carga Windows para que Windows sepa como controlar el dispositivo para el cuál el driver fue desarrollado.

* El fichero CAT es el fichero de firma digital del driver, expedido por WHQL. Contiene certificados digitales con un HASH de cada fichero del driver. Normalmente se firman el INF y el SYS, de este modo se asegura que los drivers no han sido modificados por terceros desde que pasaron la certificación de Microsoft WHQL.

Fuente: Varias paginas web citan los mismos pasos, asi que la fuente es innecesaria.

Share
Javier Rodriguez Escrito por:

3 comentarios

  1. Gonzalo
    11 de octubre de 2012

    Gracias! Me sirvió mucho! Necesitaba poder volver a AHCI debido a que el rendimiento de mi netbook luego de formatearla había bajado considerablemente con el SATA en IDE. Saludos!

  2. Pachanen
    11 de abril de 2013

    Gracias idolo anduvo de 10

  3. Dani
    2 de abril de 2020

    ¡Gracias! No sabes cuántas vueltas he dado buscando una solución a esto, hasta que he encontrado TU solución. Ya lo estaba dando por imposible.
    ¡Muchas gracias de nuevo!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *