|
G A C E T A D E L I N U X
...haciendo a Linux un poco más divertido! |
|
Creando un CD multiarranque
Por Juraj Sipos Traducción al español por Juan Manuel Vives Luzón
|
Me di cuenta de que el procedimiento para elaborar un CD multiarranque no estaba demasiado explicitado en los sitios de internet dedicados al tema y, de estarlo, únicamente de forma indiviudal, para cada uno de los sistemas. Las distribuciones comerciales de Windows incluyen entre su software la posibilidad de crear un CD de arranque, pero todavía no he visto ninguna opción que permita crear un CD multiarranque en sus distribuciones. En mi opinión, crear un CD de arranque en Linux es mucho más fácil que hacerlo en Windows. Hay muchas utilidades que te ayudan a crear un CD de arranque de Linux, pero obtener un CD multiarranque es otra cuestión. Puedes tener varias versiones de de imágenes arrancables de Linux en el CD -versiones con soporte para sistema de archivos journaling, utilidades de reparación, varios tipos de Linux o BSD, e incluso QNX, Plan9 y muchos más
¿Por qué pienso que podría serte útil? Imagina que usas Linux y FreeBSD simultáneamente, que tienes más de una distribución de Linux instalada en el disco duro, pero que algo le ocurre a tu sisema -ya no hay forma de que puedas acceder a los archivos nunca más. En el caso de que uses un disquete de arranque (y puede haber muchos obstáculos si trabajas con un sistema específico como el sistema de archivos journaling de XFS, por ejemplo, o sistemas encriptados, o cuentas con que tienes al menos 5 disquetes de arranque para Linux) o deberás crear un CD multi- arranque en el que puedes incluir varios tipos de kernel de Linux y varias utilidades. Un pequeño CD con 10 sistemas operativos incluídos puede ser la redempción para la ilusión de este mundo que te impulsa a creer que todo está siempre estropeado.
Pretendo que este artículo sea fácil, práctico e inteligible para los principiantes también, y me gustaría evitar usar en demasía el lenguaje técnico, que no es comprensi- ble para muchos de nosotros. Esto atraerá a distintas clases de lectores.
Un tipo de CD de arranque es el basado en el standard llamado El Torito - pero hay otros sitios que explican esto. Visita, por ejemplo,http://www.cdpage.com/Compact_Disc_Variations/danaboot.html
Una información importante para nosotros es que podemos arrancar desde un CD 10 sistemas operativos, siempre que la opción de arranque del sistema desde el CD esté soportada por la BIOS. El archivo de imagen ISO arrancable puede ser creado con una emulación de disquete de 1.44 MB, de 2.88 MB o emulación de disco duro.
Ahora seguiremos con la guía práctica de como preparar un CD multiarranque
Primero debes tener un disco de arranque DOS o un disquete con un archivo de imagen de Linux. Un archivo de imagen es un fichero que incluye el contenido de un disco o disquete. Puede haber muchos tipos de archivo de imagen - si tu haces dd (disco dump), en tu partición de Linux con un comando (supongamos que tu partición de Linux está en /dev/hda1 partition):
dd if=/dev/hda1 of=/my_image.file
un archivo my_image.filese creará en tu sistema de archivos. No todas las imágenes son arrancables - depende de su contenido, por eso una buen idea sería perparar algunosdisquetes con archivos de imagen de Linux o BSD. La forma más simple podría ser descargar tales archivos de internet. Aquí está el link:
http://www.ibiblio.org/pub/Linux/system/recovery/
El archivo Ibiblio es muy bueno. Los archivos de imagen que puedes descargar desde la URL arriba indicada están preparados de tal forma que todos son arrancables, por lo que no tienes que preocuparte de construir tus propias imágenes. En cualquier caso, si quieres hacer tu propia imagen, el la URL anterior puedes encontrar algunas utilidades como Bootkit, CatRescue, SAR, disc-recovery-utils, etc., que te ayudarán a crear tu propios disquetes arrancables (o archivos de imagen arrancables).
Los archivos que necesitaremos para nuestro trabajo dirigido a crear un CD multiarranque, son fbsd-flp-1.0.3.bin (un disquete de imagen arrancable de 2.8 MB para FreeBSD), tomsrtbt, o tu puedes crear tus propios archivos de imagen desde los disquetes que ya tienes. Introduce tu disquete DOS o Linux en la disquetera y teclea el siguiente comando:
dd if=/dev/fd0 of=boot.img bs=512 count=2880
Una buena idea podría ser también visitar http://freshmeat.net y buscar la expresión "mini" a fin de que puedas encontarr esas esotéricas distribuciones de Linux de las que normalemnte no has oído hablar.
El sitio http://www.ibiblio.org/pub/Linux/system/recovery/ contiene: (yo he omitido algún material):
Otros buenos lugares de los que puedes decargar imágenes de disquete arrancables son:
LIAP (http://www.liap.eu.org/): LIAP ies un Linux in a Pill - el site contiene muchas imágenes de disquete 1.44MB con varias utilidades y tipos de kernel aprovechables para solvenar varios tipos de desastres.
LEKA RESCUE FLOPPY (http://leka.muumilaakso.org/): Leka Rescue Floppy es una pequeña distribución de 1.44Mb.
TOMSRTBT (http://www.toms.net/rb/): Tomsrtbt (Tom's Root Boot) es una utilidad de recate, muy buena. También puedes descargar el archivo de imagen de 2.88 Mb en el sitio arriba indicado.
También puedes decargar imágnes arrancables de DOS. Visita, por ejemplo, http://www.bootdisk.com y descárgate, si no dispones de ellas, imágenes DOS. El site contiene discos de arranque desde DOS 5.00 hasta 6.22, Win 95/98/Me, Win NT4/NT5, DrDOS 7.X para Bios Flashing Basic y más cosas. Puedes incluso crear un disco de arranque FreeDos.
En primer lugar, haremos algunas indicaciones. Veamos la diferencia entre un archivo de imagen de arranque y un disco o disquete que contiene una imagen ISO para ser copiada a un CD. Lo que nosotros necesitamos son archivos de imágenes a partir de los cuales podamos crear un archivo de imagen ISO.
1)Puedes preparar las imagénes de tu disco de arranque a partir de los disquetes que tengas preparados con el siguiente comando:
dd if=/dev/fd0 of=/my_image.img
o puedes descargar algunos archivos de imagen de disquete de arranque desde internet (echa un vistazo a los links anteriormente indicados). Crea un directorio en tu Linux, por ejemplo - /CD, y copia las imágenes a este directorio (recuerda que no debes tener más de diez imágenes de arranque). Asegurate de conservar el formato 8.3 para los nombres de archivo -esto es, 8 caracteres para el nombre y 3 para la extensión - esta limitación tiene como efecto que puedan ser compatibles con el programa para DOS makebt.exe, que usaremos más tarde.2) Si quieres hacer uso del espacio del CD (diez imágenes de disquetes de arranque sólo ocuparán unos 14 MB), ubica algunas utilidades en un subdirectorio, por ejemplo, /CD/Soft. Al final de este artículo incluiremos información de como acceder al CD.
3)Ejecuta el siguiente comando en el directorio /CD:
mkisofs -b image.img -c boot.cat -J -l -R -r -o /cd.iso /CD
El archivo "boot.cat" or "boot.catalog" se creará automáticamente, así que no debes tenerlo en tu directorio /CD, solo escribe el comando tal y como está -puedes escribir el nombre de cualquier archivo de imagen, con la longitud correspondiente con el nombre del archivo de imágenes ubicado en el directorio /CD. El archivo de imagen incluído en el comando de más arriba será uno a partir de los cuales arrancará tu CD. Los archivos de imagen pueden tener el tamaño de 1.44 MB o 2.88 MB.
4) Un archivo llamado cd.iso se creará en el directorio / (/cd.iso). Cuando compruebes este archivo y lo montes (mount/cd.iso/mnt .o loop), el contenido del archivo ISO será visible en el directorio donde lo hayas montado. Esta imagen ISO, si la replicamos en un CD, será arrancable, pero sólo será arrancable uno de los archivos.
5)Por eso tenemos que editar la imagen ISO para crear un CD multiarranque y poder obtener otras imágenes para incluir en el menú (0, 1, 2, 3 etc.) que veremos cuando arranquemos el CD (un menú con múltiples opciones de arranque -desde 0 hasta 10, nos dará la bienvenida). Pulsando el número elegido, arrancará el sistema operativo deseado.
6) Después de editarla, ya podemos replicar el CD.
Como no tengo tiempo ni puedo dedicar el esfuerzo que requiere la creación de un script de Perl para editar la imagen ISO y, dado que la edición de una imagen ISO puede parecer complicada para alguien (quiero que este artículo sea lo más simple posible), es una idea excelente usar algunos programas libres que pueden encontrarse en internet. Uno de estos programas es makebt.exe. hace tiempo encontré este programa libre en muchos sitios, pero ahora no he tenido la suerte de volverlo a encontrar en la red, por eso lo he colgado en mi website http://www.tankred.sk/~juro/freebsd/makebt.zip de donde puedes descargarlo.
Puedes ejecutar makebt.exe en DOSEMU, BOSCH emulator (http://bochs.sourceforge.net), o puedes descargar las imágnes de disquete para el sistema DOS de http://www.bootdisk.com, o hacer un disquete de arranque FreeDOS y arrancar con él tu PC a fin de ejecutar la utilidad makebt.exe. Si no tienes una partición DOS, la mejor idea es que uses el emulador DOSEMU -DOSEMU puede, incluso, acceder a las particiones Linux, donde tu tienes el archivo CD.ISO esperando para ser "atrapado por tus inteligentes manos".
Cuando ejecutes MAKEBT.EXE en el prompt de DOS, te preguntará por la ruta completa y el nombre de archivo de la imagen ISO que ha de modificar: deberás introducir el nombre de la imagen ISO que incluye las imágenes de disquete multiarranque, por ejemplo, CD.ISO, y verás la siguiente pantalla:
-------------------------------------------------------------------------------------------------------
Make Multiple Boot CD-ISO Image Modifier ver 1.02
ISO File path and name: cd.iso
Bootable Disk Image Boot media type Default LBA
------------------- --------------- ------- --------
BC ) BOOT.CAT
1 ) FBSD.IMG 1.44M Floppy Y
2 ) LINUX.IMG 2.88M Floppy -
3 ) PLAN9.IMG 1.44M Floppy -
4 ) QNX.IMG 1.44M Floppy -
5 ) OPENBSD.IMG 2.88M Floppy -
6 )
7 )
8 )
9 )
10 )
<TAB> = move between fields, up/down arrows = move between rows, F1 = Confirm
Press 'y' key to make this image as default boot
------------------------------------------------------------------------------------------------------
BC espera la indicación correspondiente al Boot Catalog. Escribe boot.cat y no te preocupes de nada más, pues ya has usado esta cadena en comando mkisofs al que nos hemos referido más arriba (es, por tanto, importante que el archivo de la imagen ISO contenga la cadena "boot.cat"). Ahora, teclea con cuidado los nombres de las imágenes. Tienes que teclear el nombre de las imágenes en el formato 8.3 para DOS (como sabes, esta es una restricción propia del DOS para los nombres de archivo, que sólo pueden tener 8 caracteres y una extensión de 3 caracteres).
En el medio de la pantalla puedes elegir entre emulación de disquete de 1.44 MB, emulación de disquete de 2.88MB, emulación de disco duro o sin emulación. Nosotros solo usaremos emulación de 1.44 Mb y 2.88 Mb (si quieres usar emulación de disco duro, crea una partición Linux de 650Mb y copia en ella el sistema de archivos de tu sistema Linux desde el que arrancas tu disco duro - experimenta...) Usa el cursor derecho del teclado para seleccionar los tipos de emulación. En la derecha de la pantalla tienes que elegir una imagen de arranque como la imagen de arranque por defecto pulsando "Y".
Cuando hayas acabado, pulsa F1 (puede que tengas que hacerlo varias veces, pues el programa no responde en todas las ocasiones). El programa es inteligente - si tu tecleas incorrectamente uno nombre de imagen, recibirás un mensaje de aviso (después de haber pulsado F1). No incluyas ninguna descripción para las imágenes en el menú que aparece después de haber presionado F1, pues esta opción es más aprovechable en CD-ROMs SCSI y todavía no la he estudiado mucho.
Ya está. Ahora puedes replicar tu CD.
cdrecord -v speed=8 dev=0,0,0 /cd.iso
Cuando arranques el CD, no verás ninguna descripción de los sistemas operativos, sólo números. El primero y el segundo número (0,1) generalmente corresponden al mismo sistema operativo. Todavía no he tenido tiempo para experimentar con esta opción, pero puede ser una buena idea escribir debajo del número de forma que puedas saber qué sistema operativo se arranca desde él.
Aquí finaliza nuestra relación con las imágenes de disquete y la emulación, así que si arrancas tus imágenes con el CD multiarranque que acabas de crear, podrás acceder a la unidad de CD-ROM tecleando"mount /dev/hdc /mnt", por ejemplo, y acceder a tu directorio /Soft, donde puedes haber ubicado otras utilidades para trabajar con ellas más tarde. En el caso de un disco con un sistema DOS, deberías incluir los drivers que permitan el acceso al CD-ROM.
Si quieres estudiar o construir algún programa parche para el archivo ISO, puedes comparar una archivo de imagen ISO ordinario y un archivo de imagen ISO arrancable con el archivo de imagen ISO parcheado por la utilidad makebt.exe. Un parcheador muy bueno es la utilidad diff escrita por Giuliano Pochini. Bdiff es un pequeño y simple programa para hacer las cosas más comunes que las utilidades "diff" y "patch" hacen con archivos de texto e incluso trabajan con archivos binarios. Puedes descargarlo de: http://space.virgilio.it/g_pochini@virgilio.it/ - en cualquier caso, ambos archivos ISO deben ser idénticos. Las utilidades diff (para comparar archivos) te mostrarán el lugar (offsets) donde está escrita la información con multiarranque. Es el sector 17 (Boot Volume Descriptor) y el Boot Catalog Sector.
He creado muchos CD's multiarranque con la información que he dado más arriba y nunca he tenido problema alguno. Pero, por si acaso, a fin de evitar malgastar CD-Rs -tuve algunos problemas haciendo mis imágenes OS/2 - replica la imagen ISO en CD-RW regrabables. ¡Disfruta!