Anterior Siguiente Indice

5. Programas necesarios para grabar

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, y en el caso del 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.

5.1 Programas para creación de las imágenes

La parte mas importante es la de 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 revisar 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, no se impaciente.

mkisofs

Puede obtener este programa de ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs.

La última versión disponible es la 1.13.

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.

Puede también combinar las dos, es decir, en un solo CD tener los dos sistemas, el Rock Ridge y el Joliet, de tal forma que es portable a los sistemas operativos que usen uno u otro, manteniendo los nombres largos.

Esta explicación está basada en la versión 1.12a4, 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 .mkisofsrc que 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 como APPI= especificando lo que quiera poner mientras tenga una extensión no superior a 128 caracteres. En versiones anteriores a la 1.12 se 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 autoarrancable según el estándar El Torito. De esta forma creamos un CD autoarrancable 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 autoarrancables, 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 raiz 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 core etc...) 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

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ámetro PREP= 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 .mkisofsrc se identifica como PUBL=.

-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.TBL en 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 -l en el archivo aparecerán nombres de 32 caracteres y no de 8+3.

-v

Nos muestra la ayuda y la versión del programa.

-V

Esta opción nos permite darle un nombre de volumen al CD para identificarlo. En el archivo .mkisofsrc se especifica con el parámetro VOLI= 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, con 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=

Cuanquier 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=

Aqui puede poner una descripcion 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 "descripcion CD" -p  "preparador" \
 -A "Aplicacion" -o imagen.iso /ficheros

Este único comando se ha introducido en dos líneas, detrás del carácter \ hay que darle a 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

