Pagine

giovedì 3 dicembre 2009

CDRTools - utility per masterizzare e lavorare con CD, DVD, BluRay

Premessa

Il termine "masterizzare" significa memorizzare su un supporto ottico (quali, ad oggi, CD/DVD/BluRay) file di varia natura e genere. La masterizzazione può essere permanente o, nel caso dei riscrivibili, si possono cancellare i dati e sostituirli.
Quando si parla di masterizzazione, la maggior parte degli utenti associa, a questa parola, un famoso software denominato Nero Burning Rom (chiamato per brevità "Nero").
Questo programma indubbiamente molto valido gira esclusivamente su windows (anche se da qualche tempo ho visto che hanno fatto anche la versione alpha per linux) e soprattutto non è gratuito.
Nell'articolo che segue vi propongo un metodo alternativo di gestire i supporti ottici con alcuni strumenti creati su sistemi *unix ma utilizzabili anche su windows (e senza le cygwin...).
I cdrtools sono utility a riga di comando create nel lontano 1996 ed evolute nel tempo.
Esistono svariate interfacce grafiche (GUI) che aiutano l'utente ad utilizzarle senza dover imparare lunghe stringhe di comandi.
In questo articolo, tuttavia, ci concentreremo sulla riga di comando e in prossimi articoli vedremo alcune GUI.

Cdrtools


Copiando direttamente dal sito di riferimento di questo strumento, possiamo vedere che cdrtools è composto dai seguenti software:
  • cdrecord Il programma per masterizzare un CD/DVD/BD
  • readcd Un programma per leggere e clonare CD/DVD/BD multimediali
  • cdda2wav Il più evoluto estrattore CD-audio con il supporto di "paranoia"
  • mkisofs Un programma per creare filesystems ibridi ISO9660/JOLIET/HFS con attributi Rock Ridge opzionali
  • isodebug Un programma per stampare le informazioni di debug di mkisofs
  • isodump Un programma per fare il dump di ISO-9660
  • isoinfo Un programma per analizzare e verificare filesystems ISO/9660/Joliet/Rock-Ridge
  • isovfy Un programma per verificare le strutture ISO-9660
  • rscsi Un demone per abilitare il Remote SCSI

Mkisofs

Questo comando permette di creare delle immagini ISO. Tali immagini sono quelle che il comando successivo, cdrecord, riesce a masterizzare su disco.
Dopo aver raccolto i files e le directory da masterizzare in una unica cartella, è possibile procedere alla creazione della ISO con il seguente comando:
mkisofs -r -o immagine.iso cartellaconfiles
L'opzione -r permette, fedelmente al protocollo Rock Ridge, di memorizzare dentro l'immagine anche informazioni aggiuntive sui files, preservando il nome originario ed impostando i permessi in maniera ottimale per un CD: read/execute globale, write cancellato e i bits special mode sono cancellati perchè inutilizzabili su un CDROM.
Molti CDROM sono avviabili o, per dirla all'inglese, bootable. Questa possibilità è uno standard chiamato “El Torito”.
El Torito gestisce il CD come se fosse un floppy ed il BIOS può avviarlo in fase di boot.
Se si vuole rendere avviabile il CD si necessita di una immagine di floppy adatta.
Qualsiasi CD di una distribuzione linux come Debian, RedHat o altre hanno questa immagine nel proprio CD pronta all'uso: si chiama boot.img.
Prima di creare l'immagine da masterizzare si aggiunga una cartella di nome boot dentro la directory che contiene tutti i files. Si metta il file boot.img in questa sottocartella e si crei l'immagine finale con il seguente comando:
mkisofs -r -b boot/boot.img -c boot/boot.cat -o immagine.iso cartella
Ovviamente l'opzione -b seguita dall'immagine avviabile dichiara cosa deve essere avviato in fase di boot mentre l'opzione -c indica il nome del catalogo (automaticamente creato da mkisofs) richiesto da El Torito.

Mount di una immagine

A questo punto è possibile visualizzare ciò che c'è dentro l'immagine appena creata (o, ovviamente, in una immagine qualsiasi).
Per fare questo bisogna "montare" l'immagine dentro una directory con il seguente comando:
mount -r -t iso9660 -o loop cdimage.iso /mnt 
L'immagine sarà, a questo punto, navigabile come se il suo filesystem fosse dentro /mnt.

Cdrecord

