Xestores de arranque Windows
Windows XP e Windows 2003
En versións anteriores de Windows (como Windows XP e Windows 2003), boot.ini era un arquivo do sistema que contiña información acerca dos sistemas operativos Windows instalados no equipo. Esta información mostrábase no proceso de inicio, ao encender o equipo. Era mais útil en configuracións de arranque múltiple, ou ben para usuarios avanzados ou administradores que necesitaban personalizar o inicio de Windows.
No arquivo Boot.ini para indicar o lugar onde están instalados cada un dos sistemas operativos empréganse os parámetros ARC - Advanced RISC Computing.
- Un arquivo Boot.ini que permite arrancar:
- Windows 2003 instalado na primeira partición do primeiro disco IDE
- Windows XP instalado na primeira partición do segundo disco IDE
terá o seguinte contido:
[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="Windows Server 2003, Enterprise" /fastdetect
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Windows XP" /fastdetect
Este Boot.ini debe estar gardado no disco configurado por defecto para arrancar dende o BIOS.
Se o usuario prevé a avaría do disco no que se atopa a partición que ten o arquivo boot.ini, podería crear un disquete formateado en Windows e cos arquivos no seu interior:
- -NTDETECT.COM
- - NTLDR
- - Boot.ini
Arrancar Linux empregando boot.ini
Se temos un sistema con NT ou XP e queremos empregar o xestor de arranque que estes incorporan para seleccionar entre un XP e un Linux, podemos facelo tal e como explicamos aquí.
Como requisito, Linux deberá estar nunha partición primaria, non servirá se o temos nunha partición lóxica, pois alí non vai a poder aloxar o seu propio cargador de arranque, e esa é unha condición indispensable para poder arrancar linux cun xestor de arranque distinto ao seu propio xesto.
Supoñendo que a partición root de Linux é /dev/hdb1 (primeira partición primaria do segundo disco IDE), debemos instalar nela (non no MBR do disco principal nin no /dev/hdb) un dos xestores de arranque linux, como GRUB 2, GRUB ou LILO.
Tendo o sistema nestas condicións, xa dende Linux e como root, copiamos a un arquivo o sector de arranque:
#Primeiramente miramos cales son os discos instalados:
fdisk -l
#Unha vez temos localizado o disco,
#copiamos o primeiro sector da partición de arraque:
dd if=/dev/hdb1 of=/bootsect.lnx bs=512 count=1
Movemos o arquivo /bootsect.lnx á partición iniciadora de Windows, que previamente temos que montar:
mkdir /mnt/win
mount -t ntfs /dev/hda1 /mt/win/
mv /bootsect.lnx /mnt/win/
Dende Windows agora, ao arquivo C:\boot.ini, agregámoslle unha entrada para que cargue Linux.
#Primeiro quitámoslle os atributos de oculto e sistema:
attrib -s -h c:\boot.ini
#Editamos agora o boot.ini, agregándolle unha liña
#indicando donde gardamos a copia do sector de arranque da partición:
C:\bootsect.lnx="Linux"
#Grabamos o arquivo modificado e lle devolvemos os seus atributos:
attrib +s +h c:\boot.ini
No seguinte reinicio, xa disporemos da opción de cargar Linux dende un menú Windows.
Windows Vista e posteriores
Nas versións modernas de Windows, o archivo boot.ini remplazouse por Boot Configuration Data (Datos da configuración de arranque) - BCD. Este arquivo é mais versátil que boot.ini e pode servir para plataformas informáticas que usan medios distintos do sistema BIOS (como EFI) para iniciar o equipo.
Se precisas facer cambios en BCD, como quitar entradas da lista de sistemas operativos mostrados, use a ferramenta da liña de BCDEdit, unha ferramenta avanzada desenrolada para administradores e profesionais informáticos:
Algunhas opcións útiles de BCDEdit
Antes de manipular o BCD estaría ben facer unha copia de seguridade que podemos gardar nun USB ou, se é o caso dunha máquina virtual, noutro disco duro.
Se supoñemos que queremos gardar o arquivo copia no disco D, o comando sería:
bcdedit /export D:\BCDbackup
Logo poderemos restauralo en calquera momento, pois é moi probable que tantas modificacións nos fastidien o arranque. O comando a utilizar sería o seguinte:
bcdedit /import D:\BCDbackup
Arranque dual Windows 7 + Ubuntu Desktop.
- Instalamos o GRUB2 na partición non no MBR do disco.
- Cun Live CD:
# Creamos un directorio en /mnt chamado share
$ mkdir /mnt/share
# Montamos a partición C: de Windows 7
$ mount /dev/sda2 /mnt/share
# Copiamos o MBR da partición que ten o Ubuntu
dd if=/dev/sdb1 of=/mnt/share/linux.bin bs=512 count=1
# Ou copiamos a imaxe do grub de /boot/grub/boot.img á partición de Windows 7
- Arrancamos Windows 7 e, logo, a liña de comandos como Administrador:
> bcdedit /create /d “Linux” /application BOOTSECTOR
REM o comando devolve un ID enorme que teremos que ir copiando nos seguintes
REM comandos, aquí poñerase como {ID}
> bcdedit /set {ID} device partition=c:
> bcdedit /set {ID} path \linux.bin
> bcdedit /displayorder {ID} /addlast
> bcdedit /timeout 30
Eliminar unha entrada do menú de arranque:
REM Entrada Legacy:
> bcdedit /delete {ntldr} /f
REM Entrada normal:
> bcdedit /delete {ID}
Outras ferramentas que permiten modificar o BCD
Ademais de empregando a ferramenta BCDEdit, os outros métodos nos que se pode modificar o BCD son os seguintes:
- Inicio e Recuperación. Neste modo podemos seleccionar, dun xeito sinxelo, cal é o sistema operativo por defecto cando o equipo arranca. Tamén se pode cambiar o tempo que o equipo espera a que se escolla sistema operativo cando aparece a lista dos que nel están instalados. Esta ferramenta podemos atopala nas Propiedades de Sistema no enlace Configuración avanzada do sistema.
- Utilidade Configuración do sistema (Msconfig.exe). Msconfig.exe tamén nos permite configurar as opcións de arranque de cada un dos sistemas operativos instalados.
- Proveedor WMI BCD. O Instrumental de administración de Windows (WMI, Windows Management Instrumentation) BCD nos provee dunha serie de clases de obxectos que nos permiten modificar o BCD. Para mais información podemos acceder ao seguinte enlace.
- EasyBCD é unha ferramenta coa que podemos administrar ou arreglar o sector de arranque do noso(s) disco(s) duro(s) en caso de que teñamos mais de 1 sistema operativo para así evitar algunha partición no momento da instalación do novo sistema operativo. Un exemplo de isto sería a eliminación do acceso a Windows 7 cando se instala Windows XP.
- Ollo!
- Se tes que utilizar varias veces a aplicación EasyBCD ao mellor non garda os cambios realizados, se é así fai o seguinte:
Práctica Windows 7 + Windows XP
Cunha máquina Windows 7 instalada, no mesmo disco duro instalamos o Windows XP nun espacio libre existente. Vemos que, logo de instalalo, cando reiniciamos, iníciase o Windows XP pero non temos xeito de arrancar o Windows 7. O cargador de arranque do Windows 7 foi borrado e substituído polo de Windows XP e este, por defecto, non arranca ningún outro sistema que o propio XP.
O mellor nestes casos é restaurar o cargador BCD coa ferramenta de recuperación de Windows 7 dende o DVD de instalación.
Arrancamos có DVD de Windows 7 e seleccionamos "Seguinte":
Sae un menú que nos pide se queremos instalar de novo o Windows 7 ou "Reparar o equipo", seleccionamos esta última opción:
O programa escanea os sistemas instalados e detecta o noso Windows 7 perdido:
Agora seleccionamos a opción "Símboo do sistema" para poder introducir o comando que restaura o cargador de arranque BCD:
E agora executamos o comando bootsect:
bootsect /nt60 ALL /force /mbr
Se reiniciamos o ordenador, agora, o sistema operativo que arranca é o Windows 7. Unha vez iniciado iniciamos como Administrador o "Símbolo de sistema" e executamos os seguintes comandos:
> Bcdedit /create {legacy} /d "Windows XP 32 bits"
REM Ao instalar Windows XP no mesmo disco duro duro que Windows 7, o arquivo ntldr
REM gárdase na partición (de 100 MB) reservada para o sistema de Windows 7
REM Se Windows XP está nun disco duro diferente, teremos que copiar manualmente
REM o arquivo ntldr á partición reservada para o sistema.
> Bcdedit /set {legacy} device boot
> Bcdedit /set {legacy} path \ntldr
> Bcdedit /displayorder {legacy} /addlast
Xa está, se reiniciamos o equipo veremos o menú do cargador de arranque BCD coas dúas opcións, unha por sistema operativo.
Se, por último, queremos cambiar cousas como: o sistema operativo por defecto, o tempo de espera de inicio deste sistema operativo, a orde dos sistemas operativos no menú, etc., o mellor é ir ao seguinte enlace.
Reparar arranque Windows 8
Hai moitos motivos polos que o xestor de arranque de Windows se pode averiar. Nós, para simular esta práctica, utilizaremos unha máquina virtual con dous discos duros. O primeiro disco ten instalado Windows 8.1 e o segundo Ubuntu. A máquina ten instalado o xestor de arranque de Windows para escoller que sistema operativo iniciar.
Para estropear o xestor de arranque de Windows, borraremos dende Ubuntu o MBR do disco utilizando o comando dd.
# Se queremos borrar todo o MBR incluíndo a táboa de particións:
sudo dd if=/dev/zero of=/dev/sda bs=512 count=1
# Se queremos borrar o MBR pero deixar intacta ás táboas de particións:
sudo dd if=/dev/zero of=/dev/sda bs=446 count=1
# Estes exemplos son para borrar o MBR do disco sda
# Se queres saber antes cales son os discos que tes no sistema
# recorda que podes empregar o comando:
fdisk -l
Para recuperar o xestor de arranque de Windows, iniciaremos o equipo utilizando o CD de instalación do propio Windows.
Unha vez que temos o símbolo do sistema aberto, executamos o seguinte comando que o que fai é restaurar o xestor de arranque do equipo:
bootsect /nt60 ALL /force /mbr
Pero se comprobamos o Boot Configuration Data (Datos da configuración de arranque) - BCD observaremos que os parámetros de arranque non son correctos.
Para coñecer as letras que teñen asignadas as nosas particións de arranque, podemos executar o comando list volume dende diskpart. Na imaxe obsérvase que a partición reservada para o sistema ten asignada a letra C: e a partición onde está instalado Windows ten a letra D:.
NOTA: observar que a asignación de letras no entorno de recuperación é diferente ao habitual
Para reparar o BCD especificando correctamente onde están as particións para poder inicialas debemos executar os seguintes comandos:
bcdedit /set {bootmgr} device partition=C:
bcdedit /set {default} device partition=D:
bcdedit /set {default} osdevice partition=D:
bcdedit /set {ID da partición de Linux} device partition=D:
Podes atopar información na seguinte ligazón.