Uff, casi se me olvida, para hacer un CD autoarrancable (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

5.2 Software de extracción de audio

Aviso: La mayoría de las grabadoras requieren que el orden de palabra de los ficheros de audio en formato CDDA o PCM raw sea Big Endian, salvo las Yamaha, Sony y recientemente las últimas grabadoras que cumplen el estándar SCSI-3/mmc, que lo necesitan Little Endian.

Casi todos los programas extractores de CDAudio extraen por defecto en Big Endian.

Si graba ficheros de audio con el orden de palabra equivocado para su grabadora, cuando intente escuchar ese CD no oirá más que un horripilante ruido, similar al sonido de una televisión sin sintonizar.

Dependiendo del software que utilice para grabar, esto se puede abordar de dos maneras:

Otro concepto, que aunque es mecionado más veces posteriormente a lo largo del documento, quiero recalcar, y que necesitará especialmente con los extractores, es el del dispositivo genérico SCSI, que es explicado en la sección Dispositivos genéricos.

readcdda

Este programa es un poco difícil de encontrar, ya que las versiones disponibles son modificaciones o portings del original a Linux.

Uno de los paquetes que lo trae modificado es el X-CDRoast, que es de donde lo he obtenido, ver sección X-CD-Roast.

No hay página man disponible, y tampoco certifico que los comandos que aquí explico correspondan a la versión que Vd. pueda conseguir; no obstante lo explico aquí por su excepcional calidad y fiablilidad. Eso sí, sólo funciona con dispositivos SCSI.

Su sintaxis es un poco pesada, pero como decía antes, vale la pena.

El orden de palabra de los ficheros cdda creados con readcdda es Big Endian por defecto.

-D dispositivo

Para especificar el dispositivo genérico de la unidad con la que vamos a extraer.

-B dispositivo

Dispositivo de bloque de la unidad con la que vamos a extraer, son válidos tanto dispositivos /dev/srX como /dev/scdX.

-t

Desde qué pista a extraer

-z

Hasta qué pista extraer (inclusive)

-o

desplazamiento del principio de la pista

-s

desplazamiento del final de la pista

-d

Tiempo total de grabación

-S

Velocidad de extracción.

-v

imprimir información sobre el CD.

-x

Formato de salida Little Endian

Así que un ejemplo, utilizando el CDROM SCSI que estuviera en el ID SCSI 3, que fuese el primer CDROM disponible, extrayendo de la pista 1 a la 15, a velocidad 6x en un solo fichero .cdr, sería:

readcdda -D /dev/sgd -B /dev/scd0 -t 1 -z 15 -o 0 -s 0 -S 6 audio.cdr

Esto es un poco latoso si queremos que cada pista tenga su fichero, para ello podemos utilizar un bucle:

for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
readcdda -D /dev/sgd -B /dev/scd0 -t $i -z $i -o 0 -s 0 -S 6 audio.$i.cdr ;
done

cdda2wav

Este programa es más reciente, y permite extraer de CDROMs IDE si éstos soportan extracción. Puede obtenerlo de ftp://ftp.gwdg.de/pub/linux/misc/cdda2wav/.

O tambien de su FTP principal ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/cdda2wav.

Comentaré sólo las opciones más habituales:

-D

Dispositivo genérico de la unidad lectora; /dev/sgX si es SCSI; si es IDE, con el fichero de dispositivo de bloque correspondiente: /dev/hdb por ejemplo para un CD esclavo del bus primario, o el enlace simbólico que apunte al apropiado.

-A

Dispositivo auxiliar: será un /dev/scdX si el lector es SCSI o el mismo que le especificamos en -D si es IDE.

-I

Tipo de interfaz; generic_scsi para dispositivos SCSI o cooked_ioctl para IDE.

-x

Extracción a calidad CD: muestreo a 44100Hz, 16 bits estéreo.

-t primera+ultima

Especificamos la pista o rango de pistas a extraer

-O

Formato del fichero de salida, opciones validas útiles pueden ser raw para formato cdr (CDDA) o wav

-E

Orden de la palabra binaria: big para Big Endian, little para Little Endian.

-B

Extraer cada pista a un fichero separado

-S

Velocidad de extracción

-P

Desactivar overlap (utilizar si se obtienen mensajes de error tipo increase overlap (X) or decrease SYNC_SIZE (X)

-H

No crear ficheros informativos (.inf) por cada fichero de audio creado.

Supongamos que usamos un lector SCSI, que tiene el ID 2 del bus SCSI, que queremos extraer las pistas de la 3 a la 8, en formato CDDA, Big Endian (por defecto), en ficheros con el patrón audio_*.cdr separados, con sus correspondientes ficheros informativos:

cdda2wav -D /dev/sgc -A /dev/scd0 -I generic_scsi -x -t 3+8 -B -O raw -S 10 audio

Si extraemos las pistas con la opción -O wav por defecto serán Little Endian.

Existe una variante del cdda2wav, llamada cdparanoia, de rendimiento muchísimo menor, pero que como su nombre indica, es muy paranoica con la calidad de las pistas extraídas, puede resultar útil con CDs muy estropeados.

5.3 Software de grabación

cdrecord

La página principal del cdrecord es http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html

Puede obtenerlo por FTP de ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/.

Este programa es más avanzado y actual que cdwrite, al estar en desarrollo e incorporar soporte para las novedades del mercado actual, a pesar de no soportar algunas unidades antiguas que sí soporta cdwrite.

La mayor ventaja de este programa es que funciona perfectamente con las grabadoras IDE (con emulación SCSI activada, por supuesto) y SCSI, incluyendo más opciones como el soporte para regrabables y sus comandos específicos, como borrar un CD-RW, una partición, etc.

Permite visualizar las tablas de contenido (TOC o Table Of Contents), que es donde se almacena la información sobre las pistas y el tamaño de las mismas).

Esta tabla la genera el programa y se tiene que grabar para que se pueda leer el CD, ya sea cuando haga un CD multisesión o al hacer un CD normal o de CD-Audio.

También puede grabar pistas CDI, en modo normal de datos data 1 y data 2, multisesión xa1 y xa2 de datos, y audio.

Otra función muy útil es que puede realizar ciertas pruebas a la unidad para comprobar sus capacidades y compatibilidad, etc.

Los comandos que más nos pueden interesar se detallan a continuación:

-version

Muestra la versión del programa. Recomendada la versión 1.6.1 final, las que llevan la a despues del número son alphas y no es recomendable usarlas.

-v

Muestra información mientras se ejecuta el programa para conocer el estado de la grabación (Muy recomendable ya que indica los Mb grabados y el porcentaje de llenado del buffer).

-V

Muestra los comandos SCSI mientras se ejecuta el programa.

-debug

Muestra mensajes para encontrar posibles fallos.

dev=destino

Especifica la situación de la grabadora en el sistema SCSI. Hay que especificarle el bus scsi, el ID SCSI del dispositivo, y el LUN SCSI (Logical Unit Number, valor variable sólo si se emplea por ejemplo un lector múltiple de CDs, en donde 0 identificaría a la primera bandeja, 1 a la segunda, etc).

Un ejemplo frecuente sería 0,4,0 para el primer bus SCSI, el ID SCSI 4 y el LUN de todo dispositivo no múltiple, 0. Si usamos la emulación SCSI o una unidad de puerto paralelo, siempre será 0,0,0.

-dummy

Con este parámetro indicamos que vamos a hacer un test de la unidad y del sistema, simulando una grabación para comprobar si se realiza adecuadamente. Durante este test el láser de la grabadora está desactivado por lo que no correremos el riesgo de perder un CD.

-multi

Esta opción es para indicar que vamos a hacer un CD multisesión, es decir con varias pistas de datos. Este parámetro no puede ser usado en unidades Sony ya que no llevan soporte hardware para CD-ROM modo XA 2 por lo que se deberá de usar el parámetro -data para este fin.

-msinfo

Esta opción nos permite ver la información que hay grabada en un CD multisesión o con al menos una pista, mientras el CD no se haya cerrado.

-toc

Muestra información sobre la tabla de contenidos del CD, este parámetro puede ser usado tanto en las grabadoras como en los lectores.

-fix

Esta opción es para cerrar un CD que no se haya cerrado antes, si después de haber grabado los datos no se ha escrito la tabla de contenidos. De momento esto no funciona con las unidades TEAC.

-nofix

Esta opción, usada en la línea de comandos es para que al grabar un CD no se escriba la tabla de contenidos, para que no lo cierre. Puede ser útil para grabar un CD por pasos o para grabar un CD-Audio ya que hay lectores de CD-Audio que pueden leer CDs sin cerrar, siempre y cuando no contengan además datos. Los CDs de datos sin cerrar no pueden ser usados por unidades lectoras.

-load

Esta opción es para cerrar la bandeja, luego sale del programa.

-eject

Esta opción permite expulsar el CD una vez grabado, hay unidades como las Philips o las Yamaha que deben hacer esto.

speed=X

Esta opción es para indicarle a la unidad la velocidad a la que debe grabar. El número especifica el multiplicador de 150Kb/s para datos y 172Kb/s para audio.

blank=opcion

Esta opción borra un CD-RW y sale o bien borra antes de continuar con una grabación. Sólo puede ser usada por unidades regrabables y con discos CD-RW. Las opciones se describen a continuación:

fs=

Esta opción especifica el buffer fifo para almacenamiento intermedio de los datos, a fin de hacerlos llegar a la grabadora sin retraso. Para facilitar las cosas puede especificar este buffer con un número seguido de b para indicarle bytes, k para kilobytes, m para megabytes.

Por defecto tiene un buffer de 4 Mb. La recomendación para el tamaño del buffer es de entre 4 y 32 Megas, debiendo ser como mínimo igual al tamaño de buffer interno de la grabadora y como máximo no superior a la mitad de la RAM física del ordenador.

Lo normal es que no necesite poner más de 8 MB que es lo que yo recomiendo. Si aún así aparecen mensajes como fifo empty count, tiene problemas de configuración o hardware. Ej: fs=8m.

driver=

Esta opción es para especificarle un driver concreto; para ver la lista de todos los drivers simplemente especifique driver=help. Si no se indica opción, cdrecord tratará de encontrar el driver más apropiado para la unidad. Si no lo consigue, tendrá que indicárselo; sepa que si el driver no es absolutamente compatible corre un riesgo muy grande de perder el CD.

-checkdrive

Esta opción busca el driver que corresponda a su unidad y sale.

-prcap

Esta opción imprime las posibilidades de las unidades que cumplan el estándar SCSI-3/mmc y sale.

-inq

Esta opción hace un examen de la unidad, imprime los resultados en pantalla y sale.

-scanbus

Esta opción examina el bus SCSI en busca de unidades. Sirve para buscar nuestra unidad.

-reset

Esta opción resetea el bus SCSI donde se esté nuestra grabadora.

-audio

Detrás de esta opción se indican los nombres de los archivos de sonido que serán grabados como pistas de audio, siempre y cuando los archivos tengan una calidad de muestreo 44.100 Khz a 16 Bits, estéreo en alguna variante PCM; si no son así, serán rechazados por cdrecord. Acepta formato CDDA (tanto .cdda como .cdr son extensiones válidas), .wav, .au y .raw.

cdrecord, si no se le especifica lo contrario, asume que el orden de palabra es Big Endian, y convertirá automáticamente a Little Endian si detecta que la grabadora lo necesita.

-data

Detrás de esta opción se indica el nombre del archivo que corresponde a la imagen ISO9660 que anteriormente hemos creado con mkisofs u otro de los anteriormente descritos. Esta opción viene por defecto, lo que quiere decir que si no la indicamos grabaremos de esta forma.

-mode2

Si esta opción esta presente, todas las pistas de datos que la sigan se grabarán en modo 2.

-xa1

Si esta opción esta presente, todas las pistas que la sigan se grabarán en modo XA 1.

-xa2

Si esta opción esta presente, todas las pistas que la sigan se grabaran en modo XA 2.

-cdi

Si esta opción esta presente, todas las pistas que la sigan se grabaran en CDI.

Estos son los comandos que más se usan, para ampliar información puede acudir al manual. Ahora unos ejemplos para que la cosa quede mas clara:

cdrecord -scanbus
cdrecord dev=0,0,0 -checkdrive
cdrecord dev=0,0,0 -prcap
cdrecord dev=0,0,0 -inq
cdrecord dev=0,0,0 -toc
cdrecord dev=0,0,0 -msinfo

Así se realizan los test; en el primero se escanea el bus SCSI para ver nuestra unidad, en los demás se toma que tenemos la unidad en el dispositivo que corresponde al bus 0, id 0 y lun 0 para hacerle los test a los que corresponde la explicación anterior.

cdrecord dev=0,0,0 fs=8m speed=2 -nofix -eject -xa1 imagen.iso -audio audio1.wav audio2.cdda audio3.au

Aquí podemos ver que le hemos puesto 8 Mb al buffer fifo, especificado que grabe a doble velocidad, que expulse el CD una vez terminado, que la primera pista es una imagen de datos en formato multisesión XA 1 y las siguientes pistas serán de audio (este programa puede grabar varios formatos de audio como el .wav de Microsoft, el .cdda, el PCM en bruto o .raw y el .au siempre y cuando tengan una calidad de muestreo de 44100 Hz a 16 bits, en estéreo). Y al final no será escrita la TOC por lo que para hacerlo tenemos la siguiente línea:

cdrecord dev=0,0,0 -fix

Para grabar una sola pista de datos podemos usar esto:

cdrecord dev=0,0,0 fs=8m speed=2 -eject imagen.iso

Ya que como se dijo antes no hacía falta especificar el parámetro -data, ya que es el que se asume por defecto.

Parámetros configurables permanentemente de cdrecord

Como puede observar, es un poco latoso el tener que especificar datos no cambiantes una y otra vez, como por ejemplo dónde se encuentra la grabadora, o la velocidad de grabación ya que generalmente grabará casi siempre al máximo de velocidad.

Para no tener que especificarlo siempre en la línea de comandos, cdrecord provee la posibilidad de establecer dichos parámetros por defecto, mediante las variables de entorno CDR_DEVICE y CDR_SPEED.

Supongamos que su grabadora está en el primer bus SCSI, y tiene el ID 4. (El LUN siempre va a ser 0). Y que quiere que la velocidad de grabación por defecto, a menos de que se especifique lo contrario mediante parámetros de la línea de comandos, va a ser a doble velocidad (2x).

Estableceríamos dichas variables de entorno mediante la inserción, generalmente en el fichero /etc/profile, de las siguientes líneas, suponiendo que utilice bash como intérprete de comandos:

CDR_SPEED=2
CDR_DEVICE=0,4,0
export CDR_SPEED CDR_DEVICE

Dichas variables no estarán disponibles hasta que el sistema relea el fichero /etc/profile, lo mejor es reiniciar el terminal con un logout. Si esto no funciona, reinicia el sistema para salir de dudas.

Grabacion sin imagen

Ahora viene algo que le puede interesar a más de uno, hacer un CD directamente desde el disco sin necesidad de hacer una imagen previa.

He de advertir sobre este procedimiento y es que no se debe, por ninguna circunstancia, acceder al disco que contenga el directorio maestro con los ficheros a partir de los que se está generando una imagen directa al CD, ya que cualquier mínimo retraso en la transferencia de datos puede ocasionar que no se grabe el CD correctamente a pesar de que durante la grabación no aparezcan errores.

El problema de que no se genere correctamente la imagen puede no radicar necesariamente en que su disco duro sea lento, hay otros factores como la memoria disponible: tenga en cuenta que por ejemplo mkisofs necesita al menos 12MB de memoria para generar las extensiones Rock Ridge.

Repito, no acceda al disco duro maestro durante la grabación, peligro de hacer un CD desde el que no se pueda leer ningún dato sano, aunque aparentemente se haya grabado bien; esto se puede comprobar editando un archivo de texto y viendo como parte del archivo anterior o los gaps se han introducido en ellos.

Así mismo recomendar realizar esta operación con la version del cdrecord 1.6.1 y del mkisofs 1.12b4, ya que he comprobado que funcionan mucho mejor y también, se entienden mucho mejor, perdiendo peligro de realizar CDs corruptos.

Así mismo recomendar realizar esta operación con la version del CDrecord 1.6.1 y del mkisofs 1.12b4, ya que he comprobado que funcionan mucho mejor y también, se entienden mucho mejor, perdiendo peligro de realizar CDs corruptos.

Bueno, antes de ponernos a grabar el CD debe realizar primero la siguiente operación:

mkisofs -r -T -l -print-size -f /files

la cual nos facilitará un número, este número se lo deberemos de pasar en un parámetro al cdrecord para que nos reconozca el tamaño de la imagen a grabar, ya que si no, el cdrecord no tiene forma de saber cual es el tamaño de la imagen. De esta forma, si por ejemplo, el mkisofs nos mostrara la siguiente linea:

Total extents scheduled to be written = 290699

nosotros haríamos lo siguiente para que el cdrecord nos reconozca el tamaño de la imagen a grabar:

nice --20 mkisofs -r -T -l -f /files | nice --20 cdrecord fs=16m \
tsize=290699*2048 -eject -

O bien para multisesión:

nice --20 mkisofs -r -T -l -f /files | nice --20 cdrecord fs=16m \
tsize=290699*2048 -eject -xa1 - -audio audio1.wav auido2.wav auido3.au

Nótese que no especificamos ni la localización SCSI de la grabadora, ni la velocidad de grabación, ya que la hemos establecido con las variables de entorno mencionadas anteriormente.

Seguramente se preguntará el porqué del nice --20 que hay delante de cada uno de los programas. El comando nice sirve para asignar la prioridad de ejecución, y en este caso concreto establecemos la máxima posible.

Use esto con cuidado.

Y para terminar voy a indicar como usar el programa con las grabadoras IDE/ATAPI y de puerto paralelo, que por ejemplo al ejecutar la siguiente linea nos muestre algo como lo siguiente:

# cdrecord -scanbus
Cdrecord release 1.6 Copyright (C) 1995-1998 Jörg Schilling
scsibus0:
                  0) 'HP      ' 'CD-Writer+ 7200 ' '3.01' Removable CD-ROM
                  1) *
                  2) *
                  3) *
                  4) *
                  5) *
                  6) *
                  7) *

