Tux Masterizzare CD con Linux

Sommario

Riporto di seguiti i links agli argomenti di questa pagina.

Premessa
Cosa serve
Come vengono registrati i CD
Preparativi
Creare l'immagine del CD
Identificare il masterizzatore
Scrittura del CD
CD Audio
Copia di CD
CD misti
CD Multisessione
Cancellare un CD RW
Sinossi

Riquadri

Le regole grammaticali dei CD
Emulazione SCSI (configurazione)

Premessa

Linux è perfettamente in grado di masterizzare in vari modi CR-R e CD RW, con dati, audio, ed in vari formati.
Utilizzano Linux, inoltre, non ho mai dovuto buttare un CD rovinato in fase di masterizzazione (cosa che invece mi accadeva con una certa frequenza quando utilizzavo Windows).
Si tratterà  di come masterizzare CD con comandi testuali.
Questi comandi sono disponibili in quasi tutte le distribuzioni, offrono un controllo preciso delle operazioni da effettuare.
Le interfaccie grafiche, sono diverse ed in continua evoluzione, richiedono una appropriata configurazione (che è variabile da un software all'altro), non sono sempre installate in Linux, e vengono utilizzate per "mascherare" i comandi testuali che descrivo in questa pagina.
Per questo ho preferito trattare della masterizzazione da linea di comando, un metodo "universale", affidabile, e che consente un ottimo controllo, con meno fatica di quel che si pensa.
Dopo aver provato questo sistema di operare da linea di comando, vi potreste meravigliare della sua efficienza.

Materiale necessario

Il necessario si riduce a molto poco.
Probabilmente è già tutto presente sulla vostra macchina:

  1. Distribuzione Linux con supporto per la masterizzazione attivato nel kernel (in tutte le distribuzioni il supporto per CR-RW è già attivato)
  2. Il programma mkisofs
  3. Il programma cdrecord
  4. Il programma cdparanoia
  5. Il programma cdrdao

Come vengono registrati i CD

Fino a non molto tempo fa i CD si potevano solo leggere, e non era prevista la possibilità di aggiungere files in fasi successive alla loro creazione.
Nei CD pertanto i files vengono registrati su di un'unica traccia disposta a spirale sulla superficie del disco, e questa traccia deve essere preparata prima della registrazione del disco.
Questa traccia a spirale può essere preparata seguendo regole grammaticali diverse:

Le regole grammaticali dei CD:

Il CD può essere registrato seguendo diversi standards di cui riporto di seguito le caratteristiche:

  • REDBOOK Il formato dei CD audio.
    Corrisponde alla registrazione dei formato .waw sensa sofisticate elaborazioni dei file system.
    Può essere letto su qualunque lettore CD audio (hi Fi, autoradio, ecc.)
  • ISO-9660 Il file system più comune per CD
    È suddiviso in 2 categorie
    ISO-9660-level 1: nomenclatura dei files secondo lo schema DOS 8+3 (8 caratteri per il nome del files, e 3 caratteri per l'estensione).
    ISO-9660-level 2: anche nomi files lunghi ma minor compatibilità DOS (è lo standard che consiglio di adottare per registrare i vostri CD dati).
  • ROCK RIDGE Contiene le estensioni per sistemi UNIX ed Unix like (linux) del file system ISO-9660
    Supporta link simbolici riconosce caratteri maiuscoli e minuscoli, ecc..
    Non viene interpretato correttamente da altri sistemo operativi.
  • HFS Equivalente Macintosh dell ISO-9660
    Incompatibile con Microsoft, può essere letto da Linux, OpenBSD, ecc.
  • JOLIET Corrisponde alla versione Microsoft di ROCK RIDGE
    Corrisponde ad una versione estesa di ISO-9660
  • EL TORITO Un fie system che può essere caricato all'avvio del computer.
    Può essere utilizato per creare il disco di installazione di un sistema operativo, o per caricare sul computer programmi che non necessitano di sistema operativo.

Conoscere l'esistenza di queste regole consente di creare CD il più possibile conformi agli scopi od alle persone a cui è destinato.

Preparativi

Prima di cominciare a registrare un CD bisogna preparare i dati da registrare e conoscere come il computer identifica il masterizzatore.

Preparare i dati

Riunire ed organizzare tutti i files e le directory da copiare sul CD, secondo le proprie preferenze, in una posizione di vostra scelta sul disco fisso del computer (tipicamente una cartella nella vostra home directory).
Per questa operazione si possono utilizzare anche gli strumenti grafici che preferite (Konqueror di KDE, Nautilus di Gnome)

Dopo aver riunito tutti i files da copiare si deve preparare la traccia che verrà scitta sul CD specificando le "regole grammaticali" da usare.
Questa traccia sarà un file che contiene tutti i file contenuti nel CD e viene definito fileimmagine ed in genere ha l'estensione .iso.
I file.iso sono reperibili anche su internet e consentono ad esempio di masterizzare una distribuzione Linux od un CD di installazione di software.
Per creare un file.iso che contiene l'immagine del CD si usa il programma mkisofs con una sintassi analoga a quella riportata di seguito:

[aldo@localhost aldo]$ mkisofs -iso-level 2 -o backup.iso /mnt/windows/dati/

Questo comando va digitato in una finestra di terminale od in una consolle e può essere eseguito senza disporre dei privilegi di amministratore (notare il simbolo $ del prompt).
Con questo comando viene creato un file immagine chiamato backup.iso nella directory /home/aldo/ (nel prompt della shell si vede che il comando è stato dato dalla directory /aldo/).
Il parametro -iso-level 2 indica che il CD verrà scritto usando il file system ISO-9660-level 2 (questo parametro poteva essere sostituito da -r per un file system ROCK RIDGE, oppure da -J per un file system Joliet, oppure da -b per un file system EL TORITO
Il parametro -o consente di specificare il nome da attribuire all'immagine .iso (backup.iso in questo caso).
/mnt/windows/dati/ indica che nel CD verranno registrati tutti i dati (directory e files) al di sotto di /mnt/windows/dati/ (il punto in cui normalmente registro i dati sul mio PC).

Nelle distribuzioni Linux più recenti mkisofs è stato sostituito da genisoimage (short for generate ISO image).

Identificare il masterizzatore

Per ragioni storiche Linux riconosce e comanda i masterizzatori (anche quelli con interfaccia EIDE) come se fossero collegati ad un controller SCSI.
Se non sapete che cosa sono e cosa significano EIDE e SCSI ha poca importanza, si tratta più o meno del modo in cui il dispositivo viene collegato al resto del computer. Quello che interessa a noi è che con l'interfaccia SCSI il masterizzatore viene identificato da 3 numeri, e dobbiamo conoscere questi numeri per "dire" a Linux cosa usare per masterizzare.

Per scoprire i numeri segreti del vostro masterizzatore dovete aprire una finestra di terminale od una consolle e digitare il seguente comando con i privilegi di root (notare il simbolo # del prompt):

[aldo@localhost aldo]# cdrecord -scanbus

Nelle distribuzioni Linux più recenti cdrecord è stato sostituito da wodim (acronimo di write optical disk media) ed il comando diventa.
[aldo@localhost aldo]# wodim --devices

Il computer risponderà presentando una serie di messaggi, ed alla fine una colonna con delle tripplette di cifre seguite dal dispositivo corrispondente.
Annotate le tre cifre che si trovano a fianco del nome del vostro dispositivo di masterizzazione. Così non avrete più bisogno di lanciare questo comando la prossima volta che dovete masterizzare un cd (il mio lettore DVD viene identificato con i numeri 0,0,0; il CD-recorder viene identificato con i numeri 0,1,0).

cdrecord -scanbus
Il risultato del comando cdrecord -scanbus sul mio PC

Far credere al PC che il CD drive EIDE sia un CD drive SCSI

Come precisato poco sopra per masterizzare CD con linux bisogna che il PC comandi i drive come se si trattesse di lettori SCSI.
Se dopo aver dato il comando cdrecord -scanbus, non vedete comparire il vostro drive, o se ne vedete comparire uno solo (generalmente il masterizzatore), e ne avete 2, dovete operare alcune modifiche alla configurazione del sistema.

Come sono identificati i CD drive EIDE

Linux tratta i driver di CD come dischi fissi e gli attribuisce un nome che dipende da come sono collegati alla scheda madre.
Sulla scheda madre generalmente sono presenti 2 connettori per dischi fissi EIDE, e vengono chiamati canale primario e secondario.
Sia sul canale primari, sia su quello secondario si possono collegare "a catena" fino a 2 drive.
I 2 dispositivi al momento dell'instllazione vanno configurati (spostando dei microinterruttori o degli spinotti), in modo da far sapere al PC quale deve essere considerato il primo (dispositivo master), e quale il secondo (dispositivo slave) della catena.
Il dispositivo primario master (generalmente il disco fisso da cui viene avviato il PC) viene identificato come /dev/hda.
Il dispositivo primario slave (non sempre presente) viene identificato come /dev/hdb.
Il dispositivo secondario master (nel mio caso un lettore DVD) viene identificato come /dev/hdc.
Il dispositivo secondario slave (nel mio caso il masterizzatore) viene identificato come /dev/hdd.

Caricare l'emulazione SCSI all'avvio di Linux

È necessario modificare le configurazioni di LILO (LInux LOader), il programma che avvia Linux, in modo che carichi nel kernel i moduli di emulazione dei drive SCSI per i drive EIDE.
Per farlo bisogna modificare il file di configuraione di LILO /etc/lilo.conf con i permessi di amministratore, ed inserire un riferimento per ogni unità che deve essere emulata:
append="hdc=ide-scsi" (per il DVD ROM se, come nel mio caso, è collegato come master al bus EIDE secondario)
append="hdd=ide-scsi" (per il CD-RW se, come nel mio caso, è collegato come slave al bus EIDE secondario)

[aldo@localhost aldo]# kedit /etc/lilo.conf

/etc/lilo.conf
Il file /etc/lilo.conf modificato per l'emulazione SCSI dei miei dispositivi di lettura e masterizazione dei CD.

Bisogna poi far leggere le modifiche effettuate al file di configurazione in modo che vengano applicate ad ogni avvio, con il comando:
[aldo@localhost aldo]# /sbin/lilo -v

Ultimi ritocchi

A questo punto, dopo aver riavviato il computer, cdrecord identificherà correttamente i dispositivi, e sarà possibile eseguire la masterizzazione con i comandi testuali, ma probabilmente non sarà più possibile "suonare" CD musicali perché il dispositivo /dev/cdrom punta al drive EIDE che dopo le modifiche non esiste più (ora riconosciuto come SCSI).
Si dovranno modificare pertanto i "puntatori" (i files attraverso cui vengono identificati) dei drive dei cd per ottenere una corretta identificazione del dispositivo:

link simbolico al driver CD
I comandi per creare un link simbolico tra il file che identifica il CD (/dev/cdrom) e l'identificazione SCSI (/dev/scd0) attraverso cui viene comandato il dispositivo.

I comandi illustrati vanno dati con i privilegi di amministratore (come ricordato dal simbolo cancelletto (#) nel prompt dei comandi.
ln indica di creare un file di collegamento (link) cioè un puntatore;
-s (symbolic) indica che si tratta di un link simbolico;
f (force) indica di creare il link anche se ne esiste già uno con lo stesso nome;
scd0 (SCsi Disk 0) indica che il link che si sta creando punterà a /dev/scd0 che è l'identificazione del primo dispositivo SCSI;
cdrom indica che il nome che avrà il files di collegamento sarà /dev/cdrom (nel mio caso, prima delle modifiche questo files puntava a /dev/hdc cioè al disco master sul canale EIDE secondario a cui il DVD è effettivamente collegato).
Le modifiche vanno effettuate ovviamente per tutti i drive di CD.
Nella figura si vere che ho creato un link simbolico anche per il masterizzatore:
scd1 (SCsi Disk 1) indica che il link creanto punta a /dev/scd1 che è l'identificazione del secondo (Linux conta partendo dallo zero anxiché da uno) dispositivo SCSI;
cdrom1 indica che il nome del files di collegamento è /dev/cdrom1 (nel mio caso, prima delle modifiche questo files puntava a /dev/hdd cioè al disco slave sul canale EIDE secondario a cui il masterizzatore è fisicamente collegato).

Scrivere sul CD

A questo punto tutto è pronto per la scrittura dei dati sul CD con il seguente comando (da eseguire con i privilegi di root -> notare il simbolo # del prompt):

[aldo@localhost aldo]# cdrecord speed=6 dev=0,0,0 -v /home/aldo/backup.iso

Il parametro speed=6 è opzionale, ed indica la velocità che deve essere utilizzata dal masterizzatore per scrivere i dati sul CD.
Se non viene precisata il programma stabilisce autonomamente la velocità appropriata dopo aver valutato il tipo di disco impiegato.
Il parametro dev=0,0,0 indica che quale masterizzatore utilizzare per l registrazione (i 3 numeri sono ricavati con cdrecord -scanbus).
Il parametro -v è opzionale, e serve per mostrate sul video dei messaggi (-v sta per "verbose") che illustrano cosa sta facendo il programma.
/home/aldo/backup.iso indica la posizione ed il nome del file con l'immagine .iso da registrare sul cd. In questo caro sarebbe stato sufficiente specificare solamente backup iso, poiché il comando cdrecord è stato dato dalla mia home directory (il punto in cui era stato registrato il file .iso.


Le informazioni fornite da cdrecord durante il funzionamento sono davvero molte!

CD Audio

I CD audio vengono realizzati a partire dai files dei singoli brani di cui è composto
Per estrarre da un CD audio i files (in formato .wav) contenenti i singoli brani si usno i programmi di ripping.
Ce ne sono molti sia per windows (segnalo CDex) che per Linux (segnalo Grip) ma se volete estrarre tutte le tracce di un CD basta il seguente comando (anche senza i privilegi di root):

[aldo@localhost aldo]$ cdparanoia -wB

Il parametro -w indica di trasformare la traccia in formato .wav.
Il parametro -B indica di creare una singolo file .wav per ogni traccia audio del CD.

Nelle distribuzioni linux più recenti si può utilizzare icedax (acronimo di incredible digital audio extractor), which was forked from the cdda2wav.

Consiglio di riunire i files.wav che volete registrare sul CD in una singola directory.
È da notare la possibilità di creare un CD audio che contiene solo i brani che volete, nell'ordine che preferite, e potete inserire anche canzoni registrate da voi stessi (dalla scheda audio del vostro PC).
Il comando è il seguente (con i privilegi di root):

[aldo@localhost aldo]# cdrecord speed=6 dev=0,1,0 -v -audio /home/aldo/tu_scendi_dalle_stelle.wav /home/francesca/bianco_natale.wav
Se tutti i vostri files sono riuniti in una cartella e non vi importa l'ordine con cui vengono registrati potete fare come riportato di seguito:

[aldo@localhost aldo]# cd /home/aldo/audio
aldo@localhost audio]# cdrecord speed=6 dev=0,1,0 -v -audio *.wav

Il significato dei parametri speed=6 dev=0,1,0 -v è già stato illustrato nel paragrafo precedente.
Il parametro -audio serve per istruire il masterizzatore a registrare un CD in formato compatibile con i lettori di CD audio.
/home/aldo/tu_scendi_dalle_stelle.wav /home/francesca/bianco_natale.wav nel primo caso e *.wav indicano la posizione, il nome, e l'ordine con cui i file.wav andranno a formare il CD audio.

Nelle distribuzioni Linux più recenti cdrecord è stato sostituito da wodim (acronimo di write optical disk media) ed il comando diventa.
[aldo@localhost aldo]# cd /home/aldo/audio
[aldo@localhost audio]# wodim -eject -tao -speed=0 dev=/dev/scd0 -v -audio -pad *.wav
-eject espelle il disco alla fine della masterizzazione.
-tao Track at once
-speed=0 regola la velocità di masterizzazione al massimo possibile, si può mantenerla forzatamente bassa inserendo speed=1 oppure speed=2
dev=/dev/scd0 è l'identificazione del dispositivo di masterizzazione ottenuta come precisato precedentemente.
-v mostra messaggi informativi nella console durante il processo.
-audio indica che si tratta di un CD audio
-pad regola le dimensioni delle tracce audio a multipli di 2352 bytes

Copia di CD

Per la cpoia di CD esiste un apposito programma.
Come negli altri casi va utilizzato con i privilegi di amministratore.
La sintassi è la seguente:

[aldo@localhost aldo]# cdrdao copy --device 0,1,0 --driver generic-mmc --source-device 0,0,0 --source-driver generic-mmc

cdrdao (CD Record Disk At Once) è il comando per la copia diretta di un disco;
copy indica a cdrdao di eseguire la copia del disco (può svolgerere una serie di altri compiti);
--device n,n,n serve a fornire al programma "i numeri" di identificazione del dispositivo di masterizzazione.
--driver nomedriver è un parametro opzionale che consente di precisare il nome del driver da utilizzare per comandare il masterizzatore (nel mio caso senza specificare il nome di driver generico non funziona niente).
--source-device n,n, serve a fornire al programma "i numeri" di identificazione del dispositivo di lettura del CD da copiare.
--source-driver nomedriver è un parametro opzionale che consente di precisare il nome del driver da utilizzare per comandare il lettore di CD (nel mio caso senza specificare il nome di driver generico non funziona niente).
--speed n (es -- speed 6) è un parametro opzionale che consente di specificare la velocità di esecuzione della copia.
--eject è un parametro opzionale che serve per espellere il disco al termine della scrittura.
--on-the-fly è un parametro opzionale e serve per eseguire la copia del CD senza registrare i dati sul disco fisso. Utilizzando questo parametro c'è un elevato rischio di rovinare il CD da masterizzare se si verifica un ritardo nella fornitura dei dati da masterizzare.

CD misti

Un CD mixed mode può contenere sia dati da leggere con un PC, sia musica da riprodurre sull'impianto stereo.
Il comando è semplice e riunisce quanto detto nei precedenti 2 paragrafi:

[aldo@localhost aldo]# cdrecord speed=6 dev=0,1,0 -v -data /home/aldo/backup.iso -audio /home/aldo/tu_scendi_dalle_stelle.wav presentazione.wav finale.wav

CD multisessione

I CD multisessione consentono di registrare dati su un CD più riprese, senza "chiudere il CD" dopo averlo registrato.
Ad ogni "sessione" di registrazione di dati si perdono circa 14 MB (oltre a quelli dei dati che vengono registrati).
"Chiudere" il CD impedisce di aggiungere altri dati ma aumenta la compatibilità del disco soprattutto con lettori vecchi.
La sintassi è la seguente:

[aldo@localhost aldo]# cdrecord speed=6 dev=0,1,0 -v -multi -data /mnt/windows/dati/
oppure (per creare un disco mixed mode).
[aldo@localhost aldo]# cdrecord speed=6 dev=0,1,0 -v -multi -data /mnt/windows/dati/ -audio /home/aldo/tu_scendi_dalle_stelle.wav

È da notare che in questo caso non è necessario usare mkisofs per creare l'immagine del CD, ma basta semplicemente specificare il nome della directory in cui sono presenti i files da registrare

Per aggiungere un'altra sessione senza chiudere il cd si ripete il comando:

[aldo@localhost aldo]# cdrecord speed=6 dev=0,1,0 -v -multi -data /mnt/windows/dati/mp3/

Per chiudere la sessione dopo aver aggiunto dati:

[aldo@localhost aldo]# cdrecord speed=6 dev=0,1,0 -v -data /mnt/windows/dati/mp3/

Per chiudere la sessione senza aggiungere dati:

[aldo@localhost aldo]# cdrecord speed=6 dev=0,1,0 -fix

Cancellare un CD-RW

Si può eseguire una cancellazione "rapida" che cancella solo l'"indice" del disco e lo fa "sembrare" vuoto

[aldo@localhost aldo]# cdrecord speed=6 dev=0,1,0 -v -blank=fast

Oppure si può eseguire una cancellazione comleta del disco che però è molto più lunga:

[aldo@localhost aldo]# cdrecord speed=6 dev=0,1,0 -v -blank=all

Sinossi

Riporto di seguito i comandi per creare un CD dati.

[aldo@localhost aldo]$ mkisofs -iso-level 2 -o backup.iso /mnt/windows/dati/
[aldo@localhost aldo]$ su
digitare password di root
[aldo@localhost aldo]# cdrecord speed=6 dev=0,1,0 -v /home/aldo/backup.iso

Per creare un cd multisessione:

[aldo@localhost aldo]# cdrecord speed=6 dev=0,1,0 -v -multi - data /mnt/windows/dati/
[aldo@localhost aldo]# cdrecord speed=6 dev=0,1,0 -v -multi -data /mnt/windows/dati/mp3/
aldo@localhost aldo]# cdrecord speed=6 dev=0,1,0 -fix

Per creare un CD audio:

[aldo@localhost aldo]# cdrecord speed=6 dev=0,1,0 -v -audio /home/aldo/tu_scendi_dalle_stelle.wav /home/francesca/bianco_natale.wav

Per copiare un CD

[aldo@localhost aldo]# cdrdao copy --device 0,1,0 --driver generic-mmc --source-device 0,0,0 --source-driver generic-mmc



Inizio pagina
Indice guide Linux
Homepage