Buscar en SolucionOK

lunes, 25 de octubre de 2010

Cómo reparar el Master Boot Record en Microsoft Windows 95/ Me/ 98/ XP/2K/2K3/ Vista/ 7

Resúmen: Cómo reparar el Sector Maestro de Arranque de un disco duro que contiene Windows. En este articulo se explica la forma de repararlo y en algunos casos se proveen la herramientas necesarias para lograrlo.
Hola bloggeros, después de prácticamente 2 meses sin publicar, ya me estaba convenciendo de que este post no vería la luz, me costó bastante trabajo  terminar el artículo, que debo reconocer, me obligó a repasar viejos conceptos. Pero empecemos de una vez que no quiero aburrirlos, pues quedo bastante extenso este post.
En esta oportunidad quiero comentarles sobre los vericuetos del MBR, ese no muy bien conocido sector de nuestro disco duro, que se encarga de albergar la información necesaria para darle vida a nuestro computador cada vez que lo encendemos. Más de alguno de nosotros se ha visto afectado por uno u otro inconveniente en este sector o en el menú de arranque de Windows. A continuación explicaré como reparar estos casos.

En este post:

  1. Algunas nociones
  2. Problemas con el MBR
  3. Windows 95/98/Me
    1. Consiguiendo un diskette de arranque
    2. Consiguiendo un CD de Windows
    3. La Reparación
  4. Windows XP / 2000 / 2003
  5. Windows Vista / 7

1. Algunas nociones

  • El sector de partición del disco duro en una partición primaria, se localiza en su primer sector físico del disco duro (cylinder 0, head 0, sector 1).
  • En ese sector se encuentran "normalmente" los elementos esenciales para el buen funcionamiento de nuestro computador. Uno de ellos es el MBR (Registro Maestro de Arranque o Master Boot Record) que contiene un código ejecutable. Además, el esquema de la Tabla de Particiones del MBR, el firmware para el arranque (bootstrapping) que se encuentra en la ROM del BIOS (actualmente usan memorias flash) carga y ejecuta el master boot record, el código del MBR está compuesto de instrucciones de lenguaje máquina.
  • Ese código, se ejecuta después del POST (articulo no muy técnico), que normalmente, pasa el control al Volume Boot Record de la partición primaria activa, aunque algunos gestores de arranque reemplazan ese código convencional por el suyo.
  • El código convencional del MBR revisa la tabla de particiones buscando una que esté marcada con activa (active flag).
  • Luego carga y ejecuta el Volume Boot Record para esa partición (así que el Master Boot Recordes un blanco para los virus que infectan el sector de arranque).
  • Cuando el sistema inicia, después de que el computador realiza el POST, dependiendo del BOOT ORDER (orden de arranque que está definido en el C-MOS, conocido comúnmente como el SETUP) se intenta localizar el MBR (en el disco duro) y se realizará la carga del sistema de archivos que, para las versiones de Windows anteriores a XP , será FAT o FAT32 y a partir de ahí, siempre será NTFS; en este punto es que en realidad se puede acceder a la estructura de árbol de la partición y se puede proceder a la lectura de toda la configuración, puesto que hasta este punto solo se podía acceder a los archivos que estuvieran en la raíz de la partición ( para la mayoría de los sistemas Windows, C:). 
El código del MBR, modificado por algunos gestores de arranque, puede realizar una serie de tareas que son distintas según el gestor de arranque. Por ejemplo, en algunos sistemas, ese código carga el resto del código del gestor de arranque desde la primera pista del disco (que es espacio libre no asignado a ninguna partición de disco) y lo ejecuta. En otros, usa una tabla de posiciones de disco, que se encuentra en el mismo espacio que el código. Ambas formas tienen problemas. La primera confía en el comportamiento (que no es el mismo en todas) de las utilidades de particionado de disco y la segunda requiere que la tabla de posiciones de disco se actualice una vez se hayan hecho los cambios para localizar el resto del código.

2. Problemas con el MBR

El problema del MBR es más común de lo que se cree y lo que es peor, es más fácil de producir de lo que uno supone. Este problema surge cuando por alguna razón el formato de dicho sector no corresponde al estándar establecido ya sea por infección viral, corrupción o simplemente porque ese sector se escribió bajo otro estándar por un programa de un tercero o bien por otro sistema operativo, como Linux.

3.Reparación del MBR

La forma de reparar el Sector Maestro de Booteo, es tan variada como versiones de Windows hay, por lo que mostraré los casos mas comunes, sin embargo, en todos los casos, la reparación es la misma y consiste simplemente en reescribir el código dañado por uno válido, de acuerdo a la versión de Windows instalada.