E' senza dubbio il software più interessante della suite.
Prima di tutto è necessario conoscere il bus del masterizzatore. Se questa informazione non è in nostro possesso basta digitare il seguente comando:
cdrecord -scanbus
L'output del comando varia da situazione a situazione e a seconda del supporto usato. In generale dovrebbe assomigliare alla seguente riga
0,4,0  4) 'HP  ' 'CD-Writer+ 9600 ' '1.0a' Removable CD-ROM
A questo punto usando la prima informazione 0,4,0 che ci indica il bus del masterizzatore trovato, siamo in grado di masterizzare una immagine ISO:

cdrecord -v speed=8 dev=0,4,0 immagine.iso
Leggermente diverso il caso in cui, al posto di creare un cd di dati si voglia masterizzare un cd con tracce audio da ascoltare su uno stereo. In tal caso, si devono avere una serie di file in formato WAV in una cartella e digitare il seguente comando (si noti che molti lettori non leggono i CDRW; meglio usare dei CDR):
cdrecord -v dev=0,0 -dummy -dao -useinfo -pad -audio *.wav
Il software restituisce una serie di informazioni estremamente utili per l'analisi dell'esito del comando che riportiamo di sotto:

Cdrecord 2.0 (i686-suse-linux) Copyright (C) 1995-2002 Jörg Schilling
TOC Type: 1 = CD-ROM
cdrecord: Warning: not running as root user, fs= option ignored.
scsidev: '0,4,0'
scsibus: 0 target: 4 lun: 0
Linux sg driver version: 3.1.24
Using libscg version 'schily-0.7'
cdrecord: Warning: using inofficial libscg transport code version
(okir@suse.de-scsi-linux-sg.c-1.75-resmgr-patch '@(#)scsi-linux-sg.c
1.75 02/10/21 Copyright 1997 J. Schilling').
atapi: 0
Device type : Removable CD-ROM
Version : 4
Response Format: 2
Capabilities : SYNC
Vendor_info : 'HP '
Identifikation : 'CD-Writer+ 9600 '
Revision : '1.0a'
Device seems to be: Generic mmc CD-RW.
Using generic SCSI-3/mmc CD-R driver (mmc_cdr).
Driver flags : MMC-2 SWABAUDIO
Supported modes: TAO PACKET SAO SAO/R96R RAW/R96R
Drive buf size : 4183552 = 4085 KB
FIFO size : 4194304 = 4096 KB
Track 01: data 648 MB
Total size: 745 MB (73:50.37) = 332278 sectors
Lout start: 745 MB (73:52/28) = 332278 sectors
Current Secsize: 2048
ATIP info from disk:
Indicated writing power: 7
Is not unrestricted
Is not erasable
ATIP start of lead in: -11597 (97:27/28)
ATIP start of lead out: 336601 (74:50/01)
Disk type: Short strategy type (Phthalocyanine or similar)
Manuf. index: 20
Manufacturer: Princo Corporation
Blocks total: 336601 Blocks current: 336601 Blocks remaining: 4323
RBlocks total: 346489 RBlocks current: 346489 RBlocks remaining: 14211
Starting to write CD/DVD at speed 12 in real TAO mode for single
session.
Last chance to quit, starting real write 0 seconds. Operation
starts.
Waiting for reader process to fill input buffer ... input buffer ready.
Performing OPC...
Starting new track at sector: 0
Track 01: 648 of 648 MB written (fifo 100%) [buf 99%] 12.1x.
Track 01: Total bytes read/written: 680501248/680501248 (332276
sectors).
Writing time: 400.168s
Average write speed 11.9x.
Min drive buffer fill was 99%
Fixating...
Fixating time: 22.958s
cdrecord: fifo had 10719 puts and 10719 gets.
cdrecord: fifo was 0 times empty and 10592 times full, min fill was 93%.

Tra le informazioni di maggiore importanza c'è l'ultima riga che informa se la coda FIFO è sempre vuota. Se questo numero è sempre basso o si abbassa durante il processo, è necessario chiudere le applicazioni che occupano troppa CPU durante la masterizzazione.

Conclusioni


Molte persone, per pigrizia, tendono a snobbare i software senza interfaccia grafica. C'è da dire che i CDRTools sono dei programmi potentissimi sui quali tutte le interfacce di masterizzazione presenti su linux si basano.
Inoltre, se usati su un PC vecchio, si può trasformarlo in stazione di masterizzazione sempre pronta ed evitare di aggiungere masterizzatori sulla macchina usata tutti i giorni.

Nessun commento:

Posta un commento