IES Miguel Romero Esteo - Departamento de Informática - Linux/Unix

Gestores de arranque / práctica 1

Palabras clave:

mkisofs, genisoimage, cdrecord, SYSLINUX, ISOLINUX

Enunciado:

    Con esta práctica el alumno creará un sistema liveCD en su mínima expresión. Son varias las tareas que se deben realizar para conseguir el objetivo, pero hay que prestar atención a las que tienen relación con el cargador de arranque SYSLINUX y en particular con la parte que se ocupa del arranque desde CD/DVD: ISOLINUX

 PROCEDIMIENTO

Sobre la máquina virtual deb-/cen- del alumno realizar este procedimiento:

  1. Iniciar el sistema y hacer login como root.
  2. Instalar todo el software asociado al proyecto SYSLINUX. Para ello se acudirá al sitio oficial, y se descargará una versión estable del mismo. En el momento de redactar esta práctica la versión estable es la 6.03; conviene utilizar esta ya que el trabajo que se describe más abajo podría cambiar en versiones diferentes. No requiere compilación ya que la parte de SYSLINUX que necesitamos se proporciona en modo binario (ejecutable directamente). Ni que decir tiene que desde los repositorios oficiales de, en este caso Debian/CentOS, se puede obtener este software, pero no es la opción para esta práctica.
  3. Trabajando con este apartado de la documentación oficial de ISOLINUX crear un archivo imagen ISO-9660 de arranque que aporte las siguientes "funcionalidades":
  4. En caso de requerirse software complementario se hará uso del repositorio de la distribución GNU/Linux que se esté utilizando.

    A continuación se añaden comentarios (en verde) al texto del documento  que el alumno debe seguir para orientarlo en la tarea.


How Can I Make a Bootable CD With ISOLINUX?

  • Make sure you have a recent enough version of mkisofs. I recommend mkisofs 1.13 (distributed with cdrecord 1.9), but 1.12 might work as well (not tested). Binary versions for Windows can be found on the web."En algunas distribuciones GNU/Linux mkisofs no existe, utilizar en su lugar genisoimage.
  • Download Syslinux.
  • Create a directory called "$HOME/CD_root". This is the ISO image master file tree.
    • Copy all files you want to have on the CD into this directory. "Copiar en el interior este shell script y ejecutarlo para generar el contenido apropiado".
  • A partir de aquí, permanecer en $HOME invariablemente.
  • Create a directory called "isolinux" underneath the directory "CD_root".
    • Copy "[bios/]core/isolinux.bin" from the Syslinux archive into CD_root/isolinux directory ".... isolinux.bin es el cargador de arranque, el protagonista de esta práctica";
    • For version 5.00 or newer, also copy "[bios/]com32/elflink/ldlinux/ldlinux.c32" from the Syslinux archive. "...necesario para que isolinux.bin funcione".
    • Create "isolinux.cfg" (see example) into CD_root/isolinux directory. ".... Aquí es donde el alumno debe centrar su trabajo. Este archivo le indica a isolinux.bin qué tiene que hacer. Si bien es cierto que este fichero admite un elevado número de instrucciones con distintos grados de complejidad y funcionalidad, el alumno no debe perderse en cosas innecesarias para esta práctica, por tanto, sólo debe codificar en su interior lo de obligada presencia mas lo que va a permitir a isolinux.bin cargar un kernel de linux y este a su vez cargar una imagen de disco con las utilidades (como por ejemplo un interprete de comandos con un juego básico de instrucciones GNU -ls, find, cp, mkdir, etc...-). Se debe prestar atención al direccionamiento de los objetos a cargar (kernel y ramdisk) deben ser apuntados sabiendo que isolinux.bin toma como punto de partida el lugar donde encontró el fichero de configuración.
  • Create directories "images" and "kernel" underneath the directory "CD_root". ".....Como sus nombres indican, estos son los directorios destinados a almacenar, por un lado,  el kernel de linux que deseamos cargar y por otro, la imagen de disco que cargará el kernel en memoria RAM para autoproporcionarse funciones que el kernel por si mismo no tiene"
    • Copy any floppy images you want to boot into "images". ".... El archivo imagen de disco es este"
    • Copy "[bios/]memdisk/memdisk" from the Syslinux archive into "kernel"".... En su lugar, el alumno copiará este kernel"
    • Ambos archivos están extraidos de una distribución sysresccd, por tanto, en su puesta en marcha se observarán comportamientos familiares.
  • Use the following command to create your ISO image:
mkisofs -o $HOME/img-$USER.iso \
-b isolinux/isolinux.bin -c isolinux/boot.cat
-no-emul-boot \
-boot-load-size 4 -boot-info-table
CD_root

".... Ejecutar el comando de arriba (o en su caso genisoimage) desde el directorio adecuado para hacer válidos los direccionamientos relativos que aparecen. La barra inclinada a la izquierda que aparece al final de la primera y segunda línea  indica a la shell que se continúa el comando en la línea siguiente (no forma parte del comando).


    Finalizado el procedimiento, conectar img-$USER.iso a la controladora adecuada de una nueva máquina virtual de nombre iso-$USER e iniciarla con él para verificar el éxito de la práctica.