Así es como ve el cdrecord nuestra grabadora, ya sea interna o externa, por lo que para inidicarle al cdrecord como usar nuestra grabadora habremos de poner el parámetro dev=0,0,0.

# cdrecord dev=0,0,0 speed=2 fs=16m -v -dummy image.raw

Recomiendo usar la grabadora con la version del cdrecord 1.6.1, aunque como se aprecia en el escaneado de muestra anterior hecho con la versión 1.6, esta última es capaz de usarla. También es muy recomendable hacer pruebas de grabación para comprobar que no haya falta de potencia en el puerto paralelo del ordenador antes de proceder a la grabación final de CD-ROM's.

cdwrite

Puede obtener este programa (y casi todos los relativos a creación de CDs) de ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/.

Este programa era el más utilizado hasta hace un par de años mas o menos, (y el único que había). Está en actual desuso, ya que ha dejado de desarrollarse y se ha quedado algo anticuado; de todas formas funciona perfectamente en grabadoras SCSI a excepción de las Sony.

Si ha comprendido los comandos del cdrecord no tendrá problemas en entender los de este programa ya que no tiene muchos. Una diferencia que sí hay entre uno y otro es que para identificar la unidad grabadora utiliza los dispositivos /dev/srX y no va directamente al bus SCSI, lo cual puede ser mas fácil de usar.

