Recopilando experiencias… Generando codigo entendible…

Cómo crear un CD/DVD booteable personalizado

Un amigo mio, me preguntó si conocía algo acerca de construir CDs/DVDs booteables personalizados, conocía algo del tema, pero no bajo el entorno windows. Mi experiencia radicaba en cómo poder crear un DVD con múltiples distribuciones de Linux, mas no había experimentado con Windows aún.

Me puse a revisar un poco de información acerca del funcionamiento del arranque bajo DOS y encontré además una herramienta que nos permite crear CDs o DVDs personalizados booteables que nos ayudarán a tener nuestras herramientas a la mano como por ejemplo algun programa para recuperar información u otra para defragmentar los discos duros, etc.

El resultado de la búsqueda fue la siguiente:

Veamos primero un poco de teoría para aburrir un poco
El DOS tiene unos cien comandos, que para poder ser ejecutados necesitan tres ficheros:

  • IBMBIOS.COM
  • IBMDOS.COM
  • COMMAND.COM

El IBMBIOS.COM se encarga de las comunicaciones de entrada y salida. El IBMDOS.COM es el centro de los servicios del ordenador, es conocido también como kernel o núcleo. El COMMAND.COM carga y permite ejecutar todos los comandos.

COMMAND.COM (procesador de órdenes): Se responsabiliza del análisis gramatical y la gestión de las órdenes del usuario.

Está dividido en tres partes:

  1. Residente: Se carga en la parte baja de la memoria, por encima del núcleo (Kernel) y del Bios. Gestiona las órdenes Ctrl+Break y se encarga también de los errores críticos.
  2. Parte de inicialización: Se encarga de procesar el archivo autoexec.bat. Desaparece después de ejecutarse.
  3. Porción transitoria: Se carga en el extremo superior de la memoria. Prepara el símbolo para las órdenes del usuario (prompt). Ejecuta las órdenes que le damos al ordenador. Sólo se carga cuando se necesita.

El COMMAND.COM primero mira si la orden recibida es interna o externa. También comprueba si es un fichero COM, EXE o BAT.

CONFIG.SYS: Es un fichero de sistema. El MS-DOS lo ejecuta antes del autoexec.bat y contiene comandos de configuración de equipo. Depende de las tarea, puede que necesitemos una configuración distinta. Sin este archivo o sin algún comando de él, el sistema no funciona. Se carga el país (country), carga los dispositivos (device), establece el máximo de archivos a abrir a la vez (files), las zonas temporales de memoria (buffers) entre otros.

AUTOEXEC.BAT: De procesamiento de lotes. Se ejecuta antes de llegar a nosotros. Inicializa opciones. Cambio de fecha y día. Inicialización del ratón. Cambia memoria extendida a expandida. Definición del teclado(keyboard).

Ahora que entendimos un poco acerca de estos dos archivos, vamos directo a la herramienta.

Esta utilidad es parte del Hiren’s Booteable CD y lo puedes descargar desde aquí. (en su versión original)

Básicamente consta de la siguiente estructura:

  • bfi.exe (el cuál crea una imagen booteable para discos flexibles -floppy-)
  • mkisofs.exe (sirve para crear una imagen ISO para nuestro CD/DVD)
  • build.iso.cmd (un archivo por lotes para unir la imagen procedente del bfi.exe y adherirla en el ISO del mkisofs)
  • CD (carpeta en el cuál pondremos todos los archivos, herramientas, programas que quisieramos que tenga nuestro CD/DVD booteable)
  • Floppy (contiene los archivos de arranque -normalmente serían los archivos que son parte de un disco de inicio de Windows-)
  • Tres archivos de texto (con un copyright, un GPL y una referencia extra para el uso de la herramienta)

big_booteable_0

(click en la imagen para agrandar)

Nuestro trabajo consiste en editar y personalizar los archivos config.sys y autoexec.bat que se encuentran dentro del directorio Floppy.

Abrimos el archivo config.sys con cualquier editor de texto y nos encontramos con una estructura como la siguiente:

big_booteable_1(click en la imagen para agrandar)

Existe un elemento inicial llamado [MENU] y este será el punto de inicio en el cuál saldrán las opciones en nuestra pantalla inicial.

Contiene cinco items, los cuales todos tienen la misma estructura:

menuitem=A,B

“A” representa el nombre del bloque al cuál estará haciendo referencia y “B” representa la porción que se desplegará en la pantalla.

