On Tuesday 02 December 2003 13:04, Antonio Castro wrote:
> On Mon, 1 Dec 2003, Ramiro Aceves wrote:
> > Hola amigos.
> >
> > Animado por la interesante discusión, instalé afio pero no logro que me
> > funcione correctamente para grabar en un CD con cdrecord tal y como dice
> > la página del man. Una vez grabado el CD, al tratar de verificarlo con
> > afio -r /dev/scd1, funciona bien pero al llegar los últimos archivos da
> > error. ?Alguien me puede pasar exactamente el comando en vuestro sistema?
> > Yo hacía (sin comprimir):
> >
> > find . -depth -print0 | afio -oxv0 -b 2048 -s 325000x '!cdrecord -v
> > speed=4 dev=0,1,0 -'
> >
> > Luego, verificaba con
> > afio -rv /dev/scd1
>
> Si tienes CDs regrabables puede que tengas que hacer unas cuantas
> pruebas. parece que en este ejemplo afio es informado de
> entregar la información por bloques pero que pasa con el
> último bloque ?  Si el último bloque no se llena quizas no
> lo entregue y naturalmente cdrecord no grabará el último
> bloque.  Se pueden intentar varias cosas:
>
> a) Verifica con isoinfo el tamaño tehorico del sistema de ficheros
> y comparalos con el número de bytes grabados. El número de bytes
> grabados debe ser igual o mayor que el valor entregado por isoinfo.
>
> b) En lugar de grabar al vuelo grabar primero la imagen en disco y
> luego pasarla a CD.
>
> c) Mirate el man de cdrecord y haz que grabe algunos bytes de más
> al final, aunque creo que es eso lo que hace por defecto.
>
> b) Create un fichero basura suficientemente grande y lo pasas como
> último nombre a afio.
>
>       find . -depth -print0 > /tmp/find.out
>       head --bytes=2048k < /dev/zero > /tmp/head.out
>       echo /tmp/head.out >> /tmp/find.out
>       cat /tmp/find.out | afio -oxv0 -b 2048 -s 325000x '!cdrecord ...
>
> > No sé si es correcto, porque con este "megacomando" cualquiera se
> > confunde    :-)
> > No estoy muy convencido de la parte final del comando.
> > He probado con CDRW nuevos y me da el mismo resutado.
>
> Estupendo probar con CDRW es lo adecuado en estos casos.
>
> Yo creo que con lo que te cuento seguro que logras hacerlo
> funcionar y deberías comprobar que tal se comporta la solución
> elegida en multivolumen. Creo que la complicación del comando
> merece la pena si logras un buen comportamiento en multivolumen.
>
> En realidad lo de -b 2048 -s 325000x parece pensado para el
> tratamiento de CDs de 650Mbytes no ?
>
> Tampoco te fies de lo que yo te cuento. Son ideas. Repasa los man
> de afio y de cdrecord y asegurate de los tamaños de bloques y cosas
> así. O eso o espera a que alguien te de la receta ya terminada. :-)
>
>
> --
> Un saludo
> Antonio Castro
>
>        /\     /\   Ciberdroide Informática
>          \\W//  << http://www.ciberdroide.com >>
>         _|0 0|_
> +-oOOO-(___o___)-OOOo---------------------+
>
> | . . . . U U . Antonio Castro Snurmacher |
> | . . . . . . . [EMAIL PROTECTED]   |
>
> +()()()---------()()()--------------------+

Vi este articulo y supuse que te puede servi, bueno, me tome mi tiempo para 
pasarlo. es sobre samba pero tiene la parte de grabacion de Cd que te puede 
ineteresar. (disculpen errores de tipeo)

saludos.

andres dv.

Articulo
        Pseudoimpresoras Samba
        Por Roderick W. Smith
        Revista Linix Magazine (edicion española)

listado 2: definicion de una comprticion grabadora de CD-R
[smbcdr]
  comment = Create a CD-R
  path = /var/spool/samba
  printable = Yes
  max connections = 1
  print command = /usr/local/bin/smbcdr %H %s %U /var/spool/samba


Listado 3: El script smbcdr tuesta ficheros en CD-Rs
#!/bin/sh
HomeDir=$1
ArchiveFilename=$2
Username=$3
SharePach=%4
TempPatch=/tmp/cdr/$ArchiveFilename
MaxCdrSize=665600

mkdir -p $TempPath
cd $TempPath
unzip $/SharePach/$ArchiveFilename
rm $/SharePach/$ArchiveFilename

# Comprobar el tamaño del CD-R
CdrSize='du -sk $TempPath | cut -f 1'
if [ $CdrSize -lt $MaxCdrSize ]
  then
    mkisofs -J -r -o $Homedir/image-$ArchiveFilename.iso \
            -log-file /tmp/$ArchiveFilename ./
    cdrecord speed=2 dev=4,0 $Homedir/image-$ArchiveFilename.iso
    cat /tmp/$ArchiveFilename | mail -s "CD-R Creation finished" \
            $Username
    rm $Homedir/image-$ArchiveFilename.iso /tmp/$ArchiveFilename
  else
    mail -s "Too many files to burn CD-R ($CdrSize kilobytes)!" \
            $Username
fi
cd ..
rm -r $TempPath


Articulo de la revista
Grabacion de CR-Rs
Las grabadoras cd CRs hoy en dia son bastante comunes, pero para nasa 
universales. Muchos equipos siguen sin teneer estos dipositivos. En una red 
pequeña, es muy posible que solamente una maquina disponga de uno, pero 
deseamos que todos los usuarios puedan acceder a el. Una manera de 
conseguirlo es de utilizar una pseudo-impresora compartida Samba para 
automatizar el proceso de creacion  CD-Rs-
En el Listado 2 podemos ver una configuracion de pseudo-impresora compartida 
Samba que, en conjuncion con el script mostrado en  LISTADO ·; CREAN UN CDR a 
partir de u ficheros almacenados en un archovo zip que proviene del cliente 
(tal y como ocurria en el Listado 1, el Listado 2 forma parte de un fichero 
smb.conf mas largo). Añadimos el Listado 2 a nuestro smb.conf y copiemos el 
Listado 3 a un archivo que guardamos en /usr/bin/smbcdr. Le daremos permiso 
de ejecucion a este ultimo archivo teclando "chmod a+x /usr/bin/smbcdr". 
Deberemos re-arrancar Samba para hacer accesible la impresora compartida.
Como se puede observar, la seccion de Samba no es my compleja, aunque pasa 
variables al script que utiliza para tostar el CD (con Samba 2.0x podemos 
pasarle la variable %P en ver del directorio persona de la comparticion, pero 
en las versiones 2.2x, %P no funciona en este contexto). La mayoria del 
trabajo se lleva a cabo en el script smbcdr que se muestra en el Listado 3. 
Este script hace varias cosas:
 + Primero establece el nombre del directorio temporal que contendra los 
ficheros a tostar y establece la variable %MaxCdrSize al maximo tamaño del 
CD-R en Kilobytes.
   El Listado 3 supone un CD-R de 650 MB.
 * El script monta un directorio ara contener los ficheros CD-R descomprime el 
archivo que recibe del directorio del cliente. El Script tambien elimina el 
fichero archivo original.
 * El script calcula el tamaño de los ficheros en el directorio de contenido 
CD-R y asigna ese calor a la variable $CdrSize.
 * El script utiliza el tamaño computado de los archivos para determinar si 
debe o no tostar el CD. Si los ficheros caben en el CD, el Script crea una 
imagen utilizando mkisofs y a continuacion tosta la imagen en el CD 
utilizando cdrecord. No hemos de olvidar configurar la instruccion cdrecord 
para que se adapte a nuestro sistema. Debemos ajustar el valor de la 
velocidad a algo apropiado para nuestra grabadora y establecer el SCSI ID de 
la grabadora con el parametro dev.

 Esta configuracion, o algo muy parecido, deberia funcionar para la mayoria de 
los sistemas Linux que tienen grabadoras CD-R(W). Sin enbargo, debemos 
establecer el binario cdrecord a SUID root (escribiendo chmod o+s 
/usr/bin/cdrecord funciona en la mayoria de los sistemas). Tambien se puede 
utilizar force user en la definicion de comparticion Samba para establecer el 
nombre de usuario a alguno que pueda correr cdrecord.
 Una cosa para tener en cuenta que es muy importante es que el servidro Samba 
ha de tener una cantidad adecuada de espacio en disco de los directorios 
criticos. El Listado 2 y 3 almacenan ficheros temporales potencialmente muy 
grandes en /VAR/spool/samba, /tmp y en el directorio personal del usuario. Se 
puede cambiar las localizaciones de los directorios a cualquier sitio donde 
se tenga espacio en el sistema , pero en todo caso se ha de tener sitio 
suficiente como para almacenar el equivalente a dos CDs enteros de datos.
 etc...

Responder a