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.
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:
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.
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.
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.
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
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.
Nos muestra la ayuda del programa, muy útil si no nos acordamos de alguno de los parámetros.
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.
Gracias a esta opción podremos crear CDs con sistema de ficheros
Joliet. No incluida en versiones anteriores a la 1.12
.
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.
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.
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 sda1
sea donde queremos volcar la imagen; OJO
con especificar una partición equivocada, o se irá a hacer gárgaras...
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
.
Muestra por pantalla el tamaño estimado que ocupará la imagen, sin hacer nada más.
Especifica el editor del CD. Su longitud máxima son
128 caracteres. En el archivo .mkisofsrc
se identifica como
PUBL=
.
No muestra mensajes por pantalla.
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.
Esta opción es como la anterior pero resetea los permisos de modo que todos los usuarios puedan acceder al CD por completo.
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
los archivos tendrán nombres de 32 caracteres
y no de 8+3.
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.
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.
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:
El nombre de volumen.
Cualquier cosa que quiera poner, normalmente un pequeña descripción del CD.
Aquí puede poner sus datos o cualquier cosa para identificar el CD como suyo.
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:
Añade la extensión ISO9660 de Apple, para la compatibilidad con el estándar.
Crea el sistema HFS híbrido para la extensión ISO9660.
Prueba todos los archivos para el sistema Unix/HFS.
Crea todos los nombres según el estilo de los mac para ISO9660/Joliet/Rock Ridge
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:
cdrecord
en su versión de desarrollo 1.8
de la siguiente forma:
# 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.
Una vez obtenida esta información nos fijamos en la siguiente linea:
ATIP start of lead out: 359849 (79:59/74)
de la que nos interesa el numero 359849
el cual al multiplicarse por
2048
nos 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.
dd if=/dev/zero of=imagen-vacia.ext2 bs=2048 count=359849
mke2fs -m 0 -b 2048 imagen-vacia.ext2
mke2fs
advertirá de que imagen-vacia.ext2
no 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
loopback
, en lo que va a ser nuestro
directorio «maestro»:
mount -o loop imagen-vacia.ext2 /mnt/master
/etc
:
cd /etc
find | cpio -pdamvu /mnt/master
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.
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 CD-Audio 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:
cdrecord
: Indistintamente de la grabadora que tenga, y del
software de extracción que use, extraiga siempre en Big Endian,
el formato por defecto.
cdrecord
sabe qué formato necesita cada grabadora, e invertirá el
orden de palabra si es necesario; notará si lo invierte porque aparecerá
la palabra swab
en el listado de pistas de audio a grabar.
cdwrite
: Aquí no hay error posible, ha de saber qué orden
necesita su grabadora, y tener los ficheros CDDA con el orden apropiado. Otro concepto, que aunque es mencionado 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 expongo aquí por su excepcional calidad y fiabilidad. 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.
Para especificar el dispositivo genérico de la unidad con la que vamos a extraer.
Dispositivo de bloque de la unidad con la que vamos a
extraer, son válidos tanto dispositivos /dev/srX
como
/dev/scdX
.
Desde qué pista a extraer
Hasta qué pista extraer (inclusive)
desplazamiento del principio de la pista
desplazamiento del final de la pista
Tiempo total de grabación
Velocidad de extracción.
imprimir información sobre el CD.
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/
. También se puede
encontrar incluido en el mismo paquete de las últimas versiones de
cdrecord
.
Comentaré sólo las opciones más habituales:
Dispositivo genérico de la unidad lectora; /dev/sgX
o
0,1,0
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.
Dispositivo auxiliar: será un /dev/scdX
si el lector es
SCSI o el mismo que le especificamos en -D
si es IDE.
Tipo de interfaz; generic_scsi
para dispositivos SCSI o
cooked_ioctl
para IDE.
Extracción a calidad CD: muestreo a 44100Hz, 16 bits estéreo. Esta es la opción por defecto, asi que si quiere estas opciones no tendrá que volver a ponerlas.
Especificamos la pista o rango de pistas a extraer.
Formato del fichero de salida, opciones validas útiles pueden ser
raw
para formato cdr (CDDA) o wav
.
Orden de la palabra binaria: big
para Big Endian,
little
para Little Endian.
Extraer cada pista a un fichero separado.
Velocidad de extracción.
Desactivar overlap (utilizar si se obtienen mensajes de error
tipo increase overlap (X) or decrease SYNC_SIZE (X)
.
No crear ficheros informativos (.inf
) por cada fichero de
audio creado.
Permite la salida directa al dispositivo de audio del ordenador. Por defecto /dev/dsp.
Cambia el dispositivo de audio por defecto /dev/dsp por que se le especifique.
No muesta información alguna mientras se realiza el proceso de extracción.
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/sgb -A /dev/scd0 -I generic_scsi -x -t 3+8 -B -O cdr -S 10 audio
tambien se puede escribir de forma más abreviada de la siguiente forma:
cdda2wav -D 0,2,0 -I generic_scsi -x -t 3+8 -B -O cdr
Si extraemos las pistas con la opción -O wav
por defecto serán
Little Endian.
En la versión 1.0
de cdda2wav y en adelante para extraer las
pistas de audio directamente, aunque hayan otros tipos de pistas en el
disco, como por ejemplo una de datos al principio o al final, se ha de
poner tan sólo esto:
cdda2wav -D 0,2,0 -I generic_scsi -B
al mismo tiempo, esto nos puede servir de ejemplo de como se pueden extraer pistas para la sección DAO con cdrecord.
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.
cdrecord
La página principal de 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í lo hace
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, 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:
Muestra la versión del programa. Recomendada la versión
1.6.1 final
, las que llevan a
despues del número son alphas y no
es recomendable usarlas. Para unidades tanto IDE como SCSI se recomienda la
1.8aXX
.
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).
Muestra los comandos SCSI mientras se ejecuta el programa.
Muestra mensajes para encontrar posibles fallos.
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
.
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.
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.
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.
Muestra información sobre la tabla de contenidos del CD, este parámetro puede ser usado tanto en las grabadoras como en los lectores.
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.
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.
Esta opción es para cerrar la bandeja, luego sale del programa.
Esta opción permite expulsar el CD una vez grabado, hay unidades como las Philips o las Yamaha que deben hacer esto.
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.
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:
help
Muestra la ayuda.all
Borra totalmente un disco. Esta opción tarda bastante tiempo.disc
o disk
Borra un disco totalmente.fast
o minimal
Borrado rápido del disco: Solo borra el TOC,
los pregaps y el PMA.track
Borra una sola pista.unreserve
Activa una pista reservada.trtail
Borra la cola de una pista.unclose
Abre una pista cerrada.session
Borra la ultima sesión.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
.
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.
Esta opción busca el driver que corresponda a su unidad y termina la ejecución.
Esta opción imprime las posibilidades de las unidades que cumplan el estándar SCSI-3/mmc y sale.
Esta opción hace un examen de la unidad, imprime los resultados en pantalla y sale.
Esta opción examina el bus SCSI en busca de unidades. Sirve para buscar nuestra unidad.
Esta opción resetea el bus SCSI donde se esté nuestra grabadora.
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.
Tras 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.
Si esta opción esta presente, todas las pistas de datos que la sigan se grabarán en modo 2.
Si esta opción esta presente, todas las pistas que la sigan se grabarán en modo XA 1.
Si esta opción esta presente, todas las pistas que la sigan se grabaran en modo XA 2.
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
, que es el asumido por defecto.
Las nuevas opciones que incluye el cdrecord 1.8 se describen en su sección.
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
, CDR_SPEED
y CDR_FIFOSIZE
.
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) y el buffer de datos FIFO sea de 16 megabytes.
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
CDR_FIFOSIZE=16m
export CDR_SPEED CDR_DEVICE CDR_FIFOSIZE
Dichas variables no estarán disponibles hasta que el sistema relea el
fichero /etc/profile
, lo mejor es reiniciar el terminal con un
logout o bien recargando el archivo con source /etc/profile.
Si esto no funciona, reinicie el sistema para salir de dudas.
Ahora viene algo que 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 recomiendo realizar esta operación sólo con versiones de
cdrecord
superiores o iguales a la 1.6.1
, y 1.12b5
de
mkisofs
, ya que he comprobado que funcionan y se entienden mucho
mejor, con mucho menor peligro de realizar CDs corruptos.
Antes de 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, cdrecord
no tiene forma de saber cuál
es el tamaño de la imagen. De esta forma, si por ejemplo, mkisofs
nos
mostrará la siguiente línea:
Total extents scheduled to be written = 290699
Para que cdrecord
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 -multi - -audio audio1.wav audio2.wav audio3.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.
Se preguntará por qué en la opción tsize
del cdrecord multiplico
por 2048
la cantidad dada por el mkisofs. La razón es muy
simple, a partir de la version 1.6.1
y 1.8
de cdrecord, hay
que pasarle el tamaño en bytes de la imagen, y debido a que realiza la
multiplicación él mismo, sólo lo tenemos que multiplicar por el tamaño de
cada sector de un CD y listo.
Use esto con cuidado.
Y para terminar voy a indicar cómo 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 cdrecord
nuestra grabadora, ya sea interna o externa,
por lo que para indicarle cómo acceder a nuestra grabadora tendremos que
especificar 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 una version de 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
velocidad en el puerto paralelo antes de proceder a la grabación final de
CD-ROMs.
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 resultar 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.
cdrdao
Parece ser que se ha conseguido que este programa haga lo que se quería, copiar CDs al vuelo, incluso los mixtos, de música, y ohhhhhhh, de ¡Playstation!. No dejéis de ver la sección dedicada a este programa porque merece la pena.
Puede obtener este programa de
http://www.fh-muenchen.de/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.
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/
.
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
.
Hay varias utilidades entre las que tengo que destacar sdir
,
isovfy
, cdinfo
y 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 de X-CD-Roast (sección
X-CD-Roast) como en el de cdrecord
(
cdrecord).
Por ejemplo, sdir
nos puede ayudar a saber el tamaño total de un
directorio y sus subdirectorios lo cual resulta muy útil cuando queremos
evaluar y calcular el tamaño del CD a copiar al vuelo; isovfy
nos
sirve para verificar que no hayan errores en una imagen creada en el disco
duro; cdinfo
nos puede ayudar a comprobar que se han copiado bien los
CDs y no sólo eso, este pequeño programa muestra la estructura de un CD en
minutos y segundos, nos dice si es arrancable, los sistemas de ficheros
que contiene, si lleva pistas de audio o es un vídeo CD, etc; por último,
con isodetect
podemos ver la etiqueta del volumen de un CD así como
los comentarios de los mismos.
Descripción de las utilidades:
este programa muestra la capacidad de un directorio con sus subdirectorios. Los parámetros a pasarle son directorios.
programa para ver el volumen, el editor, el publicador y la aplicación de una imagen. Su sintaxis es la siguiente:
-h
Muestra la ayuda.-d
y un nombre de un archivo de imagen o de un dispositivo le
indican en dónde realizar la búsqueda; por defecto busca en
/dev/cdrom. Si no se indican mas parámetros indicará el tipo de
imagen que es, iso9660 o HFS.-V
muestra el nombre del volumen de la imagen o CD.-P
muestra el comentario que hay como publicador.-p
muestra el comentario que hay como preparador.-A
muestra el comentario que hay como aplicación.Sólo se puede indicar un comando a la vez con -d
. Este programa se
puede encontrar en el paquete X-CD-Roast
(sección
X-CD-Roast).
excelente y pequeña utilidad que nos muestra la estructura de
un CD; en lo que a pistas se refiere, identifica CDs mixtos, arrancables,
con sistema HFS, CD Plus, etc. (Altamente recomendada y muy útil). La
última versión se puede descargar desde
http://www.in-berlin.de/User/kraxel/dl/cdinfo.c
Desgraciadamente, parece ser que se ha abandonado su desarrollo.
Esta pequeña utilidad nos servirá para encontrar posibles
errores en las imágenes. Su sintaxis es muy sencilla, solamente se le ha
de indicar un dispositivo de bloque o el nombre del fichero imagen. Este
programa viene en el paquete de X-CD-Roast
(sección
X-CD-Roast).