Cada nombre de bloque A, se desarrollará líneas más abajo de igual manera que se hizo con el bloque inicial llamado MENU. Dentro de cada bloque se pondrán las sentencias que describí en las líneas anteriores (dentro de la descripción del config.sys). En nuestro archivo inicial tenemos sólo el uso de la sentencia include=DOS.

Ahora vamos a la edición del archivo autoexec.bat y la imagen sería así:

big_booteable_2

(click en la imagen para agrandar)

En las primers líneas, se carga el driver para poder utilizar nuestra unidad óptica (lectora de CD/DVD), luego se activa el ramdrive, el drive del mouse para DOS, etc.

Cuando se carga el driver para el cd, este tiene una unidad específica (“X:\” en nuestro caso), y sucede de igual manera con el ramdrive (“R:\” para nosotros). Estas son dos unidades son accesibles por la línea de comandos del command.com

Luego, para cada bloque creado dentro del archivo config.sys le pertenece una etiqueta (label) parecido a cada distribución de bloque dentro del config.sys. En cada etiqueta estarán las instrucciones que se ejecutarán posteriormente a la carga del config.sys.

En nuestro archivo autoexec.bat original despues de cada etiqueta (TESTDISK,GHOST,NTFS,RPM) tienen un par de sentencias iniciales. Estas dos sentencias nos representan una extracción de todos los archivos de una determinada carpeta de la unidad de CD/DVD hacia la unidad temporal de memoria (ramdrive R:\) y la ejecución posterior de un determinado archivo dentro de esta unidad.

  • COPY X:\TESTDISK\*.* R: (extrae de la unidad X todos los archivos y los coloca dentro de la unidad temporal de memoria)
  • R:\TESTDISK.EXE (una vez copiado los archivos, ejecuta el archivo testdisk.exe que se encuentra alojado en la unidad ramdrive)

Además, se tiene una sentencia adicional: GOTO DOS, esto permite hacer un salto hacia otra etiqueta llamada DOS que se encuentra en la parte inferior del archivo y sólo muestra por pantalla las dos unidades mencionadas anteriormente.

Una vez revisada la estructura adicional de la herramienta, modifiquémosla para poderla adherir a nuestra necesidades, para ello vayamos a la carpeta CD y borremos todo lo que encontremos allí.

Para este ejemplo he creado un par de programas sencillísimos hechos en c++ (no se me ocurrió otra cosa , salvo poner instaladores o herramientas), pero creo que nos ayudará un poco para entender cómo funciona. El primer programa se llama PRIMERO.EXE (vaya nombrecito eh! ) y el otro será algo como una especie de simulación de instalación de algún programa determinado, el cual lo he llamado install.exe.

big_booteable_3

(click en la imagen para agrandar)

Empecemos creando dos carpetas dentro del directorio CD de la herramienta. Al primero lo he llamado TAEKMENU , el que tendrá contenido al archivo PRIMERO.EXE y luego la segunda carpeta tiene el nombre de INSTALL, que contendrá el archivo install.exe.

Vayamos al archivo config.sys y modifiquemos el archivo de la siguiente manera:

big_booteable_4

(click en la imagen para agrandar)

He agregado tres líneas más de las cuáles 2 son de utilidad y una es por complemento o adorno.

  • menudefault=TAEKMENU,30 (establece el item del menú por defecto y el tiempo que pasará antes que se active automáticamente)
  • menucolor=0,6 (nos permite cambiar el fondo de pantalla y las letras también -esta es la de adorno-)
  • numlock=on (al momento de cargar el menú, se activará el led del teclado numérico, ya que al elegir lo haremos de manera numérica -si está en off sucede lo contrario-)

Modifiquemos ahora la estructura del archivo autoexec.bat a lo siguiente:

big_booteable_5

(click en la imagen para agrandar)

Debo hacer hincapié en las dos formas que se pueden ejecutar las sentencias o los archivos dentro de este archivo de procesamiento por lotes: una es copiando el(los) archivo(s) a la unidad ramdrive (“R:\”) o ejecutarlos directamente desde su ubicación a través de la sentencia CALL.

En TAEKMENU se llama directamente a esta sentencia, pasándole como parámetro la ubicación exacta del archivo que se encuentra en cualquiera de las carpetas de la imagen (X:\ para el CD/DVD, A:\ para el floppy disk o R:\ para la unidad de memoria ramdrive).

