LINUX

Cómo crear una imagen ISO de CD de Linux

El comando mkisofs en Linux se usa para crear sistemas de archivos grabables en dispositivos de CD-ROM. La utilidad cdrecord realmente grabará el disco. El comando mkisofs prepara los archivos para grabarlos en los medios.

Mkisofs crea un archivo iso, que es el archivo de imagen (archivo) del disco óptico.

Este tutorial explica la herramienta mkisofs en Linux para crear una imagen ISO.

Usando Mkisofs

Según la página del manual a comando mkisofs

"The mkisofs command creates a hybrid ISO9660/JOLIET/HFS filesystem with optional Rock Ridge attributes."
"mkisofs takes a snapshot of a given directory tree, and generates a binary image which will correspond to an ISO9660 or HFS filesystem when written to a block device."

El sistema de archivos ISO9660 tiene algunas limitaciones

• Los nombres de archivo deben estar en formato 8.3, lo que significa que el nombre del archivo puede tener un máximo de 8 caracteres con una extensión de 3 caracteres usando solo letras mayúsculas, números y guiones bajos.

• La profundidad máxima del directorio es 8.

• Los nombres de archivo no pueden contener espacios. Se permite un máximo de un punto en el nombre del archivo. Los directorios no deben contener puntos.

Al crear un archivo iso9660, los nombres de los archivos se asignarán de la siguiente manera

• los nombres de archivo se truncan a 8 caracteres.
• todos los puntos en los nombres de archivo, excepto el último, se traducen con guiones bajos.
• La versión del nombre de archivo se agrega al nombre de archivo como ;n.
• Por ejemplo, «initrd-latest.img» se asignará a «initrd_l.img».

En RRIP (Rock Ridge Interchange Protocol) la extensión permite

• Nombres de archivo más largos (hasta 255 bytes) y menos restricciones en los caracteres permitidos (compatible con minúsculas, etc.)
• Modos de archivo de estilo UNIX, ID de usuario e ID de grupo, y marcas de tiempo de archivo
• Compatibilidad con enlaces simbólicos y archivos de dispositivos
• Jerarquía de directorios más profunda (más de 8 niveles)
• Almacenamiento eficiente de archivos dispersos

(De Wikipedia)

De forma predeterminada, el comando mkisofs vuelca la salida a STDOUT. El nombre del archivo de salida se puede dar con el modificador -o. Un ejemplo simple del uso de mkisofs:

$ mkisofs -o bootiso.iso /boot
INFO: UTF-8 character encoding detected by locale settings.
Assuming UTF-8 encoded filenames on source filesystem,
use -input-charset to override.
mkisofs: Symlink /boot/grub/menu.lst ignored - continuing.
Total translation table size: 0
Total rockridge attributes bytes: 0
Total directory bytes: 4096
Path table size(bytes): 38
Max brk space used 19000
5078 extents written (9 MB)

Cómo enumerar el contenido del archivo ISO

El contenido de un archivo ISO se puede enumerar usando isoinfo y extraído usando p7zip.

El siguiente comando enumerará el contenido de un archivo ISO.

$ isoinfo -l -i bootiso.iso

El siguiente comando extraerá los archivos a «extracted_folder» del archivo «bootiso.iso».

$ 7z x -o extracted_folder bootiso.iso

Monte el archivo ISO en el Directorio

Le permite montar el archivo ISO en un directorio. Ejecute el siguiente comando:

$ mount -o loop bootiso.iso looped

El contenido original del directorio /boot es:

$ ls /boot/
config-2.6.18-238.el5 grub initrd-2.6.18-238.el5.img initrd-latest.img lost+found symvers-2.6.18-238.el5.gz System.map-2.6.18-238.el5 vmlinuz-2.6.18-238.el5

Los nombres de archivo se asignan de la siguiente manera:

$ ls looped/
config_2.el5 grub initrd_2.img initrd_l.img lost_fou symvers_.gz system_m.el5 vmlinuz_.el5 _vmlinuz.hma

Los nombres de archivo en mayúsculas se asignan a minúsculas mientras se muestra este contenido.

los -R opción le dice a mkisofs que use el protocolo Rock Ridge. Otras opciones útiles para mkisofs son:

-L - allow dot files (hidden)
-l - allow full 31 character filenames.
-allow-lowercase - allows lower case characters to appear in iso9660 filenames.
-allow-multidot - allows more than one dot to appear in filenames.
-input-charset - specify a character set.

Ahora usando estas opciones:

$ mkisofs -l -L -input-charset default -allow-lowercase -allow-multidot -o bootiso.iso /boot
mkisofs: The option '-L' is reserved by POSIX.1-2001.
mkisofs: The option '-L' means 'follow all symbolic links'.
mkisofs: Mkisofs-2.02 will introduce POSIX semantics for '-L'.
mkisofs: Use -allow-leading-dots in future to get old mkisofs behavior.
Warning: creating filesystem that does not conform to ISO-9660.
mkisofs: Symlink /boot/grub/menu.lst ignored - continuing.
Total translation table size: 0
Total rockridge attributes bytes: 0
Total directory bytes: 4096
Path table size(bytes): 40
Max brk space used 0
5078 extents written (9 MB)
$ mount -o loop bootiso.iso looped/
$ ls -a looped/
. .. config_2.6.18_238.el5 grub initrd_2.6.18_238.el5.img initrd_latest.img lost_found symvers_2.6.18_238.el5.gz system.map_2.6.18_238.el5 vmlinuz_2.6.18_238.el5 .vmlinuz_2.6.18_238.el5.hmac

En este tutorial, aprendimos cómo crear una imagen ISO en Linux. Si tiene alguna pregunta o comentario, no dude en dejar un comentario.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar