Grabando CD's y DVD's en Linux
# $Id: GrabacionDeCDsenLinux.txt,v 1.9 2005/11/14 12:52:24 JorgeDElia Exp apache $
COMO GUARDAR DATOS GENERADOS EN LINUX EN UN CD USANDO UNA GRABADORA
INSTALADA EN UNA MAQUINA CON WINDOWS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Para aquellos que quieran guardar datos en un CD desde Linux,
grabandolos en una grabadora que esta en una maquina Windows, como la
que esta en Orion, aca van unos pequenhos hints.
USANDO TAR
==========
Una posibilidad (la mas evidente) es hacer un tar grande con todos los
datos
$ tar cvf MISDATOS.tar MISDATOS
(suponiendo que queremos bajar todo el directorio MISDATOS). moverlos
a la maquina Windows y grabarlos como un archivo comun. (Acordarse de
hacer la transferencia con ftp como `binary'). Esos datos despues los
podes var en una Linux montando el CDROM y extrayendo o viendo el
contenido con `tar' o en una maquina Windows con `WinZip' o en
cualquier UNIX donde se pueda montar el CD (por ejemplo en las
Alpha). . La desventaja de esto es que el acceso bajo Linux de los
datos a trves del tar es medio hincha. Seria deseable poder montar el
CD y verlo como un disco mas para poder recorrer directorios, hacer
`find' etc...
COMO IMAGEN DE DISCO
====================
Existe entonces la siguiente posibilidad alternativa: crear una imagen
del CD en un archivo y grabar este archivo en el CD. Despues se monta
el CD por ejemplo en /cdrom y se monta el archivo como un filesystem
en otro lugar, por ejemplo /mnt. Esto usa una propiedad (que no se si
es comun en todos los Unix) que es que podes montar imagenes de
filesystems (podria ser tambien una imagen de un filesystem ext2 (el
nativo de Linux, o un MSDOS o VFAT)) que residen en archivos.
Los pasos a seguir son:
1./ Crear la imagen del CD con
$ mkisofs -r -o MISDATOS.img MISDATOS
2./ Copiarlos a la maquina Windows (siempre en binario!!) con ftp o
similar.
3./ Hacer el copiado al CD de MISDATOS.img como un archivo estandar.
4./ Para ver los datos en Linux hay que hacer
$ mount /cdrom
$ mount -t iso9660 -o ro,loop=/dev/loop0 MISDATOS.img /mnt
y ves los datos en /mnt como si fuera un filesystem normal.
La desventaja de este metodo es que no se puede acceder a los datos
sino es desde una Linux.
Para despues chequear
COMO IMAGEN DE DISCO EXT2
=========================
Para crear una imagen ext2
1./ Crea el archivo
$ dd if=/dev/zero of="BACKUP.img" bs=1024k count=350
2./ Da la estructura de filesystem
$ /sbin/mke2fs BACKUP.img
2./ Monta el fs
$ su -c 'mount -t ext2 -o loop=/dev/loop1 BACKUP.img /mnt'
3./ Copia con tar para preservar permisos estc...
$ cd /mnt
$ tar -cvf - -C /x mstorti -X /x/scratch/mstorti/exclude | tar xvf - # copia
4./ Guardar un listado de lo que contiene el backup
$ ls -lR /mnt/mstorti/ >BACKUP_ls-lR.txt
$ find /mnt/mstorti/ >BACKUP_find.txt
5./ Desmontar
$ su -c 'umount /mnt'
6./ Copiar tambien este `Linux_Cd_Write_HOWTO.txt'
7./ Para chequear el disco hacer
$ /sbin/e2fsck -nf /cdrom/BACKUP.img
Grabacion de DVD's
==================
En este momento (Mon, 28 Jun 2004) se estan consiguiendo DVD's de
4.7GB a u$s 2. La unidad para grabar DVD's cuesta u$s 140, con lo cual
es una opcion muy buena para hacer backup.
Basicamente los DVD's se graban igual que los CD's, pero el `cdrecord'
que viene por default no graba sobre DVD's. Si lo hacen en `minerva'
basta que usen `/u/mstorti/bin/dvdrecord'. Se crea la imagen del DVD
con `mkisofs', por ejemplo.
$ mkisofs -r -o petsc.iso /u/mstorti/PETSC
y despues se graba (ojo, como root):
# /u/mstorti/bin/dvdrecord -sao -v speed=8 dev=0,0,0 -data petsc.iso
# /u/mstorti/bin/dvdrecord -sao -v speed=8 dev=/dev/hdd -data petsc.iso
Hay que usar la opcion '-sao'.
Detalles de instalacion de cdrecord-ProDVD
==========================================
Hay que bajarse el cdrecord-ProDVD de
ftp://ftp.berlios.de/pub/cdrecord/ProDVD/
Para linux es el `cdrecord-prodvd-2.01b31-i686-pc-linux-gnu'. Yo lo
tengo en `minerva:/u/mstorti/bin_exe'. Es free para uso personal, pero
para usarlo hay que definir una variable de entorno
`CDR_SECURITY'. Eso lo tengo en un script wrapper en
/u/mstorti/bin/dvdrecord.
La pag. web de `cdrecord' es
http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html
Para instalar las grabadoras
============================
Tanto las grabadoras de CD como DVD deben instalarse `emulando
SCSI'. Es decir hay que poner el comando
modprobe ide-scsi
en `/etc/rc.local'. Ojo que de esa forma levanta todas las unidades de
CD como `ide-scsi'. A partir de ahi las unidades se ven como `/dev/scd0',
`/dev/scd1' ...
Grabando en multisesion
=======================
Permite ir agregando contenido al CD.
Todas las grabaciones se deben hacer con la opcion -multi. Para la
segunda grabacion y posteriores se debe hacer la imagen de disco en
forma especial, como se explica a continuacion.
Hacer
#cdrecord -msinfo dev=0,0,0
eso tira dos numeritos enteros start,end, por ejemplo 197629,266976
Crear la imagen de disco con
las opciones -M y -C,
# mkisofs -M 0,0,0 -C start,end -r -o [imagen-de-disco] [directorio]
por ejemplo
# mkisofs -M 0,0,0 -C 197629,266976 -r -o mydata.img mydata
* Grabar con la opcion -multi por ejemplo:
# cdrecord -multi -v speed=8 dev=0,0,0 -data run_new.img
En estos ejemplos el device scsi es '0,0,0' (como en minerva), si no
cambiarlo por el device apropiado.
Los comandos cdrecord deben hacerse como root, el mkisofs puede
hacerse como user.
Como usar `md5sum' para chequear un CD
======================================
Si queremos verificar que el CD fue grabado correctamente entonces
podemos comparar bit a bit la imagen de disco con la copia, por
ejemplo
$ diff mstorti.iso /dev/hdd
pero en realidad es mejor usar `md5sum'. El programa `md5sum' genera
una `huella digital' (fingrprint) del archivo. La huella digital es un
numero hexa de 32 digitos:
[root@minerva backup]# md5sum dalcinl.iso
ae1b5af9493ed2b634707a71785c64a6 dalcinl.iso
[root@minerva backup]#
Si dos archivos tienen la misma huella digital entonces lo mas
probable es que sean iguales. Obviamente no hay una relacion biunivoca
entre un archivo y su huella digital, pero puede demostrarse que el
algoritmo para encontrar un archivo que de una cierta huella digital
es NP en la longitud de la huella digital, de manera que es muy poco
probable que dos archivos tengan la misma huella digital. Para tomar
la huella digital del CD grabado hay que tomarselo directamente al
device
[root@minerva backup]# dd if=/dev/scd0 | md5sum
6101632+0 records in
6101632+0 records out
ae1b5af9493ed2b634707a71785c64a6 -
[root@minerva backup]#
Con `cdrecord' he tenido problemas en que al tomar el md5sum de un
archivo da un error y la huella reportada no corresponde con la del
archivo. Ademas las longitud (en sectores) de la imagen y del archivo
leido no son iguales. Sin embargo la huella del CD es correcta si se
fuerza a `dd' a tomar el numero correcto de sectores, con lo cual en
principio la grabacion esta bien. Por otra parte la huella de
distintas grabaciones de la msisma imagen resulta ser igual. De manera
que, yo en general lo que hago es grabar y tomar nota de la huella del
CD (no de la imagen) y del numero de `records' que reporta, como en el
ejemplo previo.
Con `cdrecord-proDVD' no existe ese problema. La huella del archivo y
la del DVD son exactamente iguales.
En geronimo no se pueden generar archivos >2GB
========================================================
El RH7.1 de geronimo se rehusa a crear archivos de mas de
2GB. Entonces para poder llevar los archivos a minerva hago lo
siguiente. Mando la salida del tar por stdout a un split
$ tar cvf - -C /u/mstorti/PETSC/RUN_2/ | split -b 1000M - run2
Esto genera "on de fly" archivos `run2aa', `run2ab', etc... de
1GB. Los archivos se llevan a minerva, y ahi se recupera toda la
estructura de directorios.
$ cat run2* | tar xvf -a
Entonces como ahora en minerva se pueden generar archivos de >2GB se
generan las imagenes ISO ahi y se graban.
Para que las grabaciones sean `compatibles' con Windows
=======================================================
mkisofs' genera normalmente imagenes en formato ISO9660 con extensiones
Rock-Ridge. Esto garantiza nombres largos, e ilimitados niveles de
profundidad en los disrectorios. Sin embargo esos CD si se llevan a
Windows se ven mal, con nombres truncados tipo 8.3 (8 letras para el
nombre y 3 para la extension). Para que se vean bien en Windows hay
que usar la extension Joliet que se obtiene con la bandera `-J' para
`mkisofs':
$ mkisofs -r -J -o mstorti.iso mstorti
Mon Sep 25 18:37:15 ART 2000