Windows 95/98/Me

Aunque pueda parecer raro, hay quienes aun usan estos sistemas, dadas las características de sus máquinas y para no discriminar incluyo aquí también la forma de repararlas. Estos sistemas usan el “sistema de archivos” FAT y FAT32.
Para reparar el MBR en estos sistemas, es necesario arrancar el computador desde un diskette o CD, para conseguir una línea de comandos, o consola de DOS. Hay 2 formas de lograrlo:
    • Descarga: Puede descargar uno según su versión de Windows desde http://www.bootdisk.com/bootdisk.htm. Donde encontrará imágenes de disco de arranque para los 3 sistemas mencionados aquí. Mostraré los pasos usando WindowsWindows 98, el archivo descargado se llamará boot98se.exe, lo ejecutamos:  Win98Se Colocamos, tal como lo indica, un diskette en la unidad y damos clic en Aceptar, si el disco en cuestión no esta vacio, veremos una advertencia:disco no vacioConfirmamos la escritura haciendo clic en Si, y se iniciará el proceso de creación del disco (Se perderán los datos existentes en el diskette)creando
    • Preparar un diskette desde otro computador que funcione y que esté corriendo Windows en alguna de estas versiones, como sea, al ser todos del mismo tipo perfectamente puede ser un Windows  98, aunque el que se quiere reparar sea un 95 o Millenium.
      Inserte un disquete en la unidad A:, abra una ventana de DOS, vaya al Menú inicio, Ejecutar y escriba command:ejecutar  E ingresa los siguientes comandos en la ventana del MS-DOS: command-color Finalmente escriba exit, para cerrar la ventana DOS y regresar a Windows.

      En cualquiera de los casos, ya tendremos nuestro Diskette formateado y con sistema operativo instalado, lo colocamos en el computador que no arranca y encendemos el equipo (probablemente debas entrar en la configuración CMOS del equipo para indicarle  que arranque desde el diskette.
  • Consiguiendo un CD de Windows 98: Como ya se ha dicho, aunque el sistema a reparar no sea un Windows 98, con este CD podremos resolver nuestro problema. Obtenga una imagen ISO del CD de Windows 98 SE desde mi carpeta Dropbox y proceda a grabar (o quemar) la imagen en un CD. Este, además de contener la instalación de Windows 98, contiene un menú de arranque que permite ejecutar el símbolo de sistema, por lo que deberá configurar el CMOS de su equipo para que arranque desde CD-ROM. Una vez que el equipo inicie, verá un menú como este:boot cd 98 Donde debemos escoger la opción 1 “Iniciar desde disquete”, es claro que estamos trabajando con un CD y que no hay diskette en la unidad, ni siquiera es necesario tener una unidad de diskette. El propio Windows 98 se encargará de emular una. En el siguiente menu que veremos, debemos escoger la opción numero 3, Iniciar Pc sin compatibilidad para CD-ROM, por que lo necesario ya estará en la unidad emulada. menu boot win98Terminado este proceso tendremos línea de comandos, quedando ubicados en A:\>; reitero que será así aunque no tengamos unidad de diskette.  
En cualquiera de los 3 casos anteriores, el comando a ejecutar para reparar el MBR de nuestro sistema es: 
FDISK /MBR.
El comando ejecutará el programa FDISK en un modo de acceso especial. FDISK normalmente crea o elimina particiones del disco duro. Sin embargo, cuando se ejecuta con el modificador de /MBR, el comando FDISK simplemente actualiza el MBR. En este caso particular, el MBR es actualizado en base al contenido del disquete. Tengan presente que esta técnica no está garantizada del todo. Si su disco duro contiene datos extremadamente críticos, lleve su unidad a un especialista calificado, más que procurar recuperar Ud. mismo los datos. Luego, quite el diskette o CD, y reinicie el computador, si todo ha ido bien, tu computador arrancará como se esperaba.

Windows XP / 2000/ 2003

Estos Sistemas Operativos son distintos de los anteriores porque usan como plataforma el sistema de archivos NTFS (aunque XP, perfectamente puede operar sobre FAT32, no creo que dejaran los anteriores S.O. solo por la interfaz de XP). Dicho sea de paso que, Windows XP será el último S.O de Microsoft capaz de operar sobre FAT32. Las ventajas de NTFS sobre los “sabores” de FAT, son muchas, por mencionar algunas podemos decir que es un sistema adecuado para particiones de gran tamaño y alto rendimiento,  Teóricamente puede manejar volúmenes de hasta 264–1 clústeres. En la realidad, el máximo volumen NTFS soportado es de 232–1 clústeres (aproximadamente 16 Terabytes usando clústeres de 4KB), compatibilidad mejorada con metadatos, estructura de datos avanzadas (árboles-B), estabilidad, y el aprovechamiento del espacio en disco, además de la seguridad, las listas de control de acceso o el registro de transacciones (journaling).
Cuando hay problemas con el MBR, obtendrá un aviso como cualquiera de los siguientes:
  • NTOSKRNL (Perdido o Corrupto) Missing or Corrupt.
  • HAL.DLL (Perdido o Corrupto) Missing or Corrupt
  • Corrupted or Missing \WINDOWS\SYSTEM32\CONFIG\SYSTEM
  • Corrupted or Missing \WINDOWS\SYSTEM32\CONFIG\SOFTWARE
  • NTLDR or NTDETECT.COM No encontrado (Not Found) (El mas común)
En todos los casos, la solución pasa por estos 4 pasos:
  1. Arrancar con el CD de Windows. Si no arrancase, entrar al BIOS y modificar los parámetros para que arranque primero desde CD.
  2. En la primera pantalla, seleccionar "R" para entrar en la consola de recuperación (o reparación).
  3. Seleccionar el Windows que queremos reparar. Típicamente será el #1, y presiona <ENTER>
  4. Cuando nos lo solicite, teclear la contraseña del usuario "Administrador". (Normalmente no se coloca ninguna al momento de instalar Windows por lo que solo da <ENTER> para continuar). Si haz colocado algún password no debes de confundirlo con el de un usuario con atributos de administrador.
Luego dependiendo del mensaje de error, las acciones son las siguientes:
NTOSKRNL Missing or Corrupt
  • Realizar los puntos 1) a 4)
  • Cambiar a la unidad de CD. Típicamente será la D: si solo tenemos una partición.Cambiar por la letra correspondiente en otro caso.
  • Ejecutar la secuencia de comandos
    D:
    cd i386
    expand ntkrnlmp.ex_ C:\Windows\System32\ntoskrnl.exe