Por defecto cdwrite busca /dev/cdwriter como dispositivo por defecto de la grabadora, por lo que si hace un enlace simbólico del dispositivo /dev/sgX a /dev/cdwriter con el dispositivo de acceso genérico correspondiente, (vea sección Dispositivos genéricos) se ahorrará un parámetro más que poner.

cdwrite necesita que se le especifique el tamaño en bytes de la imagen que va a grabarse; para saberlo, usamos el programa isosize (lo podemos encontrar dentro del paquete de distribución de cdwrite con otras utilidades extra que nos pueden venir muy bien); si nuestra imagen se llama imagen.iso:

# isosize imagen.iso
382060544

nos informa de que el tamaño es 382060544, parámetro que le especificaremos posteriormente con -b.

podemos usarlo también con CD-Roms o particiones, si hemos generado la imagen directa a una partición en lugar de a fichero:

isosize /dev/sda1
634986355

Si hemos volcado la imagen generada por mkisofs en la primera partición del primer disco SCSI (con la opción -o /dev/sda1).

Algunos ejemplos de cómo se usa cdwrite son:

cdwrite -ve -s 2 -b 382060544 -D /dev/sgd -data /dev/scd0

Copiará directamente el CD que esté en el primer CD-Rom SCSI del sistema a la grabadora, expulsará el CD una vez listo, e irá informando del transcurso de la grabación; 382060544 es el tamaño del CD en cuestión, que hemos averiguado previamente mediante isosize.

