El arranque (Boot) de un ordenador
1.- Introducción
Desde que pulsamos el botón de encendido de nuestro ordenador, hasta que se ejecuta el Sistema Operativo (S.O.) se producen una serie de sucesos que vamos a conocer en este tutorial. Este tema es muy importante, ya que conocer cómo se inicia un ordenador nos vale para reparar posibles errores: por qué ha fallado, qué ha fallado, y cómo solucionarlo. También nos valdrá para entender cómo se produce el arranque con varios SO. En la red, podrás observar que sobre este tema se ha hablado cientos de veces, pero muchas explicaciones no son totalmente coherentes y pueden dar lugar a la equivocación. Por este motivo, me puse a recabar toda la información que pude y ayudándome de mi experiencia decidí escribír este artículo. Los ejemplos son casos que me han sucedido en la reparación de algún ordenador. Sin embargo, cada ordenador es un mundo e incluso los más modernos tienen muchísimas configuraciones. Por eso, y antes de nada, hay que leerse el manual de cada ordenador sabiendo exactamente cómo funciona. Aquí pretendo que se entienda todo de forma general, no voy a entrar en mínimos detalles pero sí en datos relevantes para este tema. Gráficamente se entenderá todo mucho mejor.
2- Arranque (Boot en inglés). Proceso generalizado.
En este apartado veremos el proceso de forma general. Partiremos de un ordenador que se inicia con la BIOS, con un sólo disco duro(únicamente con una partición activa) y con un sólo SO. Gráficamente lo podemos dibujar así:
En un equipo basado en la BIOS (Basic Input/Output System), la BIOS del sistema, localiza, carga y ejecuta el denominado Master Boot Record (a partir de ahora MBR, en español: Registro de Arranque Maestro), es decir, la BIOS cede el control al MBR:
Porteriormente, el Master Boot Record, realiza una serie de operaciones (que luego veremos más detenidamente) y cede el control al sector de arranque de la partición primaria que esté activa. Carga y ejecuta el denominado Volume Boot Record o Volume Boot Sector:
Finalmente este sector de arranque de la partición activa será el que cargue los programas y archivos necesarios para el Sistema Operativo, que pueden diferir de uno a otro. Como has observado, este proceso lo he generalizado mucho, pero es así como normalmente "arranca un ordenador", sin embargo, como dije al principio, cada ordenador es un mundo diferente y cada persona puede configurar su equipo dependiendo de sus necesidades: Sistemas Operativos(MAC, Linux, Windows...), BIOS, Gestores de Arranque, arranques duales etc... Por todo esto comentado, hay que entrar un poco más en detalle, profundizando en todo este proceso.
3. El arranque y la BIOS
Durante la secuencia de arranque de la BIOS (en memoria ROM), ésta busca y cede el control al MBR, como acabamos de explicar, y normalmente lo hace buscándolo en el disco duro que esté como maestro. Aunque no siempre es así, por eso siempre antepongo "normalmente". Hay BIOS que permiten seleccionar el arranque en cualquier disco duro, sea esclavo o sea maestro, pero lo que yo siempre me he encontrado, es que la BIOS busque al MBR en el disco conectado como maestro. Si no lo encuentra dará error; el mensaje que suele aparecer cuando se produce esto último es: "Operating System not found" (Sistema Operativo no encontrado).
Esto puede resultar importante si decides instalar un SO en un disco duro esclavo, ya que como se ha explicado, el MBR estará en el disco duro maestro y esto significa que se necesitarán ambos discos para el arranque del SO.
Sin embargo, para que la BIOS pueda "encontrar" al MBR, es necesario configurar a la BIOS adecuadamente ya que algunas personas me han comentado (yo no he trabajado con este tipo de BIOS) que existen BIOS capaces de seleccionar el MBR que queremos cargar en el arranque. La forma de configurar la BIOS es diferente en cada ordenador por eso yo siempre recomiendo leer el manual de la misma que seguramente podrás descargas en Internet desde su página Oficial. Lo más normal para acceder a la BIOS suele ser pulsando la tecla "Supr" en el inicio.
4. Master Boot Record (M.B.R.)
Posiblemente el más importante en todo lo que concierne al arranque. El MBR se encuentra en el primer sector absoluto de un disco duro, nos informa de las particiones primarias que contiene el disco duro (hasta un máximo de 4) y se asocia normalmente al sector de arranque. El Master Boot Record se encuentra en el primer sector de un disco duro, tiene un tamaño de 512 bytes y como el MBR tiene código que es ejecutado, pues lo voy a definir como un programa que se encarga de ceder el control al sector de arranque de una partición primaria y que esté activa.
El MBR se divide en varias partes, sin embargo, para no complicar esto mucho más, lo voy a dividir en 3 partes que considero principales: código ejecutable (Master Boot Code), tabla de particiones (Partition Table) y firma del MBR. Realmente pueden existir más partes pero esas 3 nos valen para entender su funcionamiento. Gráficamente lo vamos a dibujar así:
Si alguien está interesado en ver el código ejecutable en ensamblador detalladamente y entenderlo, puede visitar el siguiente enlace: Código ejecutable del MBR
Este código ejecutable, como puedes ver en el enlace anterior, son realmente instrucciones en código máquina. Como ya he repetido, este código tiene que pasar el control al VBR, pero para hacer esto necesita principalmente un dato: Una partición primaria que esté activa. Aquí entra en juego la Tabla de particiones.
El MBR contiene una descripción del disco duro y sus particiones. Este dato se encuentra en la Tabla de Particiones (entradas de particiones). Puede contener hasta 4 entradas de particiones(16 bytes cada una, 16 x 4 = 64 bytes de la Tabla de particiones). Si la partición primaria que quieres poner activa no puede ser leída por la Tabla de particiones del MBR, no podrás ejecutar el arranque. Esta tabla de particiones debe contener para que se produzca correctamente el arranque, al menos 1(una) partición primaria que esté activa. Por experiencia , existen programas potentes para modificar el MBR y permiten poner las 4 entradas(o las que tengas) como activas. Si la primera partición primaria que encuentre es correcta, el sistema arrancará. Si no hay ninguna partición primaria con el flag de activa, el sistema por supuesto, no arrancará. Ahora que ya vas entendiendo esto, podrás observar que si te ocurre esto último el mensaje que te envía es: "Partición activa no encontrada" o algo similar y en inglés... Pero ahora ya sabes:
-¿Qué ha fallado? Ha fallado el MBR
-¿Por qué ha fallado? Yo me haría estas preguntas: ¿El MBR está correcto?¿Tienes alguna partición primaria con el flag como activa?
Como ves, el MBR es muy importante y también saber por qué ha fallado y por supuesto saber repararlo. Antes de saber repararlo y de ver qué hace por ej. Linux con él, vamos a ver distintos casos que nos puede ocurrir. Una de las primeras cosas que debes tener en cuenta y que la he obviado hasta ahora, es que sabes primeramente que un Sistema Operativo hay que instalarlo en una partición primaria, no lo puedes instalar en una partición lógica. Voy a poner un primer ejemplo, que me ocurrió hace tiempo, para que lo pienses (presta atención al enunciado):
Partimos de un ordenador que tiene 2 discos duros: Disco duro A y disco duro B que acabo de formatear. El disco A está conectado como master(maestro) y el disco duro B está conectado en la misma IDE como slave(esclavo). Voy a instalar Windows XP en el disco B, que está como esclavo. El microprocesador es un Pentium III, con todo lo que he explicado, preguntas:
-¿Dónde se va a instalar seguramente el MBR?
-¿Dónde estará el sector de arranque de la partición primaria activa?
Como dije antes, para que nos arranque el Sistema Operativo Windows XP instalado en el disco duro B vamos a necesitar el disco duro A también. Es importante que veas el porqué. La primera pregunta ya la he explicado así que no tendrás ninguna duda en averiguar que el MBR estará en los primeros 512 bytes del disco duro A. Sin embargo, la segunda pregunta puede llevar a confusión por eso he puesto este ejemplo que probé cuando escribí este artículo: la partición primaria activa está en el disco duro A también. El MBR busca la partición primaria activa en el mismo disco duro donde se encuentra el MBR. No puede arrancar directamente en otra partición que no esté en el disco duro (recuerda lo que hablamos de la tabla de particiones).
Entonces tenemos que el sector de arranque de la partición activa está en una partición primaria en el disco A y éste es el que hará arrancar al Sistema Operativo que se encuentra en una partición primaria en el disco B, no es el MBR el que pase directamente el control a esta partición del disco B. Por todo esto, hay que fijarse en lo que se necesita para el arranque en el disco B: primeramente el disco A donde irá el MBR, después se necesita una partición primaria con el flag como activa en el disco A para albergar al VBR y finalmente una partición primaria en el disco B que contendrá al SO. Ahora que ya está todo esto explicado, ¿Qué pasa si ponemos únicamente como activa la partición del disco duro B? Pues después de probarlo, observo que el ordenador me responde con este mensaje: "Partición Activa no encontrada". Se debería ahora entender. Limitaciones del MBR..
Los SO de Windows usan normalmente este MBR pero cuando se inicia un SO como Linux con una determinada distro o el mismo Windows, este MBR es o puede ser reemplazado por un "gestor de arranque". Estos gestores de arranque, son software que tienen más opciones y mejor configuración. Hasta Windows XP, yo por ejemplo utilicé el gestor de arranque llamado "Boot Magic" que venía con "Partition Magic", sin embargo, ya con WVista y Windows 7 dejé de usarlo porque no reconocía este nuevo SO. Por este mismo motivo se usan gestores de arranque como Lilo o Grub, sustituyendo al MBR ya que éste último no puede reconocer el arranque de una partición no Windows. Estos gestores de arranque crean un menú con los diferentes SO y no sólo de Linux, sino también de MAC y Windows.
4.1 Reparación del MBR. Entorno Windows.
Para reparar el Master Boot Record podemos utilizar varias herramientas. Algunas de ellas, son software que se ejecuta desde el mismo Windows, sin embargo, yo recomiendo para modificar un MBR primero tener las cosas bien claras y después usar software ejecutable desde DOS con un CD booteable. El tema de CD/DVD booteable se comentará en otro tutorial.
Yo para la modificación del MBR utilizo un programa llamado MBRWiz, que se puede ejecutar tanto en Windows como en DOS. Para mí es el más fácil de usar de todos los que he probado, aunque difiere un poco de Windows a DOS. Como ejemplo, en mi ordenador tengo un disco duro y tres particiones; las voy a listar:
Se ejecuta desde cmd, uso la versión 2.0 beta para Windows ==> MBRWiz /List
Con este programa podemos hacer muchas cosas: modificar el flag de una partición y ponerla activa o no, hacer una copia de seguridad del MBR y dejarlo en un archivo, restaurar el MBR desde un archivo, ocultar o mostrar una partición y unas cuantas opciones más. Sin embargo, si no has hecho una copia de seguridad de tu MBR o no es problema de modificar el flag active de ninguna partición, lo más recomendable es usar directamente el CD original de instalación de tu Sistema Operativo. Por ejemplo, si tienes un disco duro y tenías instalado Windows NT ó 2000 ó XP ó 2003 y sabes con certeza que tu error es del MBR y no se puede reparar por ej. con MBRWiz, pues lo más normal es que uses el CD de instalación de dicho SO. Por ejemplo cuando ejecutas el CD de Windows XP Profesinal (o los 6 famosos disquetes para los que no tienen compatibilidad de CD), verás que hay una opción para recuperar pulsando la tecla "R". Al pulsar esta tecla aparece una consola de recuperación con bastantes opciones. Para reparar el MBR, debes teclear: Fixmbr
Del mismo modo y aunque de forma algo diferente, se puede reparar el MBR en SO como Windows 95, 98 o Millenium. Hay CD's directamente booteables que no necesitan de un disquette, pero lo normal era(era porque poca gente creo que utiliza estos SO) iniciar el ordenador con un disquette de inicio y desde la unidad A teclear: FDISK /MBR
En cambio, en el SO Windows Vista o Windows 7 no es necesario repararlo desde la consola porque cuando ejecutas el CD de instalación la primera opción que tienes es esa.
Imagina ahora que tienes un sólo disco duro e instalado Windows 7 en una partición primaria y posteriormente instalas Windows XP en otra. ¿Qué ocurrirá? Pues sencillamente que el MBR (correcto por cierto) apuntará a una partición de Windows XP y nunca iniciará Windows Vista, ya que el VBR de la partición de XP no reconoce la de Vista. Para solucionar esto, es recomendable iniciar el sistema con el CD de W7 y reparar el arranque ya que es muy posible que no sólo sea problema de que el MBR apunte a una partición primaria errónea.
5. Volume Boot Record - Volume Boot Sector. Entorno Windows.
El Volume Boot Record se encuentra en el primer sector de la partición primaria. Este VBR contiene código ejecutable que se denomina: VBC ("Volume Boot Code") o "Bootstrap code". Este código de tamaño variable según el sistema, se utiliza para iniciar la carga del Sistema Operativo. Por ejemplo, si la partición tiene instalado Windows NT, 2000 o XP este código es responsable de localizar un ejecutable de nombre NTDLR.exe, cargarlo y transferirle el control. En Windows 95, 98 o Millenium lo primero que se ejecuta es el archivo IO.SYS, mientras que en Windows Vista o W7 lo primero que se ejecuta es Bootmgr.exe. Ahora ya te puedes imaginar cuando arrancas un ordenador y dice "NTLDR is missing" a qué puede deberse:
En Sistemas Operativos como Windows XP, el archivo NTDLR.exe analiza al archivo boot.ini que contiene una lista de los Sistemas Operativos encontrados. Por ej. mi boot.ini, contiene lo siguiente:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
Si por ejemplo, en un ordenador instalamos dos Windows XP en distintas particiones primarias o en particiones de distintos discos duros, aquí sí que serán reconocidos y verás cómo el archivo boot.ini muestra los dos sistemas operativos Windows XP. Sin embargo, con Windows Vista y Windows 7 cambió también el modo de arranque del SO y al igual que Windows XP examina el archivo boot.ini, pues Windows Vista examina el archivo BCD, que es un archivo decimal codificado en binario con los Sistemas Operativos encontrados. Por ejemplo, en el caso de que instales Windows XP y después Windows Vista, en el arranque verás un menú donde aparecen los 2 SO's y si seleccionas XP, el sector de arranque de Vista transferirá el control al archivo NTLDR de la partición primaria activa para iniciar Windows XP. Por el contrario, si se instala Windows XP después de haber instalado W. Vista, XP no reconocerá a Windows Vista y no se iniciará. Para arranques duales por ejemplo de Windows Vista y XP se puede utilizar el arranque de Vista que es efectivo y útil. Sin embargo para configurarlo se pueden utilizar programas que modifican ese archivo BCD como por ejemplo BootStar, VistaBootPro o el que yo utilizo: EasyBCD.
- Para reparar estos sectores de arranque en Windows 95, 98 ó ME, se hace iniciando con el disquette de inicio de cada SO y desde la unidad A: teclear: SYS C:
- Para repararlo en Windows NT, 2000 ó XP se inica con el CD de instalación y en la consola de recuperación, y siendo administrador(sino pide contraseña) se teclea: Fixboot
- Para repararlo en Windows Vista, se inicia desde el CD y la primera opción que sale nos reparará lo que vea que está mal.
Como habrás observado en una imagen anterior, en mi ordenador tengo instalado Windows Vista y Windows XP. En mi caso instalé primeramente el Vista, después XP y sólo se iniciaba el XP. Lo que quería conseguir es que el MBR apuntara a la partición de W. Vista, así que introduje el CD de instalación y como ya he comentado en este tutorial la primera opción es para Reparar. Después de esto, Windows Vista arranca perfectamente y sólo queda utilizar un programa como EasyBCD para hacer que Windows XP esté en el menú de W. Vista. Ya tengo los dos.
6. Herramientas.
Antes de terminar quisiera comentar que la mejor forma de aprender a resolver problemas de arranque es investigando por uno mismo. Por supuesto, lo mejor es ir probando con un ordenador recién formateado, pero si quieres probar en el tuyo lo primero que tienes que tener en cuenta, es poder volver al estado anterior, es decir, que cada modificación que hagas, sepas restaurarla después. Yo siempre suelo instalar dos Sistemas Operativos, desde uno puedo modificar el otro y así muchas veces he ido investigando. Por ej. si en un Windows XP modificas el archivo boot.ini o eliminas NTDLR, sabes que no va a arrancar. ¿Sabrías repararlo?. Si en un Windows Vista eliminas cualquier archivo del sector de arranque de la partición, ¿sabrías también repararlo?. Modifica el flag de la partición activa y pónlo no activo, dará error el MBR. Repáralo por ejemplo desde MBRWiz.
Antes de que empieces a indagar por tu cuenta, te recomiendo una serie de programas que pueden ayudarte a solucionar problemas de arranque:
- Para multitud de programas de todo típo está el CD booteable Hiren's BootCD.
- Para reparar cualquier arranque recomiendo el CD original de instalación del SO.
- Para la modificación del MBR, yo uso MBRWiz. Hice un CD booteable con esta aplicación.
- Para crear un CD live uso PE Builder.
Espero que pueda servir de utilidad este texto con mi experiencia. Cualquier comentario será bienvenido.
Referencias:
- Este excelente enlace: http://www.zator.com/Hardware/H8_1_2c2.htm#VBC
- Experiencia propia
karmany
Ahora mismo tengo un problema en la oficina, tengo un servidor con 1 hdd con WindowsXp y Windows Server 2003, yo heredé la administración del equipo por lo que desconocía como habían configurado el arranque, los usuarios que operan el equipo me pidieron eliminar la partición C: Windows Xp ya que saturaron el disco y los GB de ese Sistema operativo eran valiosos, al eliminarlo no pude arrancar mas D:/WindowsSrv20 03. Clone por fortuna ambas particiones por si las dudas, pero no el disco completo, al volver a montar la imagen de Ghost de Xp sigue sin arrancar.Al leer tu post me ha quedado claro mucho de lo que ayer pude ahorrarme.
Gracias por tu gran explicación por tus excelentes ilustraciones y por compartir tu tiempo y tu experiencia inclusive al recomendar herramientas idoneas sin olvidar mencionar gratuitas.
no entiendo bien lo que quieres decir con:
"Los SO de Windows usan normalmente este MBR pero cuando se inicia un SO como Linux con una determinada distro o el mismo Windows, este MBR es o puede ser reemplazado por un "gestor de arranque"
¿Pero dentro del MBR no se encuentra el gestor de arranque?
/boot/grub/grub.cfg
Y ahií eliminas Windows, por ej.
Un saludo
Ahora mismo estoy en Ubuntu y, en el archivo indicado, para el arranque de Windows 10 hace uso de: /EFI/Microsoft/Boot/bootmgfw.efi
Desde Windows: Una opción que puedes hacer es instalar en Windows EasyBCD, que reconocerá correctamente Windows y Ubuntu.
Si vas a trabajar desde Ubuntu, yo no soy nada ducho y no te puedo ayudar, tendrás que buscar ayuda en foros específicos de Ubuntu.
Suerte.
File invalid BOOT.INI
iniciando desde c:\windows y ahi se queda.
He intentado con el cd de winxp, pero nada.
Gracias y saludos.
Respecto a que no inicia Windows XP por fallo de configuración de BOOT.INI, echa un vistazo a ese archivo, está normalmente en el directorio principal de Windows XP. Puedes verlo desde Windows 8.1 accediendo a B: ¿Qué tienes escrito en él?
Marcar la opcion: Ad New Entry
Decirle en que particion estaba WinXP (B:)
y reiniciar.
Ahora ya esta WinXP en C: y W8.1 en F: (como debería de estar); y arranca en cualquiera de los dos, despues de elegir claro cual quiero.
Gracias Luis
He puesto una contraseña de encriptación de toda la unidad de disco duro y contiene una arroba y sin la arroba no puedo desencriptarla. Mi ordenador se inicia desde disco duro y no puedo acceder a la Bios al tener todo el disco duro encriptado y por eso no me sirve comprar un CD de recuperación.
He utilitzado TrueCrypt.
Pido ayuda para poder teclear la @, desencriptar mi ordenador y recuperar mis archivos, por que me dicen que de lo contario mi disco duro interno ha quedado inservible y ni un equipo de forenses informáticos puede recuparar los datos.
Gracias
alt+64
Antes de todo quiero comentarte que Windows XP ya no tiene soporte, es un Sistema OPerativo que puede tener fallos de seguridad. Infórmate sobre Windows 10.
Por otro lado si tu ordenador es antiguo y crees que no es compatible con los Windows actuales tienes muchas alternativas Linux. Prueba a instalar, por ejemplo, Linux Mint, yo estoy muy contento con él.
Un saludo
No se pudo iniciar windows. esposible que un cambio de hardware o de software reciente sea la causa.para corregir el problema:
1. inserte el disco de instalacion de windows y reinicie el equipo.
2. elija la configuracion de idioma y despues haga clic en siguiente.
3. haga clic en reparar el equipo.
informacion: error al seleccionar el arranque; no se puede tener acceso a un dispositivo requerido.
Yo lo primero que haría sería reparar Windows 7 insertando el DVD, reiniciando el equipo hsta que te dé la opcion de reparar el equipo.
Después -cuando funcione w7- puedes intentar reparar el arranque desde el gestor de Ubuntu: www.guia-ubuntu.com/index.php/Recuperar_GRUB
Hay alguna otra forma de solucionarlo que no sea con el CD?
gracias
He utilizado HDD regenerator para recuperar los sectores defectuosos y haora parece que todo bien.
Esc
o la tecla:
F1
Pulsa una u otra en el arranque a ver.
Vere ahora como comienzo a reparar el problema de arranque que tengo.
Gracias
Seguramente en tu instalación de W7 estaba la BIOS apuntando al de 40 GB y durante la instalación de W7 seleccionaste la partición de 250GB.
Desde mi punto de vista, creo que la opción más sencilla sería reinstalar W7 y seleccionando en la BIOS el disco duro de 250 GB. Y para darte más seguridad, yo formatearía el de 40GB y lo quitaría físicamente en la instalación de W7.
Cito a ledshine:
Es que esto que comentas puede ser algún fallo de hardware u otro: deberías chequear si el HDD está bien, si la memoria RAM está bien y haber leído el error de la Blue Screen. Puede ser también fallo del DVD o CD de instalación... entre otros.
Al conectarlo así, el disco de 40 GB seguramente contendrá el MBR correcto, y es por eso que no arranca.
Incluso creo recordar, que alguna vez me pasó, que en el HDD de 40 GB -en tu caso- se creaba también una partición primaria alojando el VBR, que es el que apunta a tu otro disco duro, a la carga del SO.