Si Windows estuviese instalado en otra localización distinta de c:\Windows, sustituirla en el comando anterior.
HAL.DLL Missing or Corrupt
  • Realizar los puntos 1) a 4)
  • Ejecutar la secuencia de comandos
    BOOTCFG /list (nos mostrará la lista en el boot.ini)
    BOOTCFG /rebuild (reparará este.)
    FIXBOOT (Lo que hace es reescribir/crear el Boot Manager de Windows (BOOT.INI) en la partición de inicio.)
    FIXMBR (Borra el MBR (Master Boot Record) es lo mismo que se hace desde dos con fdisk /mbr . Se utiliza mas que todo para eliminar un Boot Manager que se cargue alli como LILO o GRUB)
Corrupted or Missing \WINDOWS\SYSTEM32\CONFIG\SYSTEM
  • Realizar los puntos 1) a 4)
  • Ejecutar la secuencia de comandos
    cd \Windows\system32\config
    ren config config.bad
    copy \Windows\repair\system
Corrupted or Missing \WINDOWS\SYSTEM32\CONFIG\SOFTWARE
  • Realizar los puntos 1) a 4)
  • Ejecutar la secuencia de comandos
    cd \Windows\system32\config
    ren software sftware.bad
    copy \Windows\repair\software
NTLDR or NTDETECT.COM No encontrado (Not Found)
  • Realizar los puntos 1) a 4)
  • Suponemos que la unidad de cd es la letra D: (sustituirla en el comando posterior si fuese diferente):
    COPY D:\i386\NTLDR C\:
    COPY D:\i386\NTDETECT.COM C:\
En todos los casos después de terminar, Reiniciar el computador.

 Windows Vista /  7

Reparar arranque Windows Vista/7
Después de instalar una versión anterior de Windows en un equipo basado en Microsoft Windows Vista/7 con una configuración de arranque dual, puede experimentar alguno de los problemas siguientes:
  • Si se instala una versión anterior de Windows en un equipo con  Windows Vista/7, el sistema operativo ya no se inicia. En este caso, sólo se iniciarán las versiones anteriores del sistema operativo Windows
  • Si se instala una copia adicional de Windows XP en un equipo donde ya estén instalados Windows XP y Windows Vista/7 en una configuración de arranque dual, puede recibir un mensaje de error de lectura de disco.