La línea inferior a esta llamada nos indica que haremos un cambio de unidad, desde cualquier unidad en la que se estuviera trabajando, hacia la unidad óptica.

He creado una etiqueta final llamada FIN que sólo nos servirá como etiqueta de escape.

La etiqueta SUPERINSTALADOR contiene la copia hacia el ramdrive, la ejecución del archivo install.exe que se encuentra en la carpeta INSTALL que así mismo está dentro de la carpeta CD. Luego cambia de directorio al igual que la etiqueta anterior y posteriormente se va hacia la etiqueta de escape FIN.

Una vez terminado esto, guardamos y ejecutamos el archivo Build-ISO.cmd. Al ejecutar este archivo nos generará otro archivo con extensión ISO (BootCD.iso).

big_booteable_6 (click en la imagen para agrandar)

Listo, con esto tenemos hecho nuestro CD/DVD autoarrancable para grabarlo con cualquier software de grabación que tengamos.

Particularmente utilicé una máquina virtual para hacer las pruebas llamado VirtualBox. Lo puedes encontrar aquí directamente en caso quieras experimentar .

He aquí algunas imágenes del resultado de todo esto:

big_booteable_7 big_booteable_8big_booteable_9big_booteable_10

Ahora sólo queda expandir la idea y personalizar a nuestro gusto nuestras aplicaciones, espero que sea de utilidad, tanto como lo fue para mi =).

6 Comments to Cómo crear un CD/DVD booteable personalizado

  1. 07/11/2009 at 9:50 am | Permalink

    hola compañero

    primero q todo lo felicito por tan buena informacion, la verdad yo tambien habia consultado acerca de windows pero la verdad el problema es qeu ahora quiero integrar todas las distro educativas linux que tengo, y pues como tu dices que conoces del tema, te agradeceria infinitamente me puedas ayu8dar pues la verdad yo no he logrado encontrar ayudda en el tema.

    si me puedes enviar a correo la info o contestarme conde la puedo encontrar te agracdezco aun mas.

    muchas gracias aqui tenes mi correo

    malliwi88@hotmail.com

    gracias buen dia, Taek

  2. SERGIO ANDRES's Gravatar SERGIO ANDRES
    13/11/2009 at 7:18 pm | Permalink

    Hola Taek

    Dejame decirte que tu post es el mejor que he encontrado, tiene muy buena informacion y esta muy bien organizado.

    Te entendi todo en tu post, pero amigo tengo un problema estube buscando los archivos por todos lados y pues me toco descargarlos casi individualmente, y unos los saque de una aplicacion que dan en internet que se llama MS-DOS.iso 6.2 ; hize todos tus pasos pero al unirlos no pasa nada no bootea no hace nada. Porfavor necesito actualizar la Bios porque se me esta reiniciando demasiado el pc, Ya tengo la utilidad para ctualizar la bios pero solo la puedo ejecutar en MS-DOS.

    En fin mira este es mi MSN Sergio_and_rb@hotmail.com; necesito que me ayudes con los archivvos para hacer el cd personalizado

    Gracias ojala me respondas pronto

    ahh y otra cosa como se puede crear el RAmDrive en Windows 7 Tu sabes ojala :D

    Gracias

  3. abdiel's Gravatar abdiel
    26/01/2010 at 10:05 am | Permalink

    hola. me pasa lo mismo no .. no hay manera de que nos pases los archivos…. gracias de ante mano.. que buen post

  4. Elias's Gravatar Elias
    25/03/2010 at 3:33 am | Permalink

    men me gusto mucho tu tutorial, quería pedirte el favor de que me indiques donde puedo conseguir las herramientas necesarias y los archivos nesesarios porfa bye sigue adelante…

  5. julio chambi's Gravatar julio chambi
    23/07/2010 at 7:57 pm | Permalink

    Por favor serias tan amable en pasarme los archivos necesarios para hacer un CD personalizado bootable o de dónde los puedo bajar, gracias se agradece por tutorial

Leave a Reply

Puede usar codigo HTML y sus atributos: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Tags

Enlaces

BlogsPeru.com blogarama - the blog directory Internet Internet Blogs Webfeed (RSS/ATOM/RDF) submitted to http://www.feeds4all.nl Blogs lists and reviews Blog Directory by Blog Flux Programming Blogs - BlogCatalog Blog Directory BlogESfera Directorio de Blogs Hispanos - Agrega tu Blog
planetaperu.pe estamos en
PlanetaPeru.pe

Creative Commons License