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.
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.
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:
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 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.
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
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
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
en el archivo aparecerán nombres de 32
caracteres y no de 8+3.
Nos muestra la ayuda y la versión del programa.
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
, 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:
El nombre de volumen.
Cuanquier 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.
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.
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.
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
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:
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 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.
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.
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
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:
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.
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.
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.
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.
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:
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.
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 sale.
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.
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.
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
, ya que es el que se asume por defecto.
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.
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.
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.
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 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:
este programa nos muestra la capacidad de un directorio con sus subdirectorios. Los parámetros son directorios.
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:
-h
Te muestra la ayuda.-d
y un nombre de un archivo de imagen o de un dispositivo le
indican en donde realizar la búsqueda, por defecto busca en
/dev/cdrom. Si no se indican mas parámteros te dice el tipo de
imagen que es, iso9660 o HFS.-V
Te muestra el nombre del volumen de la imagen o CD.-P
Te muestra el comentario que hay como publicador.-p
Te muestra el comentario que hay como preparador.-A
Te muestra el comentario que hay como aplicación.Solo se puede indicar un comando a la vez con -d
. Este programa se puede
encontrar en el paquete del
X-CD-Roast.
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).
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.