Quemando CDs en Linux
Quemando CDs en Linux
mkisofs y cdrecord en la línea de comando lo hacen
posible todo
Carla Schroder (dworks-at-bratgrrl.com)
Consultora
de Tux Computing
Abril 23 de 2003
Traducido por D.A.
Valdez (yacolinux-en-yahoo.com.ar)
Linux ofrece poderosas y flexibles herramientas para
crear CDs. Puedes crear discos que son legibles en casi cualquier
plataforma y crear imágenes (archivos), .iso para
distribuir por Internet.
Quemar CDs desde la línea de comando en cualquier
plataforma puede ser misterioso y fastidioso, esto no es así
en Linux. Los comandos y la terminología son similares
entre plataformas por lo que resulta útil aprender como
grabar CDs en Linux y nos dan una idea de cómo funcionan
las cosas en otros sistemas operativos (*nix principalmente).
Mucho del software Linux es distribuido en forma de imágenes
.iso, así que si quieres aprender cómo quemar tus
propios cds, podrías bajarte alguna .iso y crear tu propio
disco de instalación.
Hay programas de línea de comando para grabar cds en
Linux y en Windows, pero las de Linux son más poderosas y
versátiles que sus contrapartes en Windows. En este
artículo vamos a darle una mirada a las aplicaciones
definitivas en el tema de grabación de cds en Linux:
mkisofs y cdrecord.
<span lang=\"es-ES\">mkisofs</span> permite crear
una imagen de los datos a grabar generando dentro de ella un
sistema de archivo ISO9660/JOLIET/HFS. Se crea/formatea el
sistema de archivo y se cargan los archivos y carpetas que
solicitamos que incluya, las dos cosas a la vez; a diferencia de
otros medios de almacenamiento como discos rígidos y
diskettes, en los que primero se crea/formatea el sistema de
archivos y luego se lo carga con archivos y carpetas. Con los cds
CD-R solo hay una oportunidad, ya que si los formateáramos
primero, obtendríamos un disco vacío y no le
podríamos añadir luego ningún archivo.
<span lang=\"es-ES\">cdrecord</span> permite
grabar CD-R/RWs, y con lo rápido que avanza la tecnología
de grabación de CDs las
versiones más nuevas de ambos programas son las más
recomendables, así mkisofs y cdrecord
deberían ser por lo menos de la versión 1.10
(aunque ambos ya están por delante de 2.x). En las últimas
versiones, cdrecord se cambió el nombre a
<span lang=\"es-ES\">cdrtools</span> (el comando sigue
llamándose cdrecord), para ver qué
versiones tienes instaladas en tu sistema tipea:
$ cdrecord --<span lang=\"es-ES\">version</span>
y
$ mkisofs --version
Para los que son nuevos en el mundo de la grabación de
CDs, les cuento un algunas cosas que deberían saber antes
de seguir:
-
CD-R: CD-Recordable -
\'CD Grabable\'. Estos CDs son WORM (Write Once, Read Many -
\'Escribible un Vez, Legible Muchas\'). -
CD-RW: CD-Rewritable -
\'CD Regrabable\'. Estos CDs son WMRM (Write Many, Read Many-
\'Escribible y Legible Muchas Veces\'). -
Los CD-Rs son legibles por
casi cualquier lectora de CD-ROM. -
Los CD-RWs deberían ser
legibles por cualquier lectora moderna. Una lectora tiene que
ser \"multiread\" para poder leer CD-Rs y CD-RWs Las
lectoras viejas suelen dar problemas para esto, así que
\'jubile\' su lectora de 4x y compre una nueva (no vale la pena la
molestia). -
Los CDs “de fábrica”
(no creados con grabadoras), son hechos a presión, no
quemados con un láser. -
Cuales grabadoras son las mejores ? Fijáte en los
sitios usuales de testeo de hardware.
Y unos cuantos términos relacionados con formatos de
archivo:
-
Yellow Book:
Especificación del formato físico de un cd de
datos. -
Orange Book:
Especificación del formato físico de un cd de
datos grabable:-
Part I: CD-MO
(Magneto-Óptico) -
Part II: CD-WO
(Grabable una vez; el más común, incluye al
\"hybrid\" de los PhotoCD) -
Part III: CD-RW
(Regrabable)
-
-
ISO-9660: La vieja
especificación estándar que permite solo nombres
\'8.3\' -
Rock Ridge: Extensiones
a ISO-9660 que permiten los nombres largos y los enlaces
simbólicos de UNIX; preserva todos los atributos de
archivo, tal como el propietario y permisos. Los atributos de
archivo UNIX no son mostrados cuando el disco es leído en
un sistema Windows. -
Joliet: Extensión
de Microsoft al ISO 9660 que permite que se pueda usar carateres
Unicode para nombres de archivo y nombres largos. También
crea nombres de archivo truncados para compatibilidad con MS-DOS
(cosas raras como: FILENA~1.TXT). Permite nombres de hasta 64
carateres, incluyendo espacios en blanco y es legible desde
Windows 95 o superior y desde computadoras Macintosh que
soporten la extensión Joliet Volume Access. Las nuevas
Macs no leerán nombres Joliet de más de 31
caracteres. -
El Torito:
Especificación de formato de CD-ROM Bootable. -
HFS (Hierarchical File
System): Sistema de archivo nativo de Macintosh -
Multisesión:
Permite añadir archivos luego de una primera sesión.
Para que un disco sea legible, la sesión debe estar
\'cerrada\'. Pero esta sesión no permite añadir más
archivos, para poder hacerlo hay que crear una nueva sesión.
La multisesión enlaza las sesiones individuales y
actualiza la tabla de contenido del disco para que aparezca como
si todo hubiera sido grabado en una misma sesión. -
CD-UDF (Universal Disk Format- Formato Universal de
Disco): Estándar de la industria, sistema de archivo
de escritura incremental por paquetes (\'incremental
packet-writing filesystem\').
Unas breves palabras sobre UDF: UDF implica ser capaz de
grabar archivos directamente al disco (igual que hacemos con
discos rígidos y diskettes). Actualmente esto se hace a
nivel software y para poder leer estos discos se requiere el
software usado para crearlos (en Windows por ejemplo, DirectCD o
InCD). UDF está en proceso de ser añadido al kernel
de Linux, probablemente en el 2.6. Las lectoras de CD necesitarán
un circuito CD-MRW (\"CD Mount Rainier ReWrite\", no me
pregunten de donde sacan estos nombres), lo que de hecho las
transformara en grabadoras, con la particularidad que copiar
archivos desde estas lectoras a discos CD-R/RW será tan
fácil como ahora es copiar a un diskette. Ya veremos.
(Fijáte en Recursos como obtener
más información sobre Mount Rainier).
Aventuras de la emulación SCSI en
Linux
Usa una grabadora IDE/ATAPI o una SCSI si puedes. La
interfaz de puerto paralelo es una horrible fuente de posibles
problemas, y las grabadoras USB son lentas. Ninguna de estas
últimas está bien soportada en Linux (aunque puedes
tener mejor suerte con las nuevas USB 2.0).
Las grabadoras IDE/ATAPI, que son las más comunes,
necesitarán un toque mágico para funcionar. Así
que...que pasa si cdrecord no te muestra ninguna
configurada ? Para verlo tipea esto:
$ cdrecord -scanbus
Si ya te muestra tu grabadora (fijáte en Grabando
el disco, abajo), puedes saltarte esta sección casi
por completo, a menos que quieras leer un poco para saber más.
Linux usa un subsistema de emulación SCSI, así
que las grabadoras IDE/ATAPI necesitarán drivers de
compatibilidad. Si hay una lectora y una grabadora en la misma
PC, ambas necesitarán usar el driver de pseudo-dispositivo
SCSI para poder copiar de disco a disco. No hay nada de malo en
usar emulación SCSI en una lectora, funcionará
igual, solo cambiará el nombre del dispositivo.
Dependiendo de tu particular distribución de Linux, el
nombre puede ser /dev/cdrom0 o /dev/hdc o /dev/scd0 (fijáte
en la Tabla 1 una lista de nombres de dispositivos IDE/ATAPI).
Tabla 1. Nombres de dispositivos IDE/ATAPI
Nombre
Dispositivo
hda
IDE bus/connector 0 maestro
hdb
IDE bus/connector 0 esclavo
hdc
IDE bus/connector 1 maestro
hdd
IDE bus/connector 1 esclavo
Para encontrar las unidades de tu sistema, tipea:
$ dmesg | grep \'^hd.:\'<br><br>hda: IBM-DTLA-305020, ATA
DISK drive<br>hdb: TOSHIBA DVD-ROM SD-M1202, ATAPI CD/DVD-ROM
drive<br>hdc: LITE-ON LTR-24102B, ATAPI CD/DVD-ROM drive<br>hda:
40188960 sectors (20577 MB) w/380KiB Cache, CHS=2501/255/63,
UDMA(66) Muchos Linux vienen actualmente con la emulación SCSI
ya compilada en el kernel:
$ locate
ide-scsi.o<br><br>/lib/modules/2.4.19/kernel/drivers/scsi/ide-scsi.o
Si tu sistema no muestra lo anterior, tendrás que
compilarlo en tu kernel. Este procedimiento es bastante largo
como para darlo en este artículo, así que por favor
fijáte en Recursos (no es difícil
cuando ya tenés algo de práctica).
Vas a necesitar editar dos archivos de texto para configurar
el sistema para que use el driver scsi. El primero es
/etc/modules.conf (en Debian, /etc/modules). Mi sistema tiene una
lectora de CD-ROM y una grabadora CD-R/RW, hdb y hdc
respectivamente. Añade esas líneas a
/etc/modules.conf (r /etc/modules) usando los valores apropiados
para tu sistema:
ide-cd ignore=\\\"hdb hdc\\\"<br>ide-scsi
Por defecto el subsistema IDE reclama todos los dispositivos
ATA para sí, así que ignora las líneas
que activan el subsistema SCSI para la lectora y la grabadora,
por ello:
A continuación edita el archivo de configuración
de tu booteador, GRUB o LILO. Para los que usan LILO añadan
lo siguiente al final de lilo.conf, y luego hacé lilo
<enter> en una consola para habilitar los cambios:
append=\"hdb=ide-scsi\"<br>append=\"hdc=ide-scsi\"
Lo anterior activará la emulación SCSI para
todas tus entradas de LILO (Linux), si quieres activar la
emulación solo para determinada entrada puedes hacerlo
así:
image=/boot/vmlinuz
label=linux
root=/dev/hda1
initrd=/boot/initrd.img
append=\"<code>hdb=ide-scsi hdc=ide-scsi\"
read-only
Lo anterior sería de utilidad en caso de que quieras
crear otra entrada en LILO para poder bootear /dev/hdb y/o
/dev/hdc sin emulación alguna. Por ejemplo cuando tengas
que conectar temporalmente un disco rígido como /dev/hdb
y/o /dev/hdc (como se da a menudo en el caso de portátiles).
Los usuarios de GRUB, añadirán lo siguiente a
/etc/grub.conf (o en Debian, /boot/grub/menu.lst) al final de la
línea kernel:
hdb=scsi hdc=scsi
Ahora rebootea y verifica que ha sido cargado:
$ lsmod | grep ide-scsi
Esto te devolverá unas líneas si es que todo
funcionó bien; fijáte por la que dice \'ide-scsi\'.
Creando un archivo .iso
Una
vez que seleccionaste los archivos que querés copiar,
grabarlos a un CD consiste de dos pasos: crear un .iso con
mkisofs, y luego quemarlo a un CD con cdrecord.
Usá lo siguiente para crear el archivo .iso:
$ mkisofs -o test.iso -Jrv -V test_disk /home/carla/
En este ejemplo:
-
-ole da nombre a
la nueva imagen de archivo .iso (test.iso) -
-Jusa Joliet,
para tener compatibilidad con Windows -
-rusa Rock Ridge
para compatibilidad con UNIX/Linux, y hace a los archivos
públicamente legibles. -
-vusa el modo
\'verbose\' que muestra comentarios informativos mientras es
quemada la imagen. -
-Vprovee un
nombre de volumen (test_disk); este es el que se muestra en el
Explorador en Windows. -
Lo último en la lista son los archivos
seleccionados para empaquetar dentro de la imagen .iso (todo lo
que está dentro de /home/carla/)
Ahora monta la imagen .iso para comprobar que está
correctamente construída; para esto me gusta crear un
directorio de testeo:
$ mkdir /test_iso<br>$ mount -t iso9660 -o
ro,loop=/dev/loop0 test.iso /test_iso Fijáte en el contenido del directorio, todos tus
archivos deberían estar ahí y ser perfectamente
legibles. Si no lo están o hay algún problema para
montar la imagen, si la hubieras quemado a un CD, habrías
desperdiciado el disco.
Quemando el CD
Escribir la
imagen al CD es tan fácil como respirar. Primero encuentra
la dirección SCSI de tu grabadora:
$ cdrecord -scanbus<br><br>Cdrecord 1.10
(i686-pc-linux-gnu) Copyright (C) 1995-2001 Jrg Schilling<br>Linux
sg driver version: 3.1.24<br>Using libscg version
\'schily-0.5\'<br>scsibus0:<br>0,0,0 0) \'TOSHIBA \' \'DVD-ROM
SD-M1202\' \'1020\' Removable CD-ROM<br>0,1,0 1) \'LITE-ON \'
\'LTR-24102B \' \'5S54\' Removable CD-ROM <br>0,2,0 2) *<br>0,3,0 3)
*<br>0,4,0 4) *<br>0,5,0 5) *<br>0,6,0 6) *<br>0,7,0 7) *Los primeros tres números de cada item se refieren al
bus SCSI, al ID de dispositivo y a la LUN (Logical Unit Number –
Número de Unidad Lógica), respectivamente. (El
cuarto número es el ID de dispositivo de nuevo). cdrecord
necesita estos tres números. En este ejemplo, la grabadora
es 0,1,0. Cualquier cosa en el bus SCSI 0 es acortada a 1,0,
dejando fuera el primer 0. Esto es lo normal por convención.
Cualquier otro bus, debe ser especificado sin acortarlo de
ninguna manera (los tres números).
Ahora grabemos al disco:
$ cdrecord -v -eject speed=8 dev=0,1,0 test.iso
En este ejemplo:
-
-ves \'verbose\'
(muestra más información de salida que usualmente) -
-ejectejecta el
disco al finalizar la grabación -
-speedespecifica
la velocidad de grabación (8) -
-deves el
número de dispositivo (0,1,0) obtenido con
cdrecord
-scanbus -
Lo último es el nombre de la imagen .iso a ser
quemada (test.iso)
Esta es una manera simple y rápida para crear CD que se
pueden distribuir y que se leen perfectamente en Windows o en
Linux. mkisofs por sí mismo es muy bueno para
crear imágenes .isos, y con mkisofs se puede
crear sistemas de archivo para muchas plataformas. Por favor lee
la página man de mkisofs para más
información.
En una máquina rápida con mucha memoria, podés
hacer esto sin preocuparte por ejecutar tareas livianas para la
CPU durante la grabación, pero es mejor no hacer nada
durante la misma. El láser no es capaz de detenerse y
volver a empezar y por eso cualquier interrupción es fatal
para el CD.
cdrecord intentará usar la grabadora a su
máxima velocidad, así que no es necesario
especificar una velocidad, pero la experiencia debe ser tu guía.
Si sabes que tu máquina falla en grabaciones a ciertas
velocidades altas (aunque la grabadora sea capaz de grabar), es
mejor reducir la velocidad de grabación y evitar errores
de buffer. Con las grabadoras más nuevas que tienen
tecnología \"burn-proof\" no se obtiene casi
ningún error de buffer.
Copia de disco
Para copiar
directamente desde un CD a otro grabable usá este comando:
$ cdrecord -v dev=0,1,0 speed=4 -isosize /dev/scd0
Este comando direcciona el flujo de datos del contenido del
CD-ROM en /dev/scd0 a la grabadora en dev=0,1,0. No trates de
hacer esto en una máquina muy lenta y/o vieja. El copiado
directo es rápido, pero más susceptible a errores.
Es mejor primero copiar el disco origen al disco rígido, y
luego copiarlo desde ahí al CD en la grabadora:
$ mount /cdrom<br>$ dd if=/dev/scd0
of=/tmp/diskfile.iso<br>$ cdrecord dev=0,1,0 speed=8 fs=8m -v
-eject -dummy /tmp/diskfile.iso Fijáte en el par de nuevas opciones, fs=8m
y -dummy. fs=8m define el tamaño
del buffer, cuando más grande, mejor, hasta cierto punto.
Acordate que las interrupciones son fatales; fs=8m
crea un buffer lo suficientemente grande como para mantener
trabajando a la grabadora si algo enlentece la transferencia de
datos. Si 8 MB no es suficiente, tal vez necesites una mejor PC.
Por otra parte más de 8 MB no es necesariamente mejor, ya
que el sistema operativo puede perder tiempo recargando las
tablas de la MMU (Memory Management Unit). El buffer por defecto
es 4 MB.
-dummy es una opción maravillosa para
hacer un intento antes de hacer la grabación realmente. La
grabadora hace todo lo mismo que sin la opción, pero con
el láser apagado, lo que le da al usuario la
posibilidad de testear y prevenir errores antes de grabar
efectivamente al disco.
Multisesión
Los cds
están internamente compuestos de sesiones, y cada sección
está dividida en pistas. En un disco de una sola sesión,
hay un “lead-in”, una indicador de inicio del disco,
una sola tabla TOC (Table of Contents – \'Tabla de
Contenidos\'), luego los datos y un “lead-out”, un
indicador de finalización que previene posteriores
grabaciones al disco. En un disco multisesión, mkisofs
enlaza las diferentes sesiones en una sola, integrándolas.
La creación de discos multisesión puede ser fácil
con programas gráficos como K3b, XCDRoast o KonCD, pero
ésta es la manera de hacerlo desde la línea de
comando:
La primera vez que grabás una sesión a un disco,
usá el parámetro -multi en cdrecord:
$ cdrecord -v -eject speed=8 dev=0,1,0 -multi test.iso
El disco será cerrado de manera que sea legible y
posible abrirlo para añadir más datos. Para añadir
más sesiones al disco, mkisofs necesita saber
los números del sector de inicio y finalización.
Los cuales podés encontrar así:
$ cdrecord dev=0,1,0 -msinfo <br>0,27139
Asegúrate que el disco al cual estás añadiendo
datos está dentro de la grabadora. Luego añade dos
parámetros, -C y -M:
$ mkisofs -o test2.iso -Jr -V Session2 -C 0,27139 -M
0,1,0 /files/path/ O mejor, dejá que el comando de shell haga el trabajo:
$ mkisofs -o test2.iso -Jr -V Session2 -C `cdrecord
dev=0,1,0 -msinfo` -M 0,1,0 /files/path/ Las unidades de CD leen la última sesión
escrita. Este comando toma la TOC de la última sesión
y la combina dentro de la nueva TOC. Para no hacer esto, y solo
grabar los datos nuevos, omitir la opción -multi.
Conclusión
La
grabación de Cds en Linux es versátil y poderosa.
Las grabadoras pueden ser compartidas en red y usadas en backups
automátizados, mkisofs y cdrecord
ahora también graban DVDs, y aunque hay muchos buenos
front-ends gráficos, la funcionalidad completa solo está
disponible en la línea de comando.
-
Revisa la página home de CDRecord
para obtener más información acerca de downloads,
reportes de bugs, FAQs, y cualquier cosa relacionada acdrecord. -
Encuentra más información acerca de Mount
Rainier en mt-rainier.org. -
El Linux
Kernel HowTo es una guía de como compilar, actualizar
y resolver problemas de Linux en plataformas x86. -
La \"Super
quick guide to compiling a kernel\" (“Guía
Super rápida para compilar un kernel”), te ofrece
un buen recordatorio si compilar es algo que necesitas hacer. -
El CD-Recordable
FAQ de Andy McFadden contesta innumerables preguntas acerca
de CD-Rs. -
\"Knoppix
gives bootable, one-disk Linux\" (\'Knoppix te brinda un
Linux booteable de un solo disco\'), (developerWorks,
Febrero 2003) de Cameron Laird es una excelente introducción
a Knoppix. -
Si recién estás comenzando en Linux, \"Basic
tasks for new Linux developers\" (\'Tareas básicas
para nuevos desarrolladores Linux\'), (developerWorks,
Enero 2003), te enseña como logearte/deslogearte, como
montar y desmontar Cds, como abrir ventanas de terminal y otras
tareas. -
Para obtener un listado completo de unidades de CD-ROM y
CD-RW para computadoras personales IBM ve a la página
de Accesorios de Almacenamiento y Actualizaciones. -
Vas a encontrar más
artículos y tutoriales relacionados con Linux en la
sección Linux de developerWorks.
Acerca de la autora
Carla Schroder es una autora y
escritora independiente, trabaja administrando sistemas Linux y
Windows para PyMEs, y escribiendo Howtos para gente normal. Carla
descubrió las computadoras y la alta tecnología en
1994 y es una prueba viviente que personas autodidactas de edad
media pueden convertirse en gurus de computadoras. Próximamente
publicará un libro en O\'Reilly, The Linux Cookbook.
Podés contactar a Carla en dworks-at-bratgrrl.com.
- Inicie sesión o regístrese para enviar comentarios
- 29662 lecturas

