MegaLab.it
Stampa Articolo
Aperiodico gratuito di informatica
 
20091008163806_169672075_20091008163736_870929336_burn_spotlight.png

Masterizzare un CD/DVD in GNU/Linux usando solo comandi testuali

a cura di masterz3d
28/05/2010 - articolo
Linux & Open Source - Creare un disco ottico per l'immagazzinamento di dati usando solo la riga di comando è più semplice di quanto immaginiate. Dopo questa lezioncina potrete dimenticare k3b, brasero, gnomebaker, xcdroast e compagnia bella.

Non è difficile scrivere un CD o DVD usando soltanto strumenti testuali. L'importante, come sempre, è sapere come si può fare e quali applicazioni servono a questo scopo. La lista seguente illustra i programmi fondamentali per raggiungere il nostro traguardo.

Dovete sapere che quasi tutti i programmi di scrittura CD/DVD non sono altro che frontend di applicazioni testuali preesistenti. I frontend non fanno altro che "dare le opzioni giuste" a questi programmi per far loro fare il loro dovere.

La domanda più importante che potrebbe ora frullarvi in testa è: "Ma allora, con quali opzioni noi possiamo fare via terminale quello che normalmente facciamo con l'ambiente grafico? "

Con questo articolo tenterò di rispondervi in modo esauriente.

A proposito di wodim

Wodim (write optical disk media) è un programma della suite di cdrkit, derivata da cdrtools, compatibile con le opzioni di cdrecord, e sebbene possa essere considerato una alternativa ad esso, non è in alcun modo approvato, mantenuto o favorito dagli autori originali di cdrtools.

Se state usando Ubuntu, c'è una probabilità molto alta che il cdrecord che state usando voi non sia altro che un link simbolico o un wrapper a wodim. Ciononostante, data la compatibilità delle opzioni, considererò wodim come alternativa di cdrecord, e siccome si evocano allo stesso modo non farò distinzioni tra essi.

Esistono tuttavia delle controversie tra gli autori originali di cdrtools e le varie versioni modificate e incorporate in alcune distribuzioni GNU/Linux. Personalmente consiglio, qualora possibile, l'utilizzo della suite originale cdrtools, ma, ai fini dell'articolo, non è fondamentale.

Come ottenere i programmi fondamentali

Mentre la via migliore è sempre la compilazione dei sorgenti, la via più semplice è reperire i pacchetti precompilati per la propria distribuzione. Ovviamente potreste averli già, e in questo caso vi basta richiamarli da terminale. Se vedrete un messaggio con scritto command not found potete passare ad installare le applicazioni che vi servono.

Pronti per cominciare

Bene, ora dovreste avere tutto il necessario. Mancano solo le nozioni teoriche, e poi possiamo passare a "bruciare" dischi usando solo la tastiera ed un terminale testuale.

Un po' di teoria: buffer underrun

Forse avete già sentito parlare di scrittura "on-the-fly" su disco ottico, probabilmente con Nero Burning ROM o programmi per masterizzare in Windows. Dovete sapere che la scrittura "on-the-fly" non è sicura al 100%. In sostanza si tratta di creare il formato di dati scrivibile e, contemporaneamente, scriverlo su CD o DVD mano a mano che viene generato dal programma responsabile.

Così facendo si può andare incontro a quelli che vengono chiamati in gergo buffer underrun, ovvero situazioni in cui il buffer del masterizzatore si svuota del tutto e non ha più dati da scrivere su disco. Il fatto in sé non costituisce un problema; può diventare un problema se si svuota durante il processo di scrittura dal buffer al disco. Una situazione ottimale si ha quando il buffer è sempre occupato, ma se il bus di trasferimento dati non è abbastanza veloce il buffer underrun è sempre in agguato.

Può succedere se il sistema è sovraccaricato, ad esempio state guardando un clip video mentre scaricate qualcosa con un browser come Firefox in background, quando codificate una traccia audio e state formattando la chiavetta USB che dovrà ospitare la compilation che state creando con un software...

Certo, scenari come questo sono alquanto improbabili, ma anche i processori commerciali più moderni e veloci hanno i loro limiti, specialmente se nel sistema c'è un "collo di bottiglia", come un bus USB 2.0 da e per il masterizzatore, nel caso in cui i dati da masterizzare risiedano in un disco esterno e abbiate un masterizzatore esterno USB: ricordate che l'USB 2.0 non può andare più veloce di 60MB/s, e molto spesso quei 60MB/s ve li sognate!!

Quindi, con tutto questo sproloquio vi vorrei mettere in testa che è sempre meglio generare prima la struttura dei dati da scrivere su CD o DVD, e soltanto poi scriverla. Ed ecco che arriviamo alla generazione dei filesystem ISO9660.

ISO9660