Estos problemas se deben a que las versiones anteriores de Windows son incompatibles con el nuevo método de inicio de Windows Vista/7. Windows Vista/7 usa un nuevo almacén de base de datos de configuración de arranque (BCD, Boot Configuration Database). Este almacén contiene un menú de arranque y toda la información acerca de los sistemas operativos que están instalados en el equipo. Por lo tanto, para iniciar Windows Vista/7 no se puede usar un archivo BOOT.INI que sea de una versión anterior del sistema operativo Windows.
En las versiones anteriores de Windows que se ejecutan en un equipo basado en el sistema básico de entrada/salida (BIOS, Basic Input/Output System), como Windows XP, el proceso de arranque se inicia con el BIOS del sistema. El BIOS determina el dispositivo de arranque y, después, carga el primer sector físico. Este sector físico se conoce como el registro de arranque maestro (MBR, Master Boot Record). El MBR contiene la tabla de particiones y el código de ejecución de arranque necesario. Este código busca en la tabla de particiones las particiones activas y pasa el control al sector de arranque en la partición activa. Después, el sector de arranque de la partición activa carga el programa NTLDR. El programa NTLDR analiza el archivo BOOT.INI Este archivo se usa para enumerar los sistemas operativos que están instalados.
Cuando Windows Vista/7 se inicia en un equipo basado en el BIOS, el BIOS carga el MBR y luego el sector de arranque. Sin embargo, el código de arranque carga el nuevo programa Administrador de arranque de Windows (BOOTMGR). Este programa analiza el archivo BOOT.INI decimal codificado en binario (BCD), enumera los sistemas operativos instalados y muestra el menú de arranque. Si se ha instalado una versión anterior del sistema operativo Windows en una configuración de arranque dual con Windows Vista /7, el programa Administrador de arranque de Windows transfiere el control al programa NTLDR de la versión anterior del sistema operativo Windows. El Administrador de arranque de Windows realiza esta operación cuando se selecciona Windows Vista/7 en el menú de arranque.
Cuando instala una versión anterior de Windows en un equipo basado en Windows Vista/7, el programa de instalación sobrescribe todo lo que hay en el MBR, el sector de arranque y los archivos de arranque. Por lo tanto, la versión anterior del sistema operativo Windows ha perdido la compatibilidad con las siguientes versiones, en este caso con Windows Vista/7
Para resolver el problema, de pérdida del MBR, siga estos pasos.
Nota: puede ejecutar los comandos del procedimiento siguiente con el símbolo del sistema. Si ejecuta estos comandos en Windows Vista/7, hágalo en un símbolo del sistema con derechos de usuario elevados. Para ello, haga clic en Inicio y en Accesorios, haga clic con el botón derecho del mouse en el acceso directo del símbolo del sistema y haga clic en Ejecutar como administrador. Si se ha perdido la capacidad de bootear o arrancar el sistema normalmente, debe arrancar con el cd de Windows Vista/7. Y escoger “Reparar Equipo” como muestra la imagen.
Instalación de Windows Vista (3)
en la siguiente pantalla, escoger “Command Prompt”, que abrirá la consola de la línea de comandos
windows-vista-instalar-4
1. Use BOOTSECT.EXE para restaurar el MBR de Windows Vista/7 y el código de arranque que transfiere el control al programa Administrador de arranque de Windows. Para ello, escriba el comando siguiente en el símbolo del sistema:
Unidad:\BOOT\BOOTSECT.EXE /NT60 ALL
En este comando, Unidad corresponde a la unidad donde se encuentra el CD de instalación de Windows Vista/7.
Nota: la carpeta de arranque para este paso se encuentra en la unidad de DVD.
2. Use BCEDIT.EXE para crear manualmente una entrada en el archivo BCD BOOT.INI de la versión anterior de Windows. Para ello, escriba los comandos siguientes en un símbolo del sistema.
Nota: en estos comandos, Unidad es la unidad donde está instalado Windows Vista/7. y no el CD de Windows Vista/7.
• Unidad:\WINDOWS\SYSTEM32\BCDEDIT /create {ntldr} –d “Descripción de la versión anterior de Windows”
Nota: en este comando, Descripción de la versión anterior de Windows puede ser el texto que prefiera. Por ejemplo, Descripción de la versión anterior de Windows puede ser “Windows XP” o “Windows Server 2003″, que finalmente, es el texto que se verá en el menú de arranque.
• Unidad:\Windows\system32\Bcdedit /set {ntldr} device partition=x:
Nota: en este comando, x: es la letra de la unidad de la partición activa.
• Unidad:\Windows\system32\Bcdedit /set {ntldr} path \ntldr
• Unidad:\Windows\system32\Bcdedit /displayorder {ntldr} –addlast
3. Reinicie el equipo.
Aclaración
Para iniciar versiones de sistemas operativos Windows que estén basados en Microsoft Windows NT, necesita los archivos siguientes:
NTLDR,
BOOTFONT.INI
Nota: necesita utilizar este archivo al instalar las versiones de Windows de los idiomas de Asia Oriental.
NTDETECT.COM
En Windows XP, estos archivos residen en la partición del sistema que está marcada como “active” (activa). De forma predeterminada, estos archivos son archivos del sistema ocultos en Windows XP. Los usuarios pueden reemplazarlos con la Consola de recuperación, o pueden iniciar el sistema operativo con un disco de inicio de Windows NT. En Windows Vista/7 no se usan estos tres archivos. Windows Vista/7 se inicia con el archivo oculto del sistema BOOTMGR y otros archivos que se encuentran en el directorio \BOOT.
Bien, hasta aquí por ahora. Espero que les sirva y también espero sus comentarios.






