12.11.10

Cómo restaurar el archivo hal.dll


Existen varias opciones para restaurar el archivo hal.dll en sistemas Windows 2000 y Windows XP. Este sistema puede funcionar también en Windows 2003, pero no esta probado.




Las letras de unidad son solo ejemplos, en cada caso, deberán ser ajustadas a las configuraciones de cada PC.

El orden en que deben ser intentados estos pasos es el mismo en que los escribo debido a que aumenta el nivel de complejidad.

Todos los pasos han de ser seguidos cuidadosamente y prestando a tención alos mensajes en pantalla, si en cualquier momento se tienen dudas o nose sabe como continuar, lo mejor es consultar con alguien que sepa loque hace.

El método de reparación desde otra máquina ofrece la ventaja adicional de poder hacer una copia de emergencia de los datos.


1. Desde la consola de reparación del sistema:
(Este método solo funciona en Windows XP o 2003)

- Arrancar la máquina con el cd de instalación del sistema.

- Iniciar la consola de reparación siguiendo las instrucciones en pantalla para tal fin.

- Escribir: attrib -R-H-S C:\boot.ini.

- Escribir: del C:\boot.ini

- Escribir: bootcfg /rebuild

- Escribir: fixboot

- Tras reiniciar el sistema todo debería haber vuelto a la normalidad


2. Desde otra máquina:

- Desmontar el disco con el sistema dañado y montarlo como esclavo en otra máquina con sistema operativo Windows 2000 o superior.

- Arrancar el sistema de la máquina anfitrión y permitir al sistema anfitrión realizar todos los procesos de detección necesarios.

- Reiniciar el sistema anfitrión.

- Una vez reiniciado, activar la opción de ver archivos ocultos y de sistema.

- Con el explrador de archivos, localizar la carpeta E:\Windows\ServicePackFiles\i386 si estamos reparando un Windows XP o E:\Winnt\ServicePackFiles\i386 si estamos reparando un Windows 2000.

- Copiar el archivo hal.dll que se encuentra allí a la carpeta E:\Windows\System32 o E:\Winnt\System32. Si pregunta por sobrescribir, responder que si.

- Apagar el sistema anfitrión

- Desmontar el disco esclavo.

- Reinstalarlo como maestro en su computadora de origen.

- Reiniciar el sistema.


3. Desde la misma máquina pero con otro sistema operativo instalado:

- El otro sistema operativo debe poder leer sistemas de archivos NTFS modernos, por lo que debe ser, al menos, Windows 2000.

- Arrancar el segundo sistema de la máquina.

- Una vez iniciado, activar la opción de ver archivos ocultos y de sistema.

- Con el explrador de archivos, localizar la carpeta C:\WINDOWS\ServicePackFiles\i386 si estamos reparando un Windows XP o C:\WINNT\ServicePackFiles\i386 si estamos reparando un Windows 2000.

- Copiar el archivo hal.dll que se encuentra allí a la carpeta C:\WINDOWS\System32 o C:\WINNT\System32. Si pregunta por sobreescribir, responder que si.

- Reiniciar el sistema.


4. Copiando el archivo desde el CD de instalación original:

- Arrancar la máquina con el cd de instalación del sistema.

- Iniciar la consola de reparación siguiendo las instrucciones en pantalla para tal fin.

- Escribir: type C:\Windows\Repair\Setup.log si es un sistema Windows XP o C:\Winnt\Repair\Setup.log si es un sistema Windows 2000.

- Buscar la línea que contenga hal.dll, debe ser una línea similar a esta: \Windows\system32\ hal.dll="halacpi.dll","1d8a1".

- Copiaren un papel el nombre del archivo que aparece a la derecha del signo deigualdad. Nos refriremos a este archivo en las iguientes líneas como ArchivoHal.

- Escribir: attrib -R-H-S C:\Windows\System32\hal.dll si es un sistema Windows XP o attrib -R -H -S C:\Winnt\System32\hal.dll si es un sistema con Windows 2000. Si el archivo en efecto hadesaparecido del sistema aparecerá un mensaje de error advirtiéndonosde tal situación.

- Escribir: del C:\Windows\System32\hal.dll si es un sistema Windows XP o del C:\Winnt\System32\hal.dll si es un sistema con Windows 2000. Si el archivo en efecto hadesaparecido del sistema aparecerá un mensaje de error advirtiéndonosde tal situación.

- Escribir: expand ArchivoHal /F:D:\I386\Driver.cab C:\Windows\System32\hal.dll /Y si es un sistema Windows XP o expand ArchivoHal /F:D:\I386\Driver.cab C:\Winnt\System32\hal.dll /Y si es un sistema con Windows 2000.

- Escribir: ren C:\Windows\System32\ArchivoHal C:\Windows\System32\hal.dll si es un sistema Windows XP o ren C:\Winnt\System32\ArchivoHal C:\Winnt\System32\hal.dll si es un sistema con Windows 2000.

- Si al tratar de renombrar el archivo nos pregunta por sobreescribiruno existente, responder que si.

- Si no se puede sobreescribir el archivo existente, escribir: delC:\Windows\System32\hal.dll si es un sistema Windows XP o del C:\Winnt\System32\hal.dllsi es un sistema con Windows 2000 y reintentar el paso anterior.

Reiniciar el sistema.

Otra solución es la que postea/sube Blackdragon en este link:

Los pasos que debes seguir son:

  1. Iniciar el equipo con el CD de Windows XP e iniciar la consola de recuperación.
  2. Luego de entrar, digitas el número de la partición en la cual vas a trabajar.
  3. Luego nos va a pedir la contraseña de Administrador (Si no tiene, sólamente se presiona Enter y listo).
  4. En donde estamos, escribimos la siguiente instrucción: bootcfg /list y presionas Enter. Esto lo que hace es mostrar las entradas actuales del archivo Boot.ini
  5. Ahora digitamos bootcfg /rebuild para buscar instalaciones de Windows. Es un proceso un poco demorado, así que hay que tener paciencia.
  6. Después nos preguntará si deseamos agregar la instalación a la lista de inicio, le damos la "S" y presionamos Enter.
  7. Luego nos preguntará el identificador de carga, el cual va a ser el nombre del sistema operativo, por ejemplo: Microsoft Windows XP Professional, o cualquier otro nombre.
  8. Después de presionar Enter, nos pedirá las opciones de carga del sistema operativo, en este campo escribimos lo siguiente:/fastdetect y luego nuevamente presionamos Enter.
  9. Ya para terminar, luego escribimos exit para salirnos de la consola y reiniciar el equipo.

Al momento de iniciar nos mostrará un listado para escoger con qué sistema operativo iniciar, debemos escoger el que acabamos de crear y listo, nuestro sistema arrancará de nuevo sin el mensaje del hal.dll.