cdwrite -s 2 -e -D /dev/sgd -b 382060544 -data image.iso -audio *.cdr

Grabará un CD mixto de datos y audio, en donde el parámetro -s indica la velocidad de grabación (equivale al speed=2 del cdrecord), el parámetro -e expulsa el CD al terminar (equivalente al -eject), el -D indica la unidad grabadora, aunque si ha hecho un link de /dev/sgd (por ejemplo) a /dev/cdwriter no hace falta que lo especifique; y por último igual que en el anterior están los parámetros -data y -audio, estando el formato de los ficheros de sonido en Compact Disc Digital Audio (extensiones .cdda o .cdr); podemos pasarlo de otros formatos a éste mediante el programa sox.

cdwrite necesita que el orden de la palabra del fichero de audio sea el apropiado para su grabadora, u obtendrá un CD en el que sólo se escuche un desagradable ruido.

Consulte la sección Software de extracción de audio.

No podrá hacer CDs multisesión con este programa. Para hacer CDs multisesión tendrá que usar las opciones que lleva el mkisofs para este fin, generando una imagen multisesión.

5.4 Entornos Integrados

X-CD-Roast

Puede obtener este programa de http://www.fh-muenchen.de/home/rz/xcdroast/.

Este programa es el más sencillo de usar ya que está hecho para las X con un interfaz TCL/TK y se basa en modificaciones del cdrecord y mkisofs para su funcionamiento. En versiones anteriores utilizaba un derivado del cdwrite, pero tuvo que dejarlo ya que cdwrite ha dejado de desarrollarse.

