Grabadoras - Programas necesarios para grabar (I)
6 - Programas necesarios para grabar (I)
Casi todos los programas que aquí vamos a mencionar pueden obtenerse de ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/; no obstante, es posible que no estén las últimas versiones de desarrollo, por ello procuro además dar en la sección de cada uno la dirección origen.
Aquí hago una descripción de los programas que vamos a necesitar para elaborar nuestros propios CDs, con ellos haremos las imágenes y las grabaremos; podremos comprobar la diversidad que hay y las ventajas que nos proporcionan.
Sólo voy a describir las últimas versiones de estos programas, que aunque en algunos casos están en fase alpha o de desarrollo (sólo algunos) funcionan perfectamente.
En el caso concreto de cdrecord, resulta imprescindible para poder usar grabadoras IDE, IDE-ATAPI de puerto paralelo y las regrabables, al ser el único que de momento las soporta.
6.1 Programas para creación de las imágenes
La parte más importante es hacer una imagen, pero ¿porqué hay que hacer una imagen? Muy sencillo, la imagen es el molde con el que se crea el futuro CD; y no sólo eso, la imagen nos permite comprobar que el CD va a salir como nosotros queremos, pudiendo evitar errores y ciertas cosas más, difícilmente detectables en el momento de la grabación si la generamos al tiempo de grabar.
Además, podemos montar las imágenes para comprobar cómo han quedado, como se explica en el apartado Otras opciones del Kernel recomendables
Sí, ya lo sé, en windows puedo hacer CDs perfectamente sin necesidad de hacer imágenes, si continúa leyendo, luego explico cómo podrá hacer CDs sin necesidad de hacer imágenes.
mkisofs
Puede obtener este programa de ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs.
La última versión estable disponible es la 1.11 y la de desarrollo es la 1.12b5.
Este es el principal programa que usaremos para crear nuestras imágenes, ya que está hecho especialmente para hacer imágenes ISO9660 a las que añadir extensiones Rock Ridge, o imágenes Joliet (sólo versiones 1.12).
Puede también combinar las dos, es decir, en un solo CD tener los dos sistemas, Rock Ridge y Joliet, de tal forma que el CD sea portable entre los sistemas operativos que usen uno u otro, manteniendo los nombres largos (sólo versión 1.12).
Esta explicación está basada en la versión 1.12a5, de la cual sólo voy a indicar los parámetros que son más utilizados.
La sintaxis de este programa y su uso se explica a continuación:
- -a o -all-file
-
Este parámetro indica que queremos incluir todos los archivos que se encuentran en el directorio especificado, ya que el programa no incluye por defecto los archivos que contengan caracteres
~y#que son generalmente copias de seguridad creados por la mayoría de editores *nix. - -A o -appid
-
Este parámetro indica un comentario sobre la aplicación a la que va dirigido el CD, puede ser definido en un archivo
.mkisofsrcque se puede crear en el directorio raíz de cada usuario, con el que poder definir por defecto varias cosas. En concreto este parámetro se identifica comoAPPI=especificando lo que quiera poner mientras tenga una extensión no superior a 128 caracteres. En versiones anteriores a la1.12se debe especificar en la línea de comandos con el comentario entre comillas. - -b o -eltorito-boot
-
Este parámetro sirve para indicarle el nombre y la ruta del archivo que contiene la imagen de arranque que será usada para hacer un CD arrancable según el estándar El Torito. De esta forma creamos un CD arrancable para aquellas BIOS que acepten arrancar desde CD-ROM. La imagen debe tener un tamaño de 720, 1.44 o 2.88 Mbs, la de un diskette de arranque, que contenga por ejemplo el LILO. Ojo que esto no funciona muy bien con CDs SCSI aunque la controladora SCSI lo soporte teóricamente, por culpa generalmente de la controladora, no del estándar.
- -c o -eltorito-catalog
-
Con este parámetro, que está ligado al anterior para hacer CDs arrancable, se especifica dónde se creará en el CDROM el archivo del catálogo para el arranque del CD-ROM. Por defecto lo crea en el directorio raíz de la imagen
- -f o -follow-links
-
Con este parámetro hacemos que los enlaces que se encuentren dentro del directorio maestro especificado no sean tomados como tales, sino como ficheros o directorios reales, lo cual nos permite incluir en el CD cosas que no estén en el mismo sistema de ficheros donde tenemos el master, es decir, le especificamos que siga los enlaces que contenga.
- -help
-
Nos muestra la ayuda del programa, muy útil si no nos acordamos de alguno de los parámetros.
- -i
-
Sirve para añadir archivos que no estén en el directorio o subdirectorio que hayamos indicado para hacer la imagen, para su adición a la imagen del CD. Esta opción está temporalmente deshabilitada, y parece ser que da problemas, por lo que está en espera de ser reescrita.
- -J
-
Gracias a esta opción podremos crear CDs con sistema de ficheros Joliet. No incluida en versiones anteriores a la
1.12. - -l
-
Gracias a este parámetro podremos establecer el modo de compatibilidad de ficheros de 32 caracteres para aquellos sistemas que no aceptan la longitud de los ficheros para los que está grabado el CD. Usar con cuidado.
- -m o -exclude
-
Con este parámetro indicamos un patrón de archivos que no queramos incluir en el CD, que puedan encontrarse dentro de algún subdirectorio en la ruta desde la que vamos a hacer la imagen (ficheros
coreetc...) Se pueden usar comodines o nombre completo. - -o o -output
-
Con esta opción indicamos el nombre que le queremos dar al fichero, incluida su ruta, que contendrá la imagen, o el fichero de dispositivo correspondiente a la partición donde queremos volcarla.
El volcar las imágenes (sólo de datos) a partición es muy recomendable para equipos lentos; dicha partición no ha de tener formato alguno, por ello la lectura es más rápida, ocurre como con la partición de swap.
Si utilizamos volcado a partición, conviene «resetearla» antes de generar una imagen nueva con el comando:
dd if=/dev/zero of=/dev/sda1
Suponiendo que
sda1sea donde queremos volcar la imagen; OJO con especificar una partición equivocada, o se irá a hacer gárgaras... - -p o -preparer
-
Este es complementario al parámetro
-A, con él podremos indicar el autor del CD, Tiene una extensión máxima de 128 caracteres. Corresponde al parámetroPREP=en el archivo.mkisofsrc. - -print-size
-
Muestra por pantalla el tamaño estimado que ocupará la imagen, sin hacer nada más.
- -P o -publisher
-
Especifica el editor del CD. Su longitud máxima son 128 caracteres. En el archivo
.mkisofsrcse identifica comoPUBL=. - -quiet
-
No muestra mensajes por pantalla.
- -R
-
Genera un sistema de ficheros con extensiones Rock Ridge. Esta es la opción principal para generarlo, manteniendo los permisos tal y como estén.
- -r
-
Esta opción es como la anterior pero resetea los permisos de modo que todos los usuarios puedan acceder al CD por completo.
- -T o -translation-table
-
Con esta opción generamos los archivos de transcripción, llamados
TRANS.TBLen cada directorio del CD-ROM, que contendrán todas las transcripciones de los nombres de fichero para que se puedan ver por ejemplo en un sistema DOS (de tipo de nombres de fichero 8+3) y con su longitud correspondiente en el sistema Rock Ridge. Cuando utilizamos la opción-llos archivos tendrán nombres de 32 caracteres y no de 8+3. - -v
-
Nos muestra la ayuda y la versión del programa. Y mientras se genera la imagen nos va mostrando el porcentaje de la imagen generada y una estimación de tiempo para terminar. Muy útil.
- -V
-
Esta opción nos permite darle un nombre de volumen al CD para identificarlo. En el archivo
.mkisofsrcse especifica con el parámetroVOLI=con una extensión máxima de 32 caracteres. - -x
-
Esta opción nos permite excluir un directorio específico que se encuentre dentro de la ruta de origen. Puede excluir hasta un máximo de 1000 directorios, ojo que hay que especificar el parámetro antes de cada directorio, tantas veces como directorios a excluir haya:
mkisofs ... -x estedirectoriono -x yestetampoco -x nieste
Estos son los parámetros más utilizados, si quiere más información o más posibilidades siempre puede consultar la página del manual. Ahora unos pocos ejemplos de cómo funcionan algunos parámetros:
Para generar un sistema de ficheros Rock Ridge simplemente tenemos hacer esto:
mkisofs -a -r -T -o /cd/imagen.iso /ficheros
Aquí se indica un sistema de ficheros Rock Ridge al que se le incluyen todos los archivos que se encuentren en el directorio /ficheros, generando archivos TRANS.TBL, para el archivo de imagen /cd/imagen.iso.
Para que al crear la imagen se establezca el nombre de volumen, la identificación, el editor y la aplicación del CD, hay dos métodos, uno consiste en crear un archivo llamado .mkisofsrc en nuestro directorio personal. Recuerdo que este archivo sólo sirve para la versión 1.12, con una sintaxis como ésta:
- VOLI=
-
El nombre de volumen.
- PUBL=
-
Cualquier cosa que quiera poner, normalmente un pequeña descripción del CD.
- PREP=
-
Aquí puede poner sus datos o cualquier cosa para identificar el CD como suyo.
- APPI=
-
Aquí puede poner una descripción del objetivo de este CD o su destino.
O bien puede especificarlo en la línea de comandos así:
mkisofs -a -R -l -T -V "Volumen" -P "descripción CD" -p "preparador" \
-A "Aplicación" -o imagen.iso /ficheros
Este único comando se ha introducido en dos líneas, detrás del carácter \ hay que teclear Enter, y teclear el resto. Se ha hecho así por motivos de formato de este documento.
En él podemos observar, aparte de cómo poner el nombre de volumen al CD y otras cosas, que estamos haciendo un CD con el modo de compatibilidad para otros sistemas de 32 caracteres, tomando los permisos y la identificación que tiene cada archivo en el disco.
Un ejemplo de cómo crear un sistema de ficheros con Joliet es:
mkisofs -a -J -f -m '*.o' -m core -x /master/excluir -o /cd/imagen.iso /master
En este sistema de ficheros Joliet hemos excluido todos los archivos que correspondan con la descripción *.o y core con la opción -m, la opción -f indica que los enlaces que se encuentren serán tomados como los archivos o directorios a los que apuntan. Por último, excluimos el directorio excluir que se encuentra en la ruta de origen desde donde queremos hacer la imagen.
Y por último un sistema de ficheros con Rock Ridge y Joliet, que recuerdo que sólo se puede hacer en la versión 1.12:
mkisofs -a -J -f -R -m '*.o' -m core -x /master/excluir -o /cd/imagen.iso /master
Para hacer un CD arrancable (para arrancar con él es necesario que la BIOS soporte arranque desde unidades CD-ROM) necesitamos la imagen de un disquete de arranque de 720KB, 1.44MB o 2.88MB, de MS-DOS o Linux según queramos, que podemos encontrar en varios sitios ya hechos o hacernos nosotros mismos. Una vez tenemos la imagen, la ponemos dentro del directorio en donde se encuentran los archivos desde los que vamos a hacer la imagen y procedemos a lo siguiente:
mkisofs -a -b /cdboot/eltorito.img -c /cdboot/catalogo -R -T -o imagen.iso /master
Nótese que a los parámetros -b y -c le especificamos lo que parece un path absoluto, pero el directorio /cdboot no se encuentra en el directorio raíz de su disco duro, sino que en realidad es un subdirectorio de /master; esto es así porque mkisofs para este parámetro se sitúa como si estuviera ya dentro del CD.
mkhfs
Puede obtener este programa de ftp://ftp.ge.ucl.ac.uk/pub/mkhfs.
Es su homólogo para el sistema de ficheros de los mac, HFS, no lo he llegado a probar todavía pero seguro que funciona bien. Su uso es muy sencillo y no tiene mucha complicación.
mkhybrid
Puede obtener este programa de ftp://ftp.ge.ucl.ac.uk/pub/mkhfs.
Es la mezcla de los dos anteriores, la ultima versión usa código del mkisofs 1.12 para mejor soporte de Joliet. La ayuda parece exactamente la del mkisofs, salvo que incluye las siguientes opciones para añadir el sistema de ficheros de los mac:
- -g o -apple
-
Añade la extensión ISO9660 de Apple, para la compatibilidad con el estándar.
- -h o -hfs
-
Crea el sistema HFS híbrido para la extensión ISO9660.
- -probe
-
Prueba todos los archivos para el sistema Unix/HFS.
- -mac-name
-
Crea todos los nombres según el estilo de los mac para ISO9660/Joliet/Rock Ridge
- -no-mac-name
-
Evita lo anterior para los archivos Unix/Mac
mke2fs
¿Cómo? ¡Pero si este programa sirve para crear sistemas de ficheros en el formato nativo de Linux, el ext2!
Pues sí, es posible crear CD-Roms en formato ext2, que por supuesto no podrán leerse en sistemas que no dispongan de algún tipo de soporte para leer este tipo de sistema de archivos, básicamente Linux.
Su utilidad dependerá de la creatividad de cada uno ;)
Para ello, hay que seguir el siguiente procedimiento:
- Primero hay que calcular el tamaño máximo que podemos usar en una imagen para aprovechar la mayor cantidad de datos en el CD es fácil y es una operación sencilla en la que intervienen dos programas y en la que no hay ni que sacar la calculadora. Primero utilizamos el
cdrecorden su versión de desarrollo1.8de la siguiente forma:
Una vez obtenida esta información nos fijamos en la siguiente linea:# cdrecord -v dev=3,0 -atip Cdrecord release 1.8a29 Copyright (C) 1995-1999 Jörg Schilling TOC Type: 1 = CD-ROM scsidev: '3,0' scsibus: 0 target: 3 lun: 0 Using libscg version 'schily-0.1' atapi: 0 Device type : Removable CD-ROM Version : 2 Response Format: 2 Capabilities : Vendor_info : 'YAMAHA ' Identifikation : 'CRW4260 ' Revision : '1.0q' Device seems to be: Generic mmc CD-RW. Using generic SCSI-3/mmc CD-R driver (mmc_cdr). Driver flags : SWABAUDIO Drive buf size : 1176000 = 1148 KB Current Secsize: 512 ATIP info from disk: Indicated writing power: 5 Is not unrestricted Is not erasable ATIP start of lead in: -11324 (97:31/01) ATIP start of lead out: 359849 (79:59/74) Disk type: Long strategy type (Cyanine, AZO or similar) Manuf. index: 22 Manufacturer: Ritek Co.
de la que nos interesa el numeroATIP start of lead out: 359849 (79:59/74)
359849el cual al multiplicarse por2048nos dará el tamaño máximo de la imagen que puede ser grabada en el CD. Si se fijan el tamaño concuerda con un CD 80 minutos que corresponde exactamente a 702 MegaBytes absolutos del tamaño de la imagen. - Crear un fichero imagen vacío; con los datos anteriores:
dd if=/dev/zero of=imagen-vacia.ext2 bs=2048 count=359849
- Formatearlo:
mke2fs -m 0 -b 2048 imagen-vacia.ext2
mke2fsadvertirá de queimagen-vacia.ext2no es un fichero de dispositivo de bloque, y le pedirá confirmación:imagen-vacia.ext2 is not a block special device. Proceed anyway? (y,n) y
- Montarlo, mediante
loopback, en lo que va a ser nuestro directorio «maestro»:mount -o loop imagen-vacia.ext2 /mnt/master
- Copiamos a él los ficheros que queramos, si por ejemplo queremos hacer una réplica de
/etc:cd /etc find | cpio -pdamvu /mnt/master
- Lo desmontamos, y grabamos normalmente.
Si queremos montar un CD-Rom de este tipo, habrá que especificarle a mount que el tipo de sistema de ficheros es ext2, y de sólo lectura:
mount -t ext2 -o ro /dev/cdrom /mnt/cdrom
si queremos incluirlo en /etc/fstab, habrá que indicar además de su tipo de sistema de ficheros, y de ser sólo lectura, que no sea comprobado:
/dev/cdrom /mnt/cdrom ext2 defaults,ro 0 0
El último 0 es el que hace que fsck no lo compruebe en cada arranque.
Autor y licencia de 'Grabadoras'
Tutorial de Leandro Terrés y Francisco J. Montilla. Extraido de: http://www.insflug.org/COMOs/Grabadoras-Como/Grabadoras-Como.html
