InicioHazlo Tu MismoCómo cambiar una placa sin reinstalar Windows
En este artículo intentaré desmontar un mito que yo también asumí durante bastante tiempo: El hecho de que cambiar la placa base de un equipo implica sí o sí reinstalar desde 0 el sistema operativo Windows XP/Server 2003, lo que se conoce coloquialmente como formatear. Así, con estas instrucciones dirigidas a usuarios de Windows de nivel medio o avanzado cualquiera podrá actualizar/reemplazar la placa base y otros componentes sin tener que reinstalar desde 0 ni reparar su SO Windows XP/Server 2003, conservando sus programas, actualizaciones de Windows, documentos, preferencias... intactas. Y de seguir el procedimiento correctamente será prácticamente indistiguible el si se instaló limpiamente o se trasplantó dicha instalación. Estas instrucciones son sólo para realizar la migración de un equipo existente a una placa base nueva, no para crear una instalación maestra de Windows XP/Server 2003 para implantar en varios equipos, incluso con hardware diferente. En este caso, debería usarse la utilidad de preparación del sistema de Microsoft sysprep.exe, sobre la cual hay bastante información en la web de Microsoft y en otras. Cuando se sustituye la placa base la configuración de hardware de cara al sistema operativo experimenta un cambio drástico. El chipset con toda seguridad ya no será el mismo, por lo que cambiarán los dispositivos centrales que están incluidos en éste, como los puentes de PCI a PCI, los de PCI a ISA (aunque desde hace años ninguna placa base lleva ranuras ISA, este bus sigue presente en ellas), los de CPU a PCI, el bus SM y otros dispositivos secundarios típicamente integrados en los chipsets modernos o bien presentes en algún chip externo al chipset: Controladoras IDE, SATA con o sin AHCI/RAID, USB, IEEE-1394, sonido, red y puede que la gráfica si es IGP. También es probable que hayamos cambiado la CPU, añadido memoria, nuevos discos duros y unidades ópticas, alguna nueva gráfica dedicada... Todo esto lo deberá redetectar el sistema operativo para poder funcionar correctamente. Y en el caso de los dispositivos PCI/AGP/PCIe en tarjetas dedicadas también los deberá redetectar, aunque ya estuvieran presentes en la configuración anterior debido a que con toda seguridad lo que se conocen como líneas INT # habrá variado (cualquier usuario que haya cambiado de ranura una tarjeta PCI habrá comprobado que el sistema operativo la debe redetectar por esta misma razón). De todos los cambios, los más críticos de cara a realizar el trasplante de la instalación de Windows XP/Server 2003 a un hardware nuevo son el de la controladora de disco (ya sea IDE, SATA, SCSI o SAS) donde esté conectado el disco donde resida el sistema operativo y el de la capa de abstracción de hardware, HAL. Empecemos a describir el cambio de controladora de disco y cómo evitarlo: Cuando el cargador del sistema NTLDR lee el archivo boot.ini y se encuentra con que la línea de carga del SO que debe iniciar usa la sintaxis ARC multi(0)disk(0)rdisk(n)partition(n) (también es posible que exista una línea scsi(n)disk(n)rdisk(n)partition(n) para controladoras SCSI sin BIOS, en cuyo caso deberá existir en el directorio raíz de la unidad de inicio una copia del archivo de controlador de la controladora renombrado a NTBOOTDD.SYS) asume que debe apoyarse en un servicio proporcionado por la BIOS llamado INT13 para acceder al disco, leer y cargar en memoria archivos como el núcleo de Windows, la HAL, la DLL de la API nativa NTDLL.DLL, los archivos del registro SYSTEM y SOFTWARE y los controladores configurados para arrancar durante el proceso de inicio del sistema operativo (con valor de la entrada Start=0). Luego, pasa a ejecutar el núcleo y los controladores que cargó, para dejar de depender de la INT13 y continuar con el proceso de carga de Windows. Si en este momento no había cargado en la fase previa un controlador de dispositivo apto para la controladora de disco donde reside el disco del sistema o éste está inhabilitado, Windows se parará con una pantalla de detención con el error 0x7B, INACCESSIBLE_BOOT_DEVICE. Si el sistema se reinicia e impide verlo, simplemente se pulsa F8 antes de que empiece la carga de Windows y se escoge en el menú la opción de desactivar el reinicio automático en caso de error del sistema (disponible en Windows XP con SP2/SP3 y en Windows Server 2003 con SP1/SP2). Este error significa que Windows ha perdido el acceso a la partición de sistema durante el proceso de carga. Según la documentación de Microsoft, el primer parámetro indica una dirección que hace referencia al objeto que no se pudo montar durante el arranque o bien a una cadena que contiene el nombre de especificación ARC del dispositivo desde donde intentó arrancar. Descrito el problema, veremos a ver cómo evadirlo y conseguir que deje de impedir que inicie el sistema una vez trasplantado. Existen en Internet y en foros de Internet muchas otras guías sobre este tema, pero ésta supera a cualquiera que se haya visto. La mayoría de otras guías sólo tratan el supuesto de que la placa base que debe reemplazarse está todavía operativa y que es posible iniciar el sistema Windows. Así, son completamente inútiles en caso de que la placa base que haya que sustituir no funcione, tengamos que reemplazarla y, tras lo cual, Windows no inicia con error 0x7B, hecho ante el que la mayoría de usuarios optará por iniciar con el CD y reparar la instalación o incluso reinstalar limpiamente dada la falta de información de cómo agregar controladores a una instalación no iniciada desde otro entorno. Además, esas guías normalmente son sólo útiles si la controladora IDE/SATA de disco donde se colocará el disco de sistema en la placa nueva es accesible a través del controlador estándar PCI IDE de Windows, excluyendo por tanto la posibilidad de migrar a una nueva controladora IDE RAID o SATA en modo AHCI/RAID, además de alguna SCSI o SAS. Y por último, tampoco indican cómo cambiar la capa de abstracción de tal modo que se permita cualquier cambio de HAL, incluso a una superior, sin necesidad de reinstalar nada. Este tema puede parecer demasiado largo, pero nada de qué preocuparse. Simplemente, leed la parte que os concierne y, además, su lectura se hace rápida. Si la placa base actual funciona y puede iniciarse el SO actual que debe migrarse a la placa nueva Si la placa base que debe reemplazarse todavía funciona, está instalada y Windows funciona correctamente, debemos preparar la instalación para migrar a controladora de disco nueva. Distinguiremos tres casos: La instalación debe moverse hacia una controladora IDE o SATA a la que se puede acceder con el controlador IDE PCI estándar pciide.sys. En este caso, bastará con entrar en el administrador de dispositivos, expandir la sección Controladoras IDE ATA/ATAPI, ignorar los diferentes canales IDE que existan y picar con el botón derecho sobre la controladora que exista enumerada para escoger Actualizar controlador. Seleccionamos Instalar desde una lista o ubicación específica (avanzado), No buscar y luego Seleccionaré el controlador que se va a instalar. Ahora dejamos marcada la casilla de Mostrar el hardware compatible y escogemos Controladora estándar PCI IDE de doble canal, para luego pulsar siguiente. Si en cambio, debemos mover la instalación hacia una controladora de disco no admitida nativamente por Windows XP/Server 2003, como pudiera ser una controladora SATA en modo AHCI/RAID o una controladora IDE RAID, es necesario preinstalar de algún modo el controlador respectivo a fin de que lo pueda iniciar cuando llegue la hora de realizar el traslado. Para ello, ejecuta hdwwiz.cpl, pulsamos siguiente, escogemos Sí, ya he conectado el hardware, en la parte final de la lista seleccionamos Agregar un nuevo dispositivo de hardware y pulsamos siguiente. Ahora toca escoger Instalar el hardware seleccionándolo manualmente de una lista (avanzado), Mostrar todos los dispositivos, esperamos a que confeccione la lista, pulsamos en Utilizar disco y buscamos el inf de la controladora en cuestión. Ahora escogemos el modelo preciso de controladora y pulsamos siguiente. En caso de que no aparezca nada, es preciso editar el inf con un editor de texto sin formato, buscar una sección llamada y colocar un punto y coma ; delante de todas las líneas que empiecen por ExcludeFromSelect para que no se procesen. ExcludeFromSelect determina que no debe mostrarse ese dispositivo a la hora de seleccionar el controlador en el asistente de Agregar Hardware. Una vez hecho, veremos que en el administrador de dispositivos aparecerá el dispositivo, pero con problemas. Es debido a que no está presente físicamente el dispositivo agregado, por lo que lo ignoramos sin problema alguno. En cualquier caso, no está de más configurar las controladoras IDE presentes para que usen el controlador estándar IDE PCI de Windows. Es posible que al instalar un controlador (esto pasa con el iastor de las controladores AHCI/RAID de los ICH6-ICH7-ICH9 Intel) de este modo "forzado" tenga lugar una pantalla de detención con error 0xCE de nombre simbólico DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS, que significa que se ha descargado un controlador (el que se estaba instalando) sin finalizar antes sus operaciones pendientes. En tal caso, tan sólo sólo es necesario reiniciar y proceder a actualizar el dispositivo desconocido en la sección de controladores SCSI/RAID, para que quede debidamente instalado. Esta vez mediante el inf sin modificar a fin de no quebrantar la firma digital. Luego, el último caso es el más sencillo y consta de que el disco de Windows está conectado en una tarjeta controladora PCI/PCIe que conectaremos también en la nueva placa base. No hay que hacer nada, pues Windows ya dispone del controlador preciso, pero nuevamente tampoco está de más realizar el proceso de instalación del controlador estándar IDE PCI en las controladoras IDE del sistema. Luego, para terminar de pulir el proceso, procedemos a desinstalar los controladores del hardware actual, como los de la gráfica, chipset, sonido, red... Si la migración la hacemos desde un equipo con AGP o con un chipset que disponga de tal bus aunque no esté presente en la placa una ranura AGP es conveniente eliminar el filtro AGP que se instaló. Para ello, es necesario darle a actualizar controlador sobre la controladora de CPU a AGP e instalar el controlador genérico, el de Puente PCI estándar de PCI a PCI. Luego, abrimos el editor de registro y buscamos en la rama HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServic es si tenemos una de estas claves correspondientes a los filtros AGP que integra Windows XP/Server 2003, si instalamos un controlador AGP proporcionado por el fabricante del chipset será necesario averiguar cómo se llama su servicio asociado y eliminarlo: uagp35 AGP440 alim1541 viaagp agpCPQ amdagp gagp30kx sisagp Si están presentes, se elimina la clave correspondiente a dicho controlador. Ya que estamos en la sección HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServic es, procederemos a inhabilitar los controladores IDE PCI que integra Windows, salvo el genérico pciide. Dentro de las claves aliide, toside, viaide, intelide y cmdide, configuramos el valor start como 4, controlador/servicio inhabilitado. Para nuestro procedimiento, pciide.sys es el único controlador IDE que necesitamos, los demás sobran. El último componente al que le instalaremos para evitar conflictos el controlador estándar es al procesador. Los controladores de procesador de Windows XP/Server 2003 sólo cumplen la función de permitir las transiciones de voltaje y frecuencia en los procesadores Intel con SpeedStep, en los AMD con PowerNow!/Cool´n´quiet y Transmeta con LongRun. Windows XP/Server 2003 traen unos cuantos de serie más la posibilidad de instalar un controlador procedente del fabricante. Para ello, actualizamos manualmente el controlador de éste y escogemos el estándar, el de Procesador. Si tenemos más de una CPU, ya sea física o lógica, listada se repite el proceso en las otras. Tras esto, vamos a HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServic es y eliminamos las siguentes claves, si están: amdk6 amdk7 amdk8 (de serie en Server 2003, instalable en XP) p3 intelppm Crusoe Un paso adicional podría ser eliminar los archivos inf correspondiente a controladores de terceros que tengamos todavía instalados y que no necesitemos nunca más. Para ello, vamos a la carpeta WINDOWSinf (está oculta) y vemos los archivos oem*.inf. Si analizando el contenido determinamos que pertenece a un hardware que no necesitamos más, lo podremos mover a otra carpeta cualquiera junto con el archivo oem*.pnf del mismo nombre de la misma carpeta y el archivo oem*.cat del mismo nombre situado en WINDOWSsystem32CatRoot{F750E6C3-38EE-11D1-85E5-00C04FC295EE} (mucho cuidado con modificar/borrar otros archivos en esta carpeta. De hacerlo podríamos dañar los catálogos de firmas digitales de Windows que usa para verificar la autenticidad de sus archivos y de los controladores certificados). Incluso podríamos analizar el inf y determinar qué archivos copia (secciones CopyFiles) y qué entradas de servicios crea para eliminarlas (AddReg, Eventlog y AddService entre otras), pero no es imprescindible, dado que la mayor parte de controladores PnP se configuran de tal modo que sólo se carguen si se detecta el dispositivo asociado. Cambio de HAL: La capa de abstracción de hardware HAL es un componente de Windows que trabaja de modo conjunto e íntimo con el núcleo de Windows y se utiliza para manejar arquitecturas de hardware estándares. Windows XP/Server 2003 disponen de varios tipos de HAL, las que usaremos en la práctica son, junto con el nombre del núcleo, la variante del núcleo con PAE y la HAL en sí (en cualquier caso, los archivos mencionados acaban renombrándose a ntoskrnl.exe, ntkrnlpa.exe y hal.dll durante la instalación): PC estándar, sin ACPI ni APIC: ntoskrnl.exe ntkrnlpa.exe hal.dll Equipo compatible con Advanced Configuration and Power Interface (ACPI), con ACPI pero sin APIC: ntoskrnl.exe ntkrnlpa.exe halacpi.dll Monoprocesador ACPI de PC, con ACPI y APIC: ntoskrnl.exe ntkrnlpa.exe halaacpi.dll Equipo multiprocesador ACPI, con ACPI, APIC y multiproceso: ntkrnlmp.exe ntkrpamp.exe halmacpi.dll Para comprobar la instalada actualmente, sólo hay que ir al administrador de dispositivos y desplegar. Si se intenta darle a Actualizar controlador, veremos que no podemos escoger libremente la deseada como pudiera hacer en Windows 2000, por lo que habrá que buscar otra manera que describiremos después. En esto de las capas, hay que tener presente que si usamos una inferior a la admitida por el hardware, desaprovecharamos prestaciones del hardware, mientras que si la instalada es superior a lo admite el hardware, el sistema no iniciará. Así, podríamos usar la de PC estándar en cualquier sistema, pero desperdiciriamos la gestión de energía avanzada ACPI, la posibilidad de usar más IRQs que ofrece el APIC y la posibilidad de multiproceso. Si en cambio, intentamos trasladar una instalación con la capa Monoprocesador ACPI de PC a un equipo sin APIC, se quedará congelado durante el inicio mostrando un cursor en la pantalla. Cuando se mueve una instalación una capa ACPI a un hardware no ACPI se reiniciará durante el arranque. Las dos capas que usaremos más frecuentemente en los equipos modernos son Monoprocesador ACPI de PC y Equipo multiprocesador ACPI, siendo intercambiables pero con una repercusión en el rendimiento: Usar una capa multiprocesador (para sistemas con varios zócalos, varios núcleos o con HyperThreading) en un equipo con sólo un procesador (un sólo procesador de un sólo núcleo y sin HT) degradará el rendimiento de modo considerable. A la inversa también se pierden prestaciones por no poderse usar más que una CPU, núcleo o subproceso. Por todos estos motivos es preciso asegurarse de que esté instalada la HAL correcta según el hardware cuando se cambie la placa base, para lo cual podrá ser preciso obligar al cargador NTLDR a cargar un núcleo y HAL alternativos como veremos ahora. Es preciso mencionar que en el caso de que realicemos el cambio de una HAL ACPI a una no ACPI (La de PC estándar y las MPS), podría ser necesario agregar manualmente el dispositivo "Compatible con Apm/Legacy en Windows NT" para habilitar el apagado APM, así como borrar las entradas de controladores relacionados con ACPI en HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServic es, tales como ACPI, ACPIEC, cmbatt, battc y compbatt. Para empezar, entramos en la carpeta WINDOWSDriver Cachei386 y buscamos los archivos correspondientes a la HAL (arriba están detallados) y núcleo que necesitamos, por el siguiente orden, los cabs se pueden abrir con Winrar o 7-Zip: En la carpeta mencionada. En un archivo sp(n).cab, siendo (n) el número de Service Pack instalado. En el archivo driver.cab. Una vez que localizado los 3 archivos, los copiamos/extraemos a una carpeta cualquiera y los renombramos de este modo: Al archivo ntoskrnl.exe o ntkrnlmp.exe (según si necesitamos el núcleo monoprocesador o el multiprocesador, respectivamente) le ponemos un nombre que tenga como máximo 6 caracteres, nada de espacios ni caracteres especiales. A ntkrnlpa.exe o ntkrpamp.exe le ponemos el mismo nombre que al anterior, pero añadiéndolo pa. Podríamos llamarlos krnl.exe y krnlpa.exe. Luego, al archivo dll correspondiente le ponemos un nombre cualquiera que no sea hal.dll y que tenga 8 o menos caracteres, sin espacios ni caracteres especiales. Un ejemplo podría ser halnew.dll. Ahora debemos copiar todos estos archivos a la carpeta WINDOWSsystem32Posteriormente, pulsamos la tecla de la banderita de Windows + pausa, nos desplazamos a Opciones avanzadas, dentro del apartado Inicio y recuperación pulsamos Configuración y dentro de ese menú, Editar. [boot loader] timeout=0 default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Windows XP Professional" /noexecute=alwaysoff /fastdetect /sos C:CMDCONSBOOTSECT.DAT="Consola de recuperación" /cmdcons c:peboot.bin="BartPE en disco duro" Hacemos una copia de la línea que carga el SO en cuestión y la colocamos debajo de la original, separándola con retorno de carro, tecla Intro. [boot loader] timeout=0 default=multi(0)disk(0)rdisk(0)partition(1)WINDOW S [operating systems] multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Windows XP Professional" /noexecute=alwaysoff /fastdetect /sos multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Windows XP Professional" /noexecute=alwaysoff /fastdetect /sos C:CMDCONSBOOTSECT.DAT="Consola de recuperación" /cmdcons c:peboot.bin="BartPE en disco duro" Ahora, se le cambia la descripción a la línea nueva, de tal modo que podamos identificarla luego. Y añadimos los parámetros /kernel= y /hal= haciendo referencia a los archivos de antes: [boot loader] timeout=0 default=multi(0)disk(0)rdisk(0)partition(1)WINDOW S [operating systems] multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Windows XP Professional" /noexecute=alwaysoff /fastdetect /sos multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Windows XP Professional con ACPI+APIC MP" /noexecute=alwaysoff /fastdetect /sos /kernel=krnl.exe /hal=halnew.dll C:CMDCONSBOOTSECT.DAT="Consola de recuperaci¢n" /cmdcons c:peboot.bin="BartPE en disco duro" A modo de curiosidad técnica, este parámetro de boot.ini tiene como fin en realidad permitir la ejecución de un núcleo y HAL de Windows en versión de compilación "Checked" en un sistema Windows con compilación "Free". La compilación "Checked" es una compilación especial para desarrolladores de componentes del sistema y controladores donde los binarios retienen comprobaciones de errores e información de depuración útilesa para depurar problemas, pero a cambio ocupa más espacio en disco y consume más recursos. La "Free" es la compilación destinada a los usuarios finales, donde se ha eliminado buena parte de la información de depuración de los binarios y optimizado más el rendimiento y consumo de recursos del sistema y los controladores. Ahora, cuando ya hayamos realizado el cambio de placa base sólo tenemos que pulsar F8 antes del arranque de Windows, escoger como opción de sistema operativo la línea nueva creada, esperar a que inicie y redetecte la nueva capa de abstracción de hardware. Tras esto, ya habrá actualizado los archivos hal.dll, ntoskrnl.exe y ntkrnlpa.exe con los correspondientes a la nueva capa, por lo que podremos borrar la línea añadida en el boot.ini y los 3 archivos creados antes Si la placa base no funciona: Si la placa base actual está muerta y la hemos tenido que reemplazar, tras lo cual Windows XP/Server 2003 no inicia podremos seguir estos pasos (si inicia, tan sólo tendremos que seguir los pasos de limpieza del mensaje anterior y los retoques finales, dependerá de los controladores de almacenamiento masivo que estuvieran instalados): En este caso nos ayudaremos de BartPE para completar el proceso y tener acceso a una instalación de Windows no operativa. Descargaremos PEBuilder y lo instalaremos en la ubicación por defecto. Luego, necesitaremos tener a nuestro alcance un origen de instalación de Windows XP con SP1 como mínimo o bien de Windows Server 2003, ya sea en una unidad de disco duro o en un CD/DVD. Antes de hacer nada, tenemos que plantearnos si las controladoras de disco donde usaremos el BartPE requieren o no un controlador de un tercero mediante lo de F6. BartPE puede acceder nativamente a las mismas controladores de disco que el SO que se utilizó como base para construirlo. Si es así, tan sólo tendremos que ir a la carpeta driversSCSIAdapter y copiar en carpetas separadas los controladores IDE/RAID/SATA/SCSI/SAS necesarios, todos los que necesitemos. Es necesario editar la sección de cada uno de los archivos txtsetup.oem para quitar referencias a entradas que no sean para Windows XP x86 o por lo menos colocar un punto y coma delante. ; HwComponent section Si3114r_XP = "Silicon Image SiI 3114 SATARaid Controller for Windows XP/Server 2003" Si3114r_NT = "Silicon Image SiI 3114 SATARaid Controller for Windows NT 4.0 and 2000" Debe quedar así: ; HwComponent section Si3114r_XP = "Silicon Image SiI 3114 SATARaid Controller for Windows XP/Server 2003" ;Si3114r_NT = "Silicon Image SiI 3114 SATARaid Controller for Windows NT 4.0 and 2000" Un ejemplo más complejo: Ultra133TX2_2003 = "Win2003 Promise ULTRA133 TX2 (tm) Controller", Ultra Ultra100TX2_2003 = "Win2003 Promise ULTRA100 TX2 (tm) Controller", Ultra Ultra100_2003 = "Win2003 Promise ULTRA100 (tm) Controller", Ultra Ultra100_2003_2 = "Win2003 Promise ULTRA100 (tm) Controller (PDC20265)", Ultra Ultra66_2003 = "Win2003 Promise ULTRA66 (tm) Controller", Ultra Ultra33_2003 = "Win2003 Promise ULTRA33 (tm) Controller", Ultra Ultra133TX2_xp = "WinXP Promise ULTRA133 TX2 (tm) Controller", Ultra Ultra100TX2_xp = "WinXP Promise ULTRA100 TX2 (tm) Controller", Ultra Ultra100_xp = "WinXP Promise ULTRA100 (tm) Controller", Ultra Ultra100_xp_2 = "WinXP Promise ULTRA100 (tm) Controller (PDC20265)", Ultra Ultra66_xp = "WinXP Promise ULTRA66 (tm) Controller", Ultra Ultra33_xp = "WinXP Promise ULTRA33 (tm) Controller", Ultra Ultra133TX2_nt5 = "Win2000 Promise ULTRA133 TX2 (tm) Controller", Ultra Ultra100TX2_nt5 = "Win2000 Promise ULTRA100 TX2 (tm) Controller", Ultra Ultra100_nt5 = "Win2000 Promise ULTRA100 (tm) Controller", Ultra Ultra100_nt5_2 = "Win2000 Promise ULTRA100 (tm) Controller (PDC20265)", Ultra Ultra66_nt5 = "Win2000 Promise ULTRA66 (tm) Controller", Ultra Ultra33_nt5 = "Win2000 Promise ULTRA33 (tm) Controller", Ultra Ultra133TX2 = "WinNT Promise ULTRA133 TX2 (tm) Controller", Ultra Ultra100TX2 = "WinNT Promise ULTRA100 TX2 (tm) Controller", Ultra Ultra100 = "WinNT Promise ULTRA100 (tm) Controller (PDC20267)", Ultra Ultra100_2 = "WinNT Promise ULTRA100 (tm) Controller (PDC20265)", Ultra Ultra66 = "WinNT Promise ULTRA66 (tm) Controller", Ultra Ultra33 = "WinNT Promise ULTRA33 (tm) Controller", Ultra Debe quedar así. ;Ultra133TX2_2003 = "Win2003 Promise ULTRA133 TX2 (tm) Controller", Ultra ;Ultra100TX2_2003 = "Win2003 Promise ULTRA100 TX2 (tm) Controller", Ultra ;Ultra100_2003 = "Win2003 Promise ULTRA100 (tm) Controller", Ultra ;Ultra100_2003_2 = "Win2003 Promise ULTRA100 (tm) Controller (PDC20265)", Ultra ;Ultra66_2003 = "Win2003 Promise ULTRA66 (tm) Controller", Ultra ;Ultra33_2003 = "Win2003 Promise ULTRA33 (tm) Controller", Ultra Ultra133TX2_xp = "WinXP Promise ULTRA133 TX2 (tm) Controller", Ultra Ultra100TX2_xp = "WinXP Promise ULTRA100 TX2 (tm) Controller", Ultra Ultra100_xp = "WinXP Promise ULTRA100 (tm) Controller", Ultra Ultra100_xp_2 = "WinXP Promise ULTRA100 (tm) Controller (PDC20265)", Ultra Ultra66_xp = "WinXP Promise ULTRA66 (tm) Controller", Ultra Ultra33_xp = "WinXP Promise ULTRA33 (tm) Controller", Ultra ;Ultra133TX2_nt5 = "Win2000 Promise ULTRA133 TX2 (tm) Controller", Ultra ;Ultra100TX2_nt5 = "Win2000 Promise ULTRA100 TX2 (tm) Controller", Ultra ;Ultra100_nt5 = "Win2000 Promise ULTRA100 (tm) Controller", Ultra ;Ultra100_nt5_2 = "Win2000 Promise ULTRA100 (tm) Controller (PDC20265)", Ultra ;Ultra66_nt5 = "Win2000 Promise ULTRA66 (tm) Controller", Ultra ;Ultra33_nt5 = "Win2000 Promise ULTRA33 (tm) Controller", Ultra ;Ultra133TX2 = "WinNT Promise ULTRA133 TX2 (tm) Controller", Ultra ;Ultra100TX2 = "WinNT Promise ULTRA100 TX2 (tm) Controller", Ultra ;Ultra100 = "WinNT Promise ULTRA100 (tm) Controller (PDC20267)", Ultra ;Ultra100_2 = "WinNT Promise ULTRA100 (tm) Controller (PDC20265)", Ultra ;Ultra66 = "WinNT Promise ULTRA66 (tm) Controller", Ultra ;Ultra33 = "WinNT Promise ULTRA33 (tm) Controller", Ultra Después de hacerlo, ejecutamos pebuilder.exe, en Fuente tenemos que proporcionarle la ruta con el origen de instalación de Windows XP/Server 2003 y en Adicionales podríamos darle como ruta un directorio con aplicaciones de diagnóstico ejecutables en BartPE. Dos buenas aplicaciones de este tipo para este entorno son SIW y Everest. También necesitaremos copiar en dicho directorio un archivo reg con el contenido que tenemos al final del mensaje (se debe copiar en un archivo de texto sin formato y guardarlo con codificación Unicode y extensión .reg), la utilidad MSDINST.EXE y los binarios de un descompresor que funcione bien en BartPE, como pudieran ser 7-Zip y Winrar, por si tuvieramos que descomprimir algún archivo. Luego, pulsamos en Plugins, seleccionamos el de RpcSS needs to launch DComLaunch Service First - SP2 Only y pulsamos Habilitar Sí/No asegurándonos de que esté habilitado. También seleccionamos Keyboard Layout, lo habilitamos como el de antes y le damos a editar, para luego buscar en el archivo la línea donde viene escrito ; Remove the semicolon at the beginning of the following line to set the default keyboard to: Spanish (Traditional Sort). Como indica, le quitamos el punto y coma a la siguiente línea, la de 0x1, "Keyboard LayoutPreload", "1", "0000040A". Una vez configurados estos aspectos básicos, podemos darle a Cerrar, escogemos Grabar CD/DVD y en dispositivo la grabadora adecuada, para luego pulsar Construir. Si todo ha ido bien, pebuilder.exe habrá creado el CD/DVD BartPE. Si no, el informe de creación debería informar de qué archivo no se pudo copiar a fin de poder solucionarlo. Una vez construido, lo insertamos e iniciamos el equipo con la placa base ya cambiada. Tardará unos minutos en arrancar y preguntará si deseamos iniciar la compatibilidad de red. Respondemos No pues no la necesitamos para este procedimiento. Pulsamos el botón Go, escogemos Command Prompt y en la consola de comandos CMD tecleamos el siguiente comando: reg load HKLMTEMP c:windowssystem32configsystem Tras este comando, que cargará en el editor de registro la rama SYSTEM de la instalación de Windows, escribimos en la misma consola de comandos el comando regedit e importamos el archivo .reg de antes (el contenido de dicho archivo está al final de este tema, justo encima de la captura con la prueba de Windows iniciado tras el cambio de controladora, sólo es necesario copiar y pegarlo en un editor de texto plano, para guardarlo como .reg). Navegamos a la rama HKLMTEMPSelect y observamos el valor de la entrada Default. Si es 001 podremos continuar, si no es necesario editar el archivo .reg de antes y usar la función Reemplazar del bloc de notas, en Buscar ponemos TEMPControlSet001 y en Reemplazar por TEMPControlSet002 TEMPControlSet003 o lo que fuera según el valor de la entrada Default de antes. Luego, nos desplazamos a la rama HKLMTEMP y en archivo escogemos Descargar subárbol o ejecutamos el comando reg unload HKLMTemp Con esto Windows XP/Server 2003 debería poder iniciar desde un disco conectado a cualquier controladora IDE/SATA a la que se pueda acceder con el controlador estándar PCI IDE pciide.sys. Si en cambio, tenemos el disco conectado a una controladora SCSI/SAS, esté admitida por Windows o no de modo nativo, o a una RAID/SATA deberemos usar la utilidad MSDINST.EXE para instalar el controlador en una instalación de Windows no iniciada. Lo primero es determinar si el controlador viene de serie o no en Windows. Si no viene de serie, debemos crear una carpeta en la unidad de disco duro, como pudiera ser c:WINDOWSRAIDDRIVER, en la que copiaremos todos los archivos del controlador de la controladora en cuestión, los inf, los sys, los cat... Luego, ejecutamos el comando reg load HKLMTEMP c:windowssystem32configsoftware y ejecutamos regedit.exe. Dentro de la rama HKLMTempMicrosoftWindowsCurrentVersion buscamos el valor DevicePath y lo editamos. Lo más probable es que venga de serie el valor %SystemRoot%inf, introducimos el nombre de la carpeta donde copiamos los archivos del controlador separándolo con un punto y coma, tal que quede así %SystemRoot%inf;c:WINDOWSRAIDDRIVER. Podemos añadir más rutas separándolas con punto y coma, de tal modo que Windows considerará esas carpetas como origen de instalación de controladores, tomando de ahí los controladores sin que tengamos que instalarlos manualmente. Una vez hecho esto, descargamos la rama HKLMTEMP como antes. Ahora necesitamos copiar la utilidad MSDINST.EXE a la unidad B:, la unidad de disco RAM que crea BartPE. Posteriormente, ejecutamos el bloc de notas notepad.exe y guardamos un archivo como "b:sysprep.inf", las comillas deben escribirse. En dicho archivo, escribimos: ID PnP = Ruta al inf Reemplazando ID PnP = Ruta al inf por los datos reales. La ID PnP de la controladora la podemos averiguar ejecutando el SIW en BartPE, apartado Hardware, PCI y pulsando sobre el dispositivo que parezca ser nuestra controladora. Nos interesa el valor del fabricante (Vendor) y el de dispositivo (Device). En nuestro ejemplo, ponemos el de una controladora SATA RAID del ICH7R de Intel. El código de fabricante es 8086 y el de dispositivo 27C3. En ruta al inf sólo tenemos que teclear la ruta absoluta al archivo inf del controlador que copiamos antes, si la ruta contiene algún espacio es necesario encerrarla con comillas. El archivo inf del ejemplo se llama iastor.inf y lo copiamos en c:WINDOWSRAIDRIVER. En caso de que queramos añadir compatibilidad con alguna controladora IDE o SCSI admitida de serie por Windows, lo más probable es que se instale mediante los archivos mshdc.inf, pnpscsi.inf y scsi.inf, dentro de la carpeta WINDOWSinf. Quedaría así: pciven_8086&dev_27C3 = c:WINDOWSRAIDDRIVERiastor.inf Si, como ejemplo, además quisieramos añadir compatibilidad para una controladora SCSI Tekram DC-390U3W, que viene de serie admitida en Windows XP, añadimos (se supone que la tenemos insertada en una ranura PCI y que hemos comprobado su ID PNP con SIW): PCIVEN_1000&DEV_0020 = c:WINDOWSinfpnpscsi.inf Una vez hecho todo esto, sólo debemos ir a una consola de comandos, cambiar a la unidad b: con b: y ejecutar: msdinst sysprep.inf c:windows Debería mostrar un mensaje de operación completada con éxito: Success! Image has been updated. En caso de que la herramienta MSDINST.EXE no funcione o no tengamos acceso a esta herramienta, será necesario configurar a mano el servicio y la entrada en la base de datos de dispositivos críticos, para ello seguimos estos pasos: Creamos una carpeta en la unidad local con los controladores correspondientes y cambiamos el valor DevicePath como se describió antes. Luego copiamos el archivo de controlador .sys a la carpeta WINDOWSSystem32Drivers. Ahora, cargamos en el registro el archivo de registro SYSTEM y nos desplazamos a la clave ControlSetxxx reflejada en el valor Default, tal como vimos antes. Dentro de ésta, vamos a service y creamos una clave con el mismo nombre que el controlador, pero sin .sys, como ejemplo iastor. Dentro de ésta creamos las siguientes entradas: Una DWORD llamada Start, con valor 0, controlador que debe cargar el cargador NTLDR. Otra DWORD llamada Type, con valor 1, controlador de núcleo. Una alfanumérica llamada ImagePath, de valor system32drivers[controlador.sys] cambiando [controlador.sys] por el nombre del controlador. Otra alfanumérica llamada Group, con valor SCSI miniport si la controladora aparece enumerada en la sección de Controladoras SCSI/RAID del administrador de dispositivos de Windows o System Bus Extender si es una controladora IDE/SATA a la que se puede acceder con el controlador estándar pciide. En caso de duda, podemos mirar la clase de dispositivo con el SIW (es una de las imágenes de arriba). Lo seleccionamos en HardwarePCI y nos fijamos en el valor PCI Class Type, si es 101xxh le corresponde System Bus Extender, si es otro como 010000h (controladora SCSI), 010400h (controladora RAID), 010602h (controladora SATA con AHCI), 010700h (controladora SAS) o 018000h (dispositivo de almacenamiento masivo) le corresponde SCSI miniport. Ahora toca configurar la entrada de la base de datos de dispositivos críticas, en la rama ControlCriticalDeviceDatabase. Hay que crear una rama con nombre pci#ven_xxxx&dev_yyyy, donde xxxx es la ID del fabricante e yyyy la del dispositivo. Se pueden consultar con SIW como vimos anteriormente. Luego, dentro de ésta hay que crear dos entradas alfanuméricas: ClassGUID: El identificador universal global de la clase de dispositivos, {4D36E97B-E325-11CE-BFC1-08002BE10318} si el dispositivo es una controladora SCSI/RAID o de almacenamiento masivo y {4D36E96A-E325-11CE-BFC1-08002BE10318} si es una controladora IDE/SATA a la que se puede acceder con el controlador estándar pciide, en función del valor de clase PCI según detallamos antes. Service: El nombre del controlador asociado, igual al nombre del controlador sin la extensión. Si fuera necesario cambiar la capa de abstracción, también lo podremos hacer siguiendo los pasos de antes y recordando que es necesario quitar el atributo de sólo lectura del archivo boot.ini. Para descomprimir los cabs, podremos usar el 7-Zip. Una vez que lo hagamos, podemos reiniciar y comprobar si inicia el SO. Tras ello, seguimos los pasos de limpieza del apartado anterior para eliminar los rastros de controladores anteriores. Contenido del archivo reg necesario para el paso del BartPE: Código: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabaseprimary_ide_channel] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="atapi" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasesecondary_ide_channel] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="atapi" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabase*pnp0600] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="atapi" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabase*azt0502] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="atapi" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasegendisk] "ClassGUID"="{4D36E967-E325-11CE-BFC1-08002BE10318}" "Service"="disk" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#cc_0101] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="pciide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_0e11&dev_ae33] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="pciide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_1039&dev_0601] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="pciide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_1039&dev_5513] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="pciide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_1042&dev_1000] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="pciide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_105a&dev_4d33] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="pciide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_1095&dev_0640] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="pciide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_1095&dev_0646] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="pciide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_1095&dev_0646&REV_05] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="pciide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_1095&dev_0646&REV_07] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="pciide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_1095&dev_0648] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="pciide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_1095&dev_0649] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="pciide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_1097&dev_0038] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="pciide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_10ad&dev_0001] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="pciide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_10ad&dev_0150] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="pciide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_10b9&dev_5215] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="pciide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_10b9&dev_5219] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="pciide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_10b9&dev_5229] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="pciide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_1106&dev_0571] "Service"="pciide" "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_8086&dev_1222] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="intelide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_8086&dev_1230] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="intelide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_8086&dev_2411] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="intelide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_8086&dev_2421] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="intelide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_8086&dev_7010] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="intelide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_8086&dev_7111] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="intelide" [HKEY_LOCAL_MACHINETEMPControlSet001ControlCriticalDeviceDatabasepci#ven_8086&dev_7199] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="intelide" [HKEY_LOCAL_MACHINETEMPControlSet001Servicesatapi] "ErrorControl"=dword:00000001 "Group"="SCSI miniport" "Start"=dword:00000000 "Tag"=dword:00000019 "Type"=dword:00000001 "ImagePath"=hex(2):53,00,79,00,73,00,74,00,65,00,6d, 00,33,00,32,00,5c,00,44,00, 52,00,49,00,56,00,45,00,52,00,53,00,5c,00,61,00,74,00,61,00,70,00,69,00,2e, 00,73,00,79,00,73,00,00,00 [HKEY_LOCAL_MACHINETEMPControlSet001ServicesIntelIde] "ErrorControl"=dword:00000001 "Group"="System Bus Extender" "Start"=dword:00000000 "Tag"=dword:00000004 "Type"=dword:00000001 "ImagePath"=hex(2):53,00,79,00,73,00,74,00, 65,00,6d,00,33, 00,32,00,5c,00,44,00, 52,00,49,00,56,00,45,00,52,00,53,00,5c,00,69 ,00,6e,00,74,00,65,00,6c,00,69, 00,64,00,65,00,2e,00,73,00,79,00,73,00,00,00 [HKEY_LOCAL_MACHINETEMPControlSet001ServicesPCIIde] "ErrorControl"=dword:00000001 "Group"="System Bus Extender" "Start"=dword:00000000 "Tag"=dword:00000003 "Type"=dword:00000001 "ImagePath"=hex(2):53,00,79,00,73,00,74,00,65,00,6d,00, 33,00,32,00,5c,00,44,00, 52,00,49,00,56,00,45,00,52,00,53,00,5c, 00,70,00,63,00,69,00,69,00,64,00,65, 00,2e,00,73,00,79,00,73,00,00,00 Una vez realizado, éste es el resultado: El sistema operativo inicia e instala automáticamente el controlador de la controladora dado que lo tiene recogido en el valor DevicePath. Para la prueba, se usó un XP SP3 instalado en una máquina virtual VirtualBox, que virtualiza un chipset i440FX + PIIX3. Luego, se intentó transplantar a una máquina virtual VMware, en la cual se virtualiza un i440BX + PIIX4, con el disco conectado a la controladora virtual SCSI Buslogic. Esto simuló perfectamente el hecho de realizar un trasplante de un equipo a otro con diferente controladora de disco. Una vez que esté todo en orden, es hora de instalar los controladores nuevos correspondientes al hardware nuevo: Controladores del chipset, sonido, red, gráfica, controladores de disco y otros. También deberíamos eliminar los dispositivos fantasma provenientes de la placa anterior: Ejecutamos regedit y nos vamos a la clave HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnum. Ahí están todos los dispositivos que el SO ha enumerado y en HKEY_LOCAL_MACHINESYSTEMCurrentControlSetContro lClass están todos los dispositivos que ha instalado organizados por clases. Para verlo de un modo más gráfico, pulsamos Windows + Pausa, pestaña Opciones avanzadas, Variables de entorno y en el apartado de variables de sistema le damos a nueva: Nombre de variable: DEVMGR_SHOW_NONPRESENT_DEVICES Valor de variable: True. Una vez realizado, abrimos el administrador de dispositivos y en ver escogemos Mostrar dispositivos ocultos. Los dispositivos que estuvieron presentes, pero ya no, aparecerán atenuados. No debemos eliminar nada dentro de la categoría Controladores que no son Plug and Play ni dentro de Adaptadores de red ni Dispositivos de Sonido, audio y vídeo. En vez de eso, conseguimos la utilidad sysprep, la copiamos en una carpeta como c:sysprep, abrimos una consola de comandos, cambiamos al directorio de sysprep y ejecutamos sysprep -clean. Esto eliminará cualquier dispositivo PnP fantasma de modo automático, aunque su utilidad principal es eliminar controladores de almacenamiento masivo que se agregaron mediante a la hora de sellar una instalación maestra con sysprep.exe. Si lo deseamos, podemos mirar el antes y el después en ramas como HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumPCI y HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumACPI. Éste es el fin del tema. Ha salido algo largo debido a que he querido ponerlo todo bien detallado, para que no se omita nada, pero el procedimiento en sí es algo rápido y no complicado. Si tienes alguna duda con los procedimientos o deseas realizar alguna crítica constructiva, puedes plantearlo en este hilo, que para eso está. Cambiar una controladora Intel SATA de modo de emulación IDE a AHCI/RAID: Debido a la gran cantidad de usuarios que están preguntando esto mismo he decidido crear este minitutorial, válido para todas las controladoras AHCI/RAID de Intel para las cuales Intel ofrece controladores para Windows XP/Server 2003. En este minitutorial se supone que Windows inicia perfectamente en modo de emulación de IDE, pero no en AHCI ni en RAID, con lo cual será necesario preinstalar de alguna forma el controlador respectivo. Antes que nada descargaremos este archivo de la web de Intel y descomprimimos el contenido en la carpeta WINDOWSAHCI-RAID. A su vez, el archivo IaStor.sys lo copiamos a la carpeta WINDOWSsystem32drivers. Ahora, abrimos el editor de registro y nos desplazamos a la rama HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurr entVersion. Dentro de ésta editamos la entrada DevicePath y la modificamos para que su valor sea: %SystemRoot%inf;%SystemRoot%AHCI-RAID. Ahora sólo tenemos que copiar el contenido del archivo .reg siguiente en un bloc de notas, guardarlo como .reg (no como .reg.txt) y con codificación Unicode e importarlo al registro con doble clic. Con esto finaliza el proceso y Windows ya deberá iniciar perfectamente, instlando automáticamente el controlador dado que lo tiene en el Valor DevicePath. Código: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabase PCI#VEN_8086&DEV_2681&CC_0106] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="iaStor" [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabase PCI#VEN_8086&DEV_2682&CC_0104] "ClassGUID"="{4D36E97B-E325-11CE-BFC1-08002BE10318}" "Service"="iaStor" [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabase PCI#VEN_8086&DEV_27C1&CC_0106] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="iaStor" [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabase PCI#VEN_8086&DEV_27C3&CC_0104] "ClassGUID"="{4D36E97B-E325-11CE-BFC1-08002BE10318}" "Service"="iaStor" [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabase PCI#VEN_8086&DEV_27C5&CC_0106] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="iaStor" [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabase PCI#VEN_8086&DEV_27C6&CC_0104] "ClassGUID"="{4D36E97B-E325-11CE-BFC1-08002BE10318}" "Service"="iaStor" [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabase PCI#VEN_8086&DEV_2821&CC_0106] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="iaStor" [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabase PCI#VEN_8086&DEV_2822&CC_0104] "ClassGUID"="{4D36E97B-E325-11CE-BFC1-08002BE10318}" "Service"="iaStor" [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabase PCI#VEN_8086&DEV_2829&CC_0106] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="iaStor" [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabase PCI#VEN_8086&DEV_282A&CC_0104] "ClassGUID"="{4D36E97B-E325-11CE-BFC1-08002BE10318}" "Service"="iaStor" [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabase PCI#VEN_8086&DEV_2922&CC_0106] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="iaStor" [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabase PCI#VEN_8086&DEV_2929&CC_0106] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="iaStor" [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCriticalDeviceDatabase PCI#VEN_8086&DEV_3A22&CC_0106] "ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="iaStor" [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesiaStor] "Type"=dword:00000001 "Start"=dword:00000000 "Tag"=dword:00000000 "ErrorControl"=dword:00000001 "LoadOrderGroup"="SCSI Miniport" "ImagePath"="system32\DRIVERS\iaStor.sys"
Datos archivados del Taringa! original
0puntos
0visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
3visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

n
nkc10🇦🇷
Usuario
Puntos0
Posts4
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.