La mayor ventaja que tiene este programa es su facilidad de uso y que detecta y configura los dispositivos automáticamente, además de funcionar correctamente y sin problemas. Con él puede configurar y hacer las imágenes de CD fácilmente sin necesidad de ir a la línea de comandos, así como extraer pistas de audio y volver a grabarlas gracias a sus modificaciones del readcdda y playcdda (que sólo se pueden usar con dispositivos SCSI).

Si quiere sacar pistas de audio con un lector IDE lector ha de usar el cdda2wav, aunque no todas la unidades lectoras soportan la extracción de pistas CDDA o de CD-Audio.

Puede hacer una copia directa de CD a CD, siempre que sean sólo de datos, y que las dos unidades, la grabadora y la lectora, sean dispositivos SCSI, ya que con las IDE no funciona muy bien, debido no al programa en sí, sino mas bien por las características de las unidades IDE, ya que no suelen satisfacer las capacidades de carga de las grabadoras. Aun así he llegado a comprobar como unidades del tipo Philips IDE de 32x en adelante funcionaban perfectamente.

Lo normal es que no tenga problemas para grabar con este programa siempre y cuando su grabadora sea SCSI, cuando sea IDE o usa la ultima versión 0.96d final o superior o no conseguirá que salga ni un solo CD bien.