10 comentarios:

Anónimo dijo...

hola, buenos dias... tengo un problema con mi minilap, se le habia perdio el NTLDR, y no queria formatear, asi q use un USB y lo configure para q funcione como un CD de instalacion d Windows XP y lo meti y milagrosamente mi miniLAP cargo windows, pero mi minilap teni virus asi q ala sig semana(hoy)quise formatear pero cuando me aperecia la pantalla AZUL q dice si acepto opriam F8, apretaba F8 pero me salia: "no se encuentra una version anterior de windows nt en su equipo", y solo permitia reiniciar la LAP. volvi a hacer, pero esta vez elige reparar y puse borar el ini y lo volvi a crear (en la pantalla negra d REPARAR)y me salio q escribe q numero de etique es esa y q unidad, y otro msj q no recuerdo, a todo le puse el numero 1, de ahi reinicie la LAP y llegue a pantalla de F8, pulse F8 y me salio las unidades(pense q lo habia logrado)puse formatear en ntfs rapido y cuando estaba como al 20% me salio un msj q no podia seguir, y se reinicio. de ahi, siguio el problema, intente reparar, pero esta vez solo me sale la letra C:\> , antes aperecia C:\>windows... y ya no puedo formatear... ya habia formateado con mi USB... ahora q intento copiar o ejecutar una instruccion como COPY me sale: Accesso denegado...ayuda ya no q hacer..

Anónimo dijo...

Format c:

Anónimo dijo...

Excelente didáctica!

Anónimo dijo...

Hola tengo un problema tengo un portatil dell inspirion hace poco formatee mi disco duro a bajo nivel y cuando fui a instalar el windows no reconocia mi disco duro, pienso q algo ocurrio en el sector cero, ee utilizado el hirens boot para reconocerlo y revise la bios y nada de eso a servido, probe tambien poniendolo en otro portatil y tampoco lo encuentra ojala puedan ayudarme gracias

Anónimo dijo...

NO APARECEN LAS IMAGENES no puedo ver la informacion de esas imagenes las podrias colocar de nuevo te agradeceria bay

Celestino Di Camillo dijo...

Hola, Manuel Sánchez, gracias por publicar esta información, es muy buena, felicitaciones.
Celestino Di Camillo

Anónimo dijo...

Hola tengo un problema para iniciar windows 7 creo que el bcd del artranque esta aruinado y cuando en alguna parte del proceso de restauracion de bcd me dice ACCESO DENEGADO esto:
intalaciones de windows examinada correctamente.
total de instalaciones de windows identificadas 1
D:\windows
desea agregar la instalacion a la lista de arranque? S
ACCESO DENEGADO
porque me dice esto y como lo soluciono
tambien:
f:\copy bootmgr d:
sobreescribir d:bootmgr
ACCESO DENEGADO
porque me sale esto y como lo corrijo,

Anónimo dijo...

yo no puedo arrancar instalo xp junto con windows seven y nada me dicen que en las compus actuales no entra windows xp como es el asunto en ninguna parte de internet encuentro esa informacion

Anónimo dijo...

ya instalo windows xp con drivers sata y nada algien me informa porque no puedo correr este sistema operativo en mi compu portatil toshiba

iceimpact dijo...

Instala primero el xp y luego el 7. Al reves no te funcionara el xp.

En el xp los drivers sata no funcionaban del todo bien. Intenta instalarle un 7

Publicar un comentario

Puedes comentar, si se trata de una pregunta, por favor no lo hagas como anónimo, así sabrás cuando este publicada mi respuesta.