I dati non vengono scritti "nudi e crudi" sul supporto ottico, ma devono prima essere incapsulati in un particolare tipo di filesystem chiamato ISO9660 (o CDFS, Compact Disc File System), contrapposto a UDF (Universal Disc Format).

Qualche parola su UDF e sulla compatibilità dei filesystem

UDF è un filesystem ideato e ottimizzato per la memorizzazione su dischi ottici, come ISO9660, ed è più recente di ISO9660. Ciononostante si possono verificare alcuni casi in cui un sistema operativo non sia compatibile con UDF e non riesca a leggerne i contenuti. Un esempio è Windows XP Service Pack 2, che non può leggere filesystem UDF versione 2.00, a meno che non venga installato il Service Pack 3.

Per questo motivo, in fase di creazione di un filesystem CD o DVD è sempre consigliato, ma non indispensabile, costruire filesystem ISO9660 in virtù della loro compatibilità intrinseca con sistemi operativi anche obsoleti, da Microsoft Windows 95 in su (addirittura MS-DOS lo supporta, con l'estensione MSCDEX.EXE caricata in memoria all'avvio e l'estensione LFN per nomi di file lunghi), o versioni molto vecchie del kernel Linux.

Quindi...

In conclusione, per tutto l'articolo terremo in considerazione solo filesystem ISO9660 che, in questa occasione, potremo chiamare anche "filesystem ISO", o più semplicemente "immagine ISO", o soltanto "ISO".

Creazione immagini ISO con mkisofs

Useremo mkisofs per generare i filesystem ISO da scrivere successivamente su CD o DVD di dati, o per creare DVD video da leggere comodamente seduti nel salotto di casa grazie ad un comune lettore DVD. La procedura per generare i CD audio è molto diversa e merita un discorso a parte alla fine dell'articolo. Se vi interessa soltanto generare un CD audio leggibile da un qualsiasi lettore CD, potete saltare direttamente a questa pagina.

Creazione di immagini ISO per DVD video

Creare un filesystem ISO per DVD video è molto semplice, dato che mkisofs contiene una configurazione di default per la generazione di un formato ISO compatibile con i comuni lettori DVD casalinghi.

Do per scontato che esista già la struttura DVD video adatta ad essere incapsulata nel filesystem DVD. Nel caso non abbiate idea di come si faccia, fate riferimento al mio articolo su come creare un DVD video partendo da un AVI.

Detto questo, il comando è il seguente:

mkisofs -dvd-video -o <immagine_ISO> <struttura_DVD>

L'ultimo passo dopo la generazione dell'immagine è la masterizzazione su DVD, e che sia singolo o doppio strato (fino a 4.7GB nel primo caso e fino a 8.5GB nel secondo caso) il procedimento è identico: si fa con growisofs e lo descrivo in questa pagina.

Come creare immagini ISO per CD o DVD dati

Il discorso è abbastanza semplice. Prima di tutto dovete identificare quali sono i dati che volete trasferire su CD o DVD per farne un backup o per una semplice copia da distribuire. Una volta fatto, create una cartella di destinazione in una locazione a piacere, ad esempio la home del vostro utente:

mkdir ~/destinazione

Ricopiate poi tutti i dati nella cartella che avete appena creato, e organizzateli come volete. Al termine di questo passaggio avrete già la struttura del disco pronta per essere trasferita nel filesystem ISO. Non è necessario entrare nella cartella destinazione, ma basta sapere dove generare l'ISO finale.

A proposito delle dimensioni

Prima di cominciare, prestate attenzione alla dimensione totale dei dati che avete accumulato. Se non è più grande di 700 MB potete usare un semplice CD-R. Se supera i 700 MB prendete prima di tutto in considerazione la possibilità di spezzare i dati in più CD, a meno che non diventi antieconomico (se tre CD vi costano più di un DVD potete prendere e buttare tutto su un DVD, in sostanza) o una scelta materialmente impraticabile (nelle vostre custodie avete un solo spazio per un disco ottico).

Nel caso dobbiate o vogliate dividere i dati tra più CD o DVD, quindi, dovete separare i contenuti dei dischi in più cartelle, fino a raggiungere delle dimensioni massime che possano essere contenute nei singoli CD o DVD.

Mkisofs

Adesso cominciamo a studiare mkisofs. L'invocazione più semplice è la seguente:

mkisofs -o <immagine_ISO> <cartella>

Altre opzioni

Per ottenere risultati migliori nella creazione dell'immagine ISO dovremo studiare altre opzioni, tra cui:

Riassumendo, per creare un CD o un DVD di dati standard la riga di comando sarà la seguente:

mkisofs -J -R -V <nome_volume> -iso-level 3 -o <immagine_ISO> ~/destinazione

I dischi risultanti saranno compatibili con tutti i sistemi operativi Microsoft Windows, Mac OS e Mac OS-X e tutte le distribuzioni GNU/Linux attuali esistenti.

In conclusione

Al termine della generazione avrete la vostra immagine ISO pronta per essere scritta su CD o DVD. Se volete verificarne i dati prima di scriverla, magari per accorgervi se avete fatto qualche errore, potete sempre montarla come filesystem ISO usando questa guida.

Se siete pronti, possiamo passare alla fase successiva: la masterizzazione.

Qualche parola a proposito dei permessi

Potreste aver bisogno di sudo per masterizzare. Molte volte i masterizzatori in GNU/Linux hanno permessi di sola lettura per chiunque tranne che per l'utente root, ma potrebbero esistere dei link simbolici che permettono la scrittura anche agli utenti normali. Potrebbero variare da sistema a sistema, ma solitamente rispecchiano dei nomi standard come /dev/cdrw, /dev/cdrom, /dev/cdrecorder, /dev/dvd, /dev/dvdrw, /dev/sr, eccetera.

Se nemmeno sudo funziona potreste aver bisogno dei permessi di root, e quindi dovrete digitare su seguito dalla password di root. A meno che il vostro utente non sia nel gruppo cdrom. Potete verificarlo con groups. Se non è presente il gruppo cdrom dovete aggiungerlo con usermod:

sudo usermod -a -G cdrom <utente>

Come fare per copiare un disco?

Il processo di copiatura di un disco è elementare. Partiamo dal presupposto che i dati che risiedono su un CD o un DVD siano un filesystem ISO già bell'e pronto. Non dobbiamo fare altro che farne un clone con un semplicissimo comando:

cat /dev/sr0 > <immagine_ISO>

La redirezione (il simbolò>') permette di riversare tutti i dati, byte per byte, dal disco nel lettore in una locazione temporanea, ovvero un disco rigido, una memoria Flash USB, eccetera. Oppure potete ricorrere ad una invocazione ad hoc di dd, come descritto in questo articolo.

Il filesystem ISO creato (<immagine_ISO>) potrà poi essere ricopiato a piacimento su un numero illimitato di supporti. Assicuratevi di avere spazio sufficiente per ospitare l'immagine ISO che andrete a creare.

Potete determinare la periferica di masterizzazione (nell'esempio /dev/sr0) visitando /dev oppure riferendovi a questa pagina.

Quale programma usare?

Solitamente io uso cdrecord per tutti i CD, e growisofs per tutti i DVD. Notate che cdrecord può essere usato anche per scrivere su DVD, ma la struttura del comando di growisofs è molto più semplice ed ha alcune configurazioni di default che invece in cdrecord è necessario specificare, in particolare per quanto riguarda la scrittura di DVD a doppio strato. Quindi possiamo concludere che:

Masterizzare con cdrecord (o wodim)

Identificate il filesystem ISO che avete creato e lanciate questo comando:

cdrecord dev=<masterizzatore> -eject -v -raw96r speed=16 driveropts=burnfree <immagine_ISO>

Confermando il comando (ricordate di mettere il CD nel masterizzatore, è una distrazione molto comune!!) inizierete il processo di scrittura. Raccomando sempre di lasciare il computer il più possibile tranquillo mentre masterizza, così ridurrete al minimo le brutte sorprese dovute al buffer underrun.

Al termine del processo il CD uscirà da solo e lo potrete controllare sullo stesso computer o su un altro PC con un qualsiasi sistema operativo.

Alcune precisazioni su cdrecord

Notazione SCSI di cdrecord

Invocando cdrecord -scanbus vi verrà mostrata una lista come la seguente:

Cdrecord_scanbus.png

Nella prima colonna di sinistra ci sono delle coordinate SCSI (2,0,0 - 2,1,0 -...) usate da cdrecord per identificare in modo univoco le periferiche USB o SATA nel sistema. Sostituendo la coordinata SCSI al nome di periferica Linux avrete lo stesso risultato. Per esempio, il masterizzatore nel mio sistema è /dev/sr0, ma è identificato da cdrecord come 3,0,0. È un masterizzatore LG GH22LS50. Quindi l'invocazione risultante è la seguente:

cdrecord dev=3,0,0 -raw96r -v -eject speed=16 driveropts=burnfree <immagine_ISO>

È equivalente all'invocazione tramite blocco di periferica, ma questo metodo permette di... non sbagliare masterizzatore.

Masterizzare con growisofs

Growisofs è un programmino molto interessante perché può scrivere DVD-R/RW, DVD+R/RW singolo e doppio strato senza problemi né opzioni aggiuntive. Le linee di comando per scrivere DVD o DVD-DL sono identiche; growisofs si accorge da solo se il DVD è singolo o doppio strato e si configura automaticamente per il layer switch o layer jump (ovvero la calibrazione del laser e il calcolo dei settori per la scrittura nel secondo strato del DVD-DL).

La linea di comando di growisofs è molto semplice:

growisofs -Z /dev/sr0=<immagine_ISO> -speed=4

Come detto precedentemente, l'invocazione di growisofs è molto semplice, e vale sia per DVD singolo strato (4.7GB) che per DVD doppio strato (8.5GB).

Creare un CD audio partendo da file MP3

In questo caso la questione è più complessa. Se partiamo da dei file MP3 dobbiamo prima convertirli in un formato leggibile da un comune lettore CD, e gli MP3 sono dei flussi audio compressi.

1. Raggruppamento degli MP3

Prima di tutto raggruppiamo tutti gli MP3 che vogliamo mettere su CD in una cartella separata, con un nome a piacere in una locazione a piacere. Per esempio, la creiamo nella home dell'utente e la chiamiamo cd.

mkdir ~/cd

Quindi ricopiamo (o spostiamo) gli MP3 da trasferire nella cartella appena creata. Al termine del trasferimento entriamo nella cartella.

cd ~/cd

2. Rinominare gli MP3

Se i vostri file hanno dei caratteri di spazio nel nome dovete convertirli in altri caratteri, poiché alcuni programmi potrebbero gestirli male nelle proprie invocazioni, senza contare che uno spazio per bash equivale a separare un'opzione da un'altra, se non accuratamente gestito.

Convertiamo quindi gli spazi in underscore (_) con la seguente linea di comando:

for file in *.mp3; do mv "$file" $(echo "$file" | sed 's/\ /\_/g'); done

Assicuratevi di copiarla fedelmente; se commettete un errore di battitura potreste sconvolgere i nomi dei file nella cartella.

Fatto questo potete cambiare il nome dei file aggiungendone un numero progressivo all'inizio. Questo passaggio è utile per dare una sequenza precisa alle tracce audio, se volete dare un ordine che non sia quello alfabetico di default. Infatti le tracce audio vengono normalmente scritte su CD nello stesso ordine visualizzato nella cartella dove risiedono come MP3.

Ad esempio, avendo due file, di nome clip.mp3 e file.mp3 l'ordine di ascolto sarà alfabetico, ma se vorrete ascoltare nel CD prima file.mp3 e poi clip.mp3 dovrete rinominarli come 01file.mp3 e 02file.mp3, o 01-file.mp3 e 02-clip.mp3: l'importante è che l'ordine sia stabilito dal numero antecedente al file.

Ricordate che la numerazione di un sistema operativo parte da 0 e non da 1!!!

3. Conversione degli MP3

Ora usiamo uno dei due programmi di conversione audio che vi ho fatto scaricare (o che avete già). Prenderò in considerazione entrambi i programmi, uno alla volta. Darò per scontato il fatto che siete ancora nella directory temporanea che avete creato e in cui avete ricopiato e rinominato gli MP3 che volete includere nella vostra "compilation".

In entrambi gli scenari tutti i file MP3 nella cartella temporanea verranno convertiti in file WAV e gli originali verranno lasciati al loro posto.

4. Normalizzazione dei file WAV

Ora usiamo normalize per normalizzare tutte le tracce audio WAV presenti nella cartella ad un volume medio costante:

normalize -m *.wav

5. Creazione del CD audio

L'ultimo passo è la creazione del CD audio. Per fare questo ci serviamo di cdrecord con delle opzioni particolari:

cdrecord dev=<masterizzatore> -eject -audio -pad speed=1 *.wav

Infine...

Questo è tutto quanto riguarda la generazione di un CD audio su sistemi operativi GNU/Linux con soli comandi testuali. Se avete scritto tutto come detto non dovreste avere problemi di sorta.

Al termine del procedimento potrete rimuovere tutte le tracce, WAV e MP3, oppure potete rimettere le tracce MP3 al loro posto. Adesso vi potete godere la vostra compilation preferita su un comune lettore CD.

Fonte: TLDP.

Conclusioni

Con le nuove conoscenze che avete acquisito, potete dire addio ai software grafici di masterizzazione che avete usato finora. Ovviamente potreste scegliere qualche clic di mouse ai comandi di tastiera, però personalmente preferisco evitare di usare il "topo" per quanto possibile.

Senza contare che questi metodi possono arricchire il bagaglio di esperienza di un utente che voglia approfondire la propria conoscenza del mondo GNU/Linux, e se avete seguito l'articolo fino a qui probabilmente avete anche imparato ad usare un po' di meno le finestre e un po' di più le dita: in questo caso avrete già raggiunto un piccolo traguardo.

MegaLab.it rispetta la tua privacy. Per esercitare i tuoi diritti scrivi a: privacy@megalab.it .

Copyright 2008 MegaLab.it - Tutti i diritti sono riservati