5.5 Burn-It

Este entorno utiliza las últimas versiones de cdrecord, mkisofs y cdda2wav, lo más peculiar sin duda es que esta escrito íntegramente en java; su desarrollo es muy rápido.

Puede obtenerlo de http://www.imada.ou.dk/~jews/BurnIT/.

5.6 CDR

CDR son las siglas de Create/Duplicate/Rip (Crear/Duplicar/Extraer).

Su utilidad actualmente es más que nada para la preparación de audio que posteriormente va a ser grabado con cdrecord o cdwrite desde la línea de comandos. Provee una Interfaz tipo ncurses. Sólo extrae de unidades SCSI.

Puede obtenerlo de http://www.burdell.org/cdr.shtml.

5.7 Otros programas y utilidades

Hay varias utilidades entre las que tengo que destacar el sdir, el isovfy, el cdinfo y el isodetect, que son pequeñas, de consola pero muy útiles a la hora de comprobar y verificar CDs. Estas pequeñas utilidades se pueden encontrar en el FTP de sunsite ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/ y otras que se pueden encontrar tanto en el paquete del X-CD-Roast como en el del cdrecord. Por ejemplo, el sdir nos puede ayudar a saber el tamaño total de un directorio y sus subdirectorios que nos es muy util cuando queremos evaluar y calcular el tamaño del CD a copiar el vuelo; el isovfy nos sirve para verificar que no hayan errores en una imagen creada en el disco duro; el cdinfo nos puede ayudar a comprobar que se han copiado bien los CDs y no solo eso, este pequeño programa muestra la estructura de un CD en minutos y segundos, nos dice si es autoarrancable, los sistemas de archivo que contiene, si lleva pistas de audio o es un video CD, etc; y con el isodetect podemos ver la etiqueta del volumen de un CD así como los comentarios de los mismos.

Descripción de las utilidades son:

sdir

este programa nos muestra la capacidad de un directorio con sus subdirectorios. Los parámetros son directorios.

isodetect

programa para ver el volumen, el editor, el publicador y la aplicación a la que han sido puestos en una imagen. Su sintaxis es la siguiente:

Solo se puede indicar un comando a la vez con -d. Este programa se puede encontrar en el paquete del X-CD-Roast.

cdinfo

excelente y pequeña utilidad que nos muestra la estructura de un CD, en lo que a pistas se refiere, te identifica un CD mixto, autoarrancable, con sistema HFS, CD Plus, etc. (Altamente recomendada y muy util).

isovfy

esta pequeña utilidad nos vá a servir para encontrar posibles errores en las imágenes. Su sintaxis es muy sencilla, solamente se le ha de indicar un dispositivo de bloques o un nombre de archivo de una imagen. Este programa viene en el paquete del X-CD-Roast.


Anterior Siguiente Indice