Por que un articulo sobre Linux en un menú de boot de NT? Tenemos HOW-TOs, cierto? Los HOW-TOs ofrecen instrucciones paso a paso, pero desafortunadamente no ofrecen todo lo que queremos. Los HOW-TOs están orientados hacia personas que son nuevas en Linux y son muy buenos explicando cosas para novatos. Pero cuando llega el momento de hacer algo fuera de lo ordinario, estamos estancados. Este articulo busca llenar este vacío.
Para iniciar, un día tuve la idea loca de que seria agradable tener un solo cargador de boot, para iniciar todo desde un solo manejador en lugar de tener ambos LILO y el manejador de boot de NT. Así que cual manejador debería usar? Yo escogí el manejador de boot de NT, porque cuando instalamos LILO e iniciábamos NT desde allí, NT seguía presentando su propio menú de boot, y es molesto que te pregunten dos veces para iniciar el sistema operativo correcto. Por eso pense en remover LILO y usar el cargador de NT para presentar un menú agradable para todos los sistemas operativos que tengo. OK entonces, como lo hacemos? Busque a través de los HOW-TOs. El mini HOW-TO HOWTO NT OS Loader + Linux mini-HOWTO ofrece una buena perspectiva del proceso. Pero desafortunadamente mi cerebro no pudo captar el concepto. Como resultado, cuando seguí los pasos por primera vez, termine con un sistema inusable. Después de 3 días de duro trabajo, reiniciar y lidiar con un sistema inusable 3 veces, los conceptos comenzaron a ser claros.
Aqui vamos
El cargador de Boot de NT, carga la imagen del sistema operativo leyendo el archivo de inicialización boot.ini. Viéndolo ahora, el contiene algo como lo siguiente:
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00" multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00 [VGA mode]" /basevideo /sos
Esto dice iniciar el sistema operativo desde la partición mencionada. O sea, tome los primeros 512 bytes de información, los cuales son requeridos para iniciar el correspondiente sistema operativo. Como hacemos para iniciar Linux usando este concepto, Simple! podemos poner los primeros 512 bytes de la partición de inicio de Linux (el sector de inicio para Linux) en un archivo y dárselo al manejador de Boot de NT. Podemos modificar el archivo boot.ini como sigue:
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00" multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00 [VGA mode]" /basevideo /sos C:\boot.lnx="Redhat Linux 6.2"
Donde boot.lnx es el archivo que contiene los 512 bytes requeridos. Pero tenemos que obtener esos 512 bytes. Cómo hacemos eso? El HOW-TO da un buen ejemplo de como hacerlo. Aquí necesitamos los primeros 512 bytes de la partición de inicio de Linux, la cual le dice a NT simplemente inicie Linux. Necesitamos hace un archivo lilo.conf y pasárselo a LILO, y decirle que instale el sector de inicio de Linux en la partición de Linux (no en el MBR). Luego extraemos los primeros 512 bytes de allí, los ponemos en un archivo y lo pasamos al NT. Luego instalamos LILO en el MBR, y tenemos cuidado de cargar WINNT como el sistema operativo por defecto. Creamos el lilo.conf para escribir el NT como sistema operativo por defecto y lo instalamos.
Primero, déjenme explicar mi ambiente de ejemplo. He cargado Red Hat directo de la caja con las opciones por defecto durante la instalación. El instalo LILO en el MBR, y lo actualizo de acuerdo a las opciones dadas durante la instalación, teniendo en cuenta los otros sistemas operativos (como NT) que tenia. Yo solo tengo NT aquí. Cuando reinicie después de la instalación, LILO mostró dos opciones de inicio: Linux y DOS. Cuando entre a DOS, el paso al manejador de Boot de NT.
Que es lo que tratamos de hacer? queremos hacer que LILO inicie el manejador de Boot de NT por defecto y desde el manejador de Boot de NT queremos tener la opción de iniciar Linux.
Comencemos aquí. Primero iniciar Linux. Hacer un archivo lilo.conf temporal como esto: Copie lilo.conf a lilo.dummy y abra lilo.dummy con vi. Edítelo para que se vea similar a esto:
# lilo.dummy file boot = /dev/hda3 # Linux esta en /dev/hda3 en mi maquina. # use la particion donde usted instalo Linux timeout=0 # timeout igual a cero, para evitar la espera de LILO vga = normal read-only default=linux image = /boot/vmlinuz label = linux root = /dev/hda3
Luego ejecute LILO con este archivo temporal como argumento del comando. Esto instala LILO en el sector de inicio de Linux sobre /dev/hda3:
/sbin/lilo -C lilo.dummy[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00" multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00 [VGA mode]" /basevideo /sos C:\boot.lnx="Redhat Linux 6.2"
Solo cambie el archivo lilo.conf para reflejar el WINNT como sistema operativo por defecto, sin ninguna espera al inicio, y dígale al LILO que lo instale en el MBR.
boot = /dev/hda # Instalelo en el MBR timeout=0 vga = normal read-only default=win # Necesitamos NT como SO por defecto image = /boot/vmlinuz # Podemos remover esto sin problemas, pues # no necesitamos iniciar Linux desde LILO label = linux root = /dev/hda3 other = /dev/hda1 label = win
Instale LILO de nuevo. Antes de reiniciar, asegúrese que tiene un disco de rescate a la mano. Puede usar el disco de instalación de Red Hat como disco de rescate. Vea la sección de Trampas para encontrar como usarlo como disco de rescate, o puede crear un disco de rescate con el comando:
mkbootdiskTodavía esta insatisfecho? Yo sé que es lo que le molesta. Usted quiere eliminar por completo LILO. Haga esto, consiga un disco de DOS con el programa fdisk.exe y reinicie la maquina con él. Luego ejecute el comando "fdisk /mbr" para sobre-escribir el registro maestro de inicio (MBR). Yo no sé que ocurre con esta opción, estoy todavía inseguro acerca de esto, y si alguien sabe que hace esta opción, por favor escribame.
Recuerde que cada vez que cambie su kernel, o haga cambios al archivo lilo.conf, debe seguir el proceso de nuevo, y hacer una nueva copia del archivo boot.lnx y pasarla al NT.
Si usted ha hecho alguna cosa mal, y no puede iniciar Linux, entonces reinicie con el disco de rescate e instale LILO de nuevo, como sigue:
(Puede usar el CD de instalación de Red Hat como disco de rescate. Al menú de instalación, escribe "rescue" y ENTER)
boot = /dev/hda
timeout=500
prompt
vga = normal
read-only
default=linux
image = /boot/vmlinuz
label = linux
root = /dev/hda3
other = /dev/hda1
label = win