Con una macchina abbastanza potente (almeno un PII 350 o equivalente; ma c'è chi ci riesce anche con processori meno performanti) è possibile saltare la fase di creazione dell'immagine iso, passando l'output di mkisofs direttamente in pasto a cdrecord.
IMG_SIZE=`mkisofs -R -q -print-size dir_da_esportare/ \ 2>&1 | sed -e "s/.* = //"` echo $IMG_SIZE [ "0$IMG_SIZE" -ne 0 ] && mkisofs -r dir_da_esportare/ \ | cdrecord speed=4 dev=0,0,0 tsize=${IMG_SIZE}s -data - |
Il trattino finale non è un errore, indica di prendere i dati dallo standard input. L'impostazione della variabile IMG_SIZE serve per verificare la dimensione dell'immagine che mkisofs andrà a creare. Questo parametro verrà passato a cdrecord con l'opzione "tsize". Perché questo casino? Perché alcuni masterizzatori non ne vogliono sapere di cominciare questa operazione senza prima conoscere la dimensione del file immagine. Se il vostro non è uno di questi potete anche saltare ed usare una banale pipe
mkisofs -v -l -T -r -D -J /dir/da/esportare | \ cdrecord -v -eject speed=8 dev=0,0,0 -data - |
Se volete semplicemente fare una copia di un cd distinguiamo 2 casi:
Avete un lettore cdrom (/dev/scd1) ed un masterizzatore (/dev/scd0):
cdrecord -v dev=0,0,0 speed=8 -isosize /dev/scd1 |
Non avete anche un lettore, ma solo un masterizzatore, per cui sarete costretti a crearvi un'immagine sull'hard-disk del cd che volete copiare:
dd if=/dev/scd1 of=immagine.iso |
Nota: Al posto di dd potete usare anche dd_rescue, un tool più avanzato, che in caso di errori nel cd originale (reali o da psx ;-) ) continua comunque a generare il file immagine.
Ovviamente immagine.iso è il file che passerete come argomento a cdrecord per la successiva masterizzazione:
cdrecord -v -eject speed=8 dev=0,0,0 -data immagine.iso |