: Navigazione :


Home
Masterizzare
DivX

 

Masterizzare da linea di comando

1. Configurazione

Tutte le maggiori distribuzioni prevedono nell'installazione base o contengono nei cd aggiuntivi tutto quello di cui necessitate per masterizzare:

  • mkisofs: serve per creare l'immagine ISO di un cd dati;
  • cdrecord: come suggerisce il nome, è il programma che permette di scrivere i dati su cd;
  • cdrdao: usato prevalentemente per i cd audio e la duplicazione, supporta la scrittura in modalità disk-at-once;
  • cdparanoia (facoltativo): ottimo programma per l'estrazione audio, da cd-audio a file in formato wave;

    Se questi programmi non sono già presenti installateli, almeno i primi tre.
    Se volete una GUI vi consiglio K3b o Brasero per l'uso generico, mentre per se avete particolare esigenze per l'audio provate Gnome Cd Master. L'uso di tali programmi va oltre gli scopi di questa guida, visto che qui impareremo a fare tutto dalla console.


    NOTA: chi ha installato un kernel 2.6.x può saltare il resto di questa sezione. Infatti usando versioni aggiornate di cdrecord e cdrdao è sufficiente indicare il nome del device, in quanto l'emulazione SCSI non è più necessaria. Vi consiglio di creare un link simbolico, denominato cdrecorder all'interno della directory /dev/, che punti al device fisico del vostro masterizzatore (es. ln -s /dev/hdX /dev/cdrecorder, dove ovviamente alla X dovete sostituire la lettera adeguata).
    In questo modo cdrdao farà riferimento in modo automatico a tale link, senza necessità di specificare esplicitamente il device da linea di comando.
    Per quanto riguarda cdrecord invece è possibile:
  • specificare il device da linea di comando: cdrecord dev=/dev/cdrecorder [opzioni]
  • modificare nel file di configurazione /etc/cdrecord/cdrecord (il path può cambiare a seconda della distribuzione) la variabile CDR_DEVICE.


    Ora alcune premesse: in Linux tutti i masterizzatori EIDE devono essere configurati per funzionare in emulazione SCSI, in quanto solo questi ultimi sono supportati nativamente. Verificare se il proprio masterizzatore è configurato correttamente è molto semplice: dalla console digitate "cdrecord -scanbus", se ottenete un output simile a questo siete già a cavallo.

    Cdrecord 1.9 (i586-slackware-linux-gnu) Copyright (C) 1995-2000 Jörg Schilling
    Linux sg driver version: 3.1.17
    Using libscg version 'schily-0.1'
    scsibus0:

            0,0,0     0) 'LG      ' 'DVD-ROM DRD8120B' '1.04' Removable CD-ROM
    0,1,0 1) 'ATAPI ' 'CD-R/RW 4X4X32 ' '3.LS' Removable CD-ROM
    0,2,0 2) *
    0,3,0 3) *
    0,4,0 4) *
    0,5,0 5) *
    0,6,0 6) *
    0,7,0 7) *

    Cdrecord ha trovato le periferiche SCSI installate nel vostro sistema e ve ne fornisce gli indirizzi (scsibus, target e lun); nel mio caso ho un lettore DVD all'indirizzo 0,0,0 ed un masterizzatore (un misero 4x4x32, sigh...) su 0,1,0.

    E se non viene rilevato alcun dispositivo? Innanzi tutto bisogna accertarsi che nella configurazione del proprio kernel siano inclusi i seguenti moduli:

  • supporto per il filesystem ISO-9660 (il filesystem dei cd-rom) ed eventualmente per le estensioni MS Joliet (per la compatibilità con i sistemi Microsoft di Zio Bill). Si trovano sotto la voce "File Systems". Entrambi sono già presenti nel 99.9% dei casi;
  • SCSI generic support e SCSI CD-ROM support, nel menu "SCSI support";
  • SCSI emulation support, alla voce ATA/IDE/MFM/RLL support--> IDE, ATA and ATAPI block devices;
    Se non ci sono dovete ricompilare il kernel.

    E' andata? Bene! Adesso dovete passare al vostro kernel nuovo fiammante alcuni parametri per dirgli che il vostro masterizzatore EIDE d'ora in poi funzionerà in emulazione SCSI. Vi consiglio di fare la stessa cosa anche per il lettore CD-ROM, se volete usare l'utilissima opzione "copy" di cdrdao.
    Come? E' sufficiente editare il file di configurazione di lilo in /etc/lilo.conf aggiungendo la seguente riga nella sezione relativa al kernel che caricate di solito:

    append="hdc ide-scsi hdd=ide-scsi"

    ATTENZIONE: nell'esempio sopra riportato ho dato per scontato che il lettore CD-ROM sia configurato come master sul secondo canale IDE ed il masterizzatore come slave sul medesimo canale. Se così non fosse tenete presente che in Linux i device IDE vengono identificati nel seguente modo: hda= device master sul primo IDE, hdb= device slave sul primo IDE, hdc= device master sul secondo IDE e hdd= device slave sul secondo IDE. Se la vostra macchina è configurata in modo diverso modificate di conseguenza l'esempio precedente.
    Alla fine dovreste ottenere qualcosa del genere:

    [...]

    image=/boot/vmlinuz
    label=slackware
    root=/dev/hdb5
    initrd=/boot/initrd.img
    append="hdc=ide-scsi hdd=ide-scsi"
    read-only
    [...]
    Ora ci resta solo una cosa da fare prima di cominciare a bruciare un po' di cd: in /dev, la directory che indicizza tutti i device del sistema, ci sono ancora due link simbolici che puntano ai vecchi dispositivi EIDE. Di solito si chiamano /dev/cdrom per il lettore e /dev/cdrom2 per il masterizzatore. Eliminiamoli con un bel "rm /dev/cdrom ; rm /dev/cdrom2".
    Ora ricreiamo i collegamenti corretti. Per sapere a che dispositivo SCSI sono stati associati cdrom e masterizzatore diamo di nuovo "cdrecord -scanbus". Se, come nell'esempio precedente, l'indirizzo del CD-ROM è 0,0,0 questo sarà associato a /dev/scd0, se l'indirizzo è 0,1,0 sarà /dev/scd1 e così via.
    Per aggiungere i link portiamoci all'interno della directory /dev e impartiamo il comando "ln -s scd0 cdrom ; ln -s scd1 cdrom2", stando attenti ad indicare i device corretti.
    Per vedere se tutto funziona montate un cd dati nel lettore (mount -t iso9660 /dev/cdrom /mnt) e provate a leggerlo. In alternativa scrivete "eject cdrom": se il cassetto del lettore viene espulso il link simbolico è a posto.


    2. Comandi

    Arrivati a questo punto il vostro sistema dovrebbe essere configurato correttamente. Possiamo dunque concentrarci sui comandi da impartire e sulle loro principali opzioni. Per ulteriori approfondimenti fate riferimento alle relative pagine man.

    mkisofs
    E' l'abbreviazione di "make ISO filesystem". Come già anticipato, serve per scrivere sul disco rigido l'immagine ISO del cd da duplicare. Ricordo che l'immagine non è altro che una copia speculare del disco originale, viene salvata su un unico file e mantiene intatte le caratteristiche del filesystem ISO9660.
    La sintassi è la seguente:

    # mkisofs [opzioni] -o file_di_destinazione /percorso_origine

    Le principali opzioni sono:
    • -b
      specifica il percorso e il nome dell'immagine di avvio (se il cd deve essere bootabile);
    • -c
      specifica il percorso e il nome del file di catalogo; deve esserci se si sta usando l'opzione -b. Potete usare come path quello indicato nell'opzione -b e come nome del file "boot.catalog";
    • -l
      consente l'utilizzo di nomi di file lunghi fino a 31 caratteri. Questa opzione "raggira" lo standard ISO che vorrebbe nomi in formato 8+3. Non usatela se il disco deve girare in Dos;
    • - J
      usa le estensioni Joliet. Utile se il cd vi serve in WindowsNT o 95 (e superiori);
    • -o
      specifica il nome del file sul quale verrà scritta l'immagine;
    • -C
      inizio_sessione_precedente,inizio_sessione: richiesta per creare l'immagine della seconda sessione o successiva di un cd multisessione; i due valori si possono ottenere con il comando "cdrecord -msinfo". Deve essere usata congiuntamente all'opzione -M;
    • -M
      specifica il path o il device della precedente sessione (ad esempio -M 0,1,0);
    • -R
      usa le estensioni RockRidge. Serve per mantenere i permessi sui file;
    • -T
      genera il file TRANS.TBL; se usate le estensioni 8+3 questo file tiene traccia dei nomi originali in formato lungo;
    • -V
      assegna l'etichetta di volume. In Windows sarà il nome del disco in Esplora risorse. So per esperienza che alcune copie di backup ;-) di programmi Microsoft non vengono eseguite da cd se non si specifica l'etichetta di volume originale;
    • -v
      modalità prolissa;

      Per chi fosse interessato vi sono inoltre numerose opzioni per creare dischi in HFS, il filesystem usato dai MacIntosh.

    Esempi:

    # mkisofs -J -l -V "etichetta" -o immagine.img /directory_sorgente (ad es. /dev/cdrom)
    Scrive l'immagine ISO su immagine.img, nella directory corrente, con estensioni MS Joliet e supporto per nomi di file lunghi.

    # mkisofs -R -l -V "etichetta" -o immagine.img /directory_sorgente
    Come sopra, ma con estensioni RockRidge.

    # mkisofs -l -b /percorso_immagine_di_boot/immagine.bin -c /percorso_immagine_di_boot/boot.catalog -V "etichetta" -o immagine.img /directory_sorgente
    Con questo comando puoi fare l'immagine per un cd di boot, ad esempio quello di una distribuzione. Devi prima copiare sull'hard disk il contenuto dell'intero cd-rom e poi dare il suddetto comando specificando nel path della sorgente la directory in cui hai copiato i file.

    Tricks:

    # mount -t iso9660 -o loop immagine.img /mnt
    Con questo comando puoi montare l'immagine come se si trattasse di un cd-rom, così da avere una sorta di "anteprima" del cd che verrà scritto. Ricorda che l'immagine non è modificabile, perciò se trovi qualcosa che non va devi ricrearla. Prima della scrittura l'immagine deve essere smontata.

    # dd if=/dev/cdrom of=immagine.img
    Questo è un metodo alternativo veloce per creare un'immagine ISO. Se non avete esigenze particolari usatelo.


    cdrecord
    E' il comando che da inizio al processo di scrittura. Purtroppo supporta solo la modalità track-at-once e, a quanto ne so, la modalità disk-at-once è ancora sperimentale e funziona solo su alcuni modelli di masterizzatori, ad esempio i Plextor.
    La sintassi è abbastanza semplice:

    cdrecord [opzioni generali] dev=device [opzioni traccia] immagine
    Ovviamente in dev= devi indicare l'indirizzo SCSI del masterizzatore, ad esempio dev=0,1,0.

    Le principali opzioni generali sono:
    • -v
      modalità prolissa, consiglio di abilitarla;
    • blank=tipo
      cancella un cd-rw. I parametri più usati sono: blank=all che cancella l'intero disco e blank=fast che esegue una cancellazione veloce;
    • -force
      forza la scrittura anche se vengono riscontrati errori. E' utile se si deve cancellare un cd riscrivibile che non ne vuole sapere altrimenti.
    • -dummy
      simula l'intero processo di scrittura, ma senza accendere il laser. Da usare per le prime prove, a meno che non vogliate una simpatica collezione di sottobicchieri :-)
    • -dao
      modalità disk-at-once, sperimentale;
    • -multi
      scrivi una sessione di un cd multisessione, il cd non viene finalizzato ed è possibile aggiungere ulteriori sessioni in seguito;
    • -msinfo
      visualizza le informazioni sulle sessioni di un cd multisessione;
    • -toc
      visualizza la table of content del cd;
    • -fix
      finalizza il disco senza ulteriori modifiche;
    • -nofix
      non finalizza al termine della scrittura;
    • -eject
      espelle il disco alla fine del processo;
    • speed=n
      specifica la velocità di scrittura;
    • -scanbus
      fornisce gli indirizzi dei device SCSI;
    • -pad
      utile per masterizzare file .wav in formato cd-audio;

    Le opzioni traccia più importanti sono:
    • -data
      scrive le tracce dati in formato CD-ROM mode 1, è abilitata di default se non vengono immesse altre opzioni;
    • -audio
      scrive le tracce audio (.wav o .au, non gli mp3) in formato CD-DA, il formato dei normali cd-audio;

    Esempi:

    # cdrecord -v -eject speed=4 dev=0,1,0 -data immagine.img
    Scrive l'immagine dati alla velocità di 4x in modalità prolissa ed espelle il disco al termine del processo.

    # cdrecord -v -eject speed=4 dev=0,1,0 -pad -audio track*.wav
    Scrive i file track1.wav, track2.wav... in formato CD-DA.

    # cdrecord -v -eject speed=4 dev=0,1,0 -data -multi immagine.img
    Scrive l'immagine dati lasciando aperta la sessione.

    Tricks:

    # mkisofs -R /directory_sorgente | cdrecord -v fs=6m speed=2 dev=0,1,0 -
    Invece di creare l'immagine su disco passa direttamente l'output di mkisofs a cdrecord. Fate alcune prove abilitando l'opzione -dummy.

    # cdrecord -v -eject speed=4 dev=0,0,0 -data /dev/cdrom
    Esegue la copia al volo del cd nel lettore.


    cdrdao
    Questo è un ottimo programma che ingloba le funzioni dei due comandi visti in precedenza. E' in grado di creare immagini, pur non raggiungendo il grado di raffinatezza di mkisofs, e di scriverle. Faccio notare che le immagini create da cdrdao possono essere scritte su cd solo da cdrdao stesso.
    Ma la caratteristica che rende questo programma insostituibile, sopratutto per quanto riguarda la duplicazione di cd-audio, è la possibilità di scrivere in modalità disk-at-once. Senza soffermarmi in dettagli tecnici vi dico solo che questo permette, ad esempio, di masterizzare cd musicali privi della pausa di 2 secondi fra una traccia e l'altra. Avete mai provato ad ascoltare un concerto live nel quale un medley viene interrotto da due secondi di silenzio? Se sì, concorderete senz'altro con me quando dico che il fatto di poter eliminare le pause è una gran figata.
    Tra l'altro il disk-at-once garantisce anche una maggiore sicurezza che la qualità audio del cd masterizzato sia buona.
    La sintassi è questa:

    # cdrdao [comando] [opzioni] file-toc

    I comandi sono:
    • show-toc
      visualizza un sommario di quello che verrà scritto sul cd;
    • read-toc
      analizza il cd origine e crea un file-toc che ne contiene la table of content. Per specificare il nome del file usare l'opzione --datafile nomefile. Non crea un immagine dati o audio;
    • read-cd
      crea l'immagine del cd e la relativa table of contents. Il nome del file immagine è "data.bin" se non viene data l'opzione --datafile;
    • read-cddb
      cerca il nome del artista e dell'album su un server cd database (CDDB). Le informazioni ricevute verrano scritte nel cd-text, se supportato dal proprio masterizzatore. Dovete essere connessi ad Internet per usare questa opzione;
    • disk-info
      mostra informazioni sul cd-r inserito. Se il cd ha una sessione aperta fornisce anche il settore di inizio della sessione precedente e quello disponibile per scrivere la sessione successiva;
    • msinfo
      simile alla precedente, visualizza le informazioni necessarie per creare dischi multisessione con mkisofs;
    • unlock
      prova a sbloccare il cassetto del masterizzatore dopo una scrittura fallita. Se non riesci ad espellere il cd prova questa opzione;
    • simulate
      simula il processo di scrittura senza accendere il laser;
    • write
      scrive il cd basandosi sulle specifiche del file-toc;
    • copy
      esegue tutti i passi necessari per la copia di un cd. L'opzione --datafile permette di assegnare il nome al file immagine; se si specifica anche l'opzione --on-the-fly l'immagine non viene scritta sul disco rigido ma i dati vengono passati in pipe dal lettore al masterizzatore (copia al volo);

    Opzioni principali:
    • --device [bus, id, lun]
      stabilisce l'indirizzo SCSI del masterizzatore. Se preferite potete indicare il device (es. /dev/cdrom2).
    • --source-device
      come sopra ma usato per indicare il device sorgente. Omettetelo se fate leggere i cd al masterizzatore, cosa che comunque vi sconsiglio;
    • --driver
      da usare se avete un masterizzatore per cui siano disponibili driver specifici. Al momento sono supportati alcuni modelli prodotti da Plextor, Sony, Teac, Yamaha, Ricoh, Toshiba. Consultate la lista di compatibilità per maggiori informazioni (solitamente in /usr/share/doc/ cdrdao-"versione"/README);
    • --source-driver
      come sopra ma per il device sorgente, se non c'è un driver apposito usate "generic-mmc";
    • --speed [n]
      imposta la velocità di scrittura, di default è la massima possibile;
    • --multi
      la sessione non viene chiusa; è dunque possibile aggiungere altri dati, ad esempio per creare un cd-extra;
    • --eject
      espelle il cassetto al termine della scrittura;
    • --keepimage
      se il cd viene copiato con l'opzione copy non cancella l'immagine dal disco dopo la scrittura;
    • -v
      modalità prolissa;

    Esempi:

    # cdrdao read-toc --device 0,0,0 --driver generic-mmc lista.toc
    Scrive nel file lista.toc la tabella dei contenuti del cd. E' visualizzabile con qualunque editor e indica il numero di tracce, la loro durata e gli spazi di silenzio da inserire tra una canzone e la successiva.

    # cdrdao read-cd --device 0,0,0 --driver generic-mmc lista.toc
    Scrive la tabella dei contenuti in lista.toc e crea l'immagine del cd in data.bin.

    # cdrdao write --device 0,1,0 --driver generic-mmc --speed 4 --eject lista.toc
    Masterizza l'immagine creata precedentemente alla velocità di 4x ed espelle il cd al termine del processo.

    # cdrdao copy --device 0,1,0 --driver generic-mmc --source-device 0,0,0 --source-driver generic-mmc --speed 4 --eject
    Copia il cd originale leggendolo dal cd-rom. Potete anche inserire l'opzione --on-the-fly per eseguire una copia al volo.

    Tricks:

    Da qui potete scaricare uno script che vi consente di eseguire la copia di un cd. Modificate il file col vostro editor preferito specificando i device corretti, gli eventuali driver e la velocità di scrittura. Potete tenere lo script nella vostra home e lanciarlo con "./copiacd" oppure spostarlo in /usr/bin o /usr/local/bin (occhio ai permessi!) ed eseguirlo semplicemente con "copiacd".


    3. Tabella riassuntiva

    Nella seguente tabella sono elencati tutti i principali comandi per masterizzare i più disparati tipi di cd, anche quelli della Playstation!

    Copia cd dati
    creazione dell'immagine ISO (es. con estensioni RockRidge)
     mkisofs -r -o dati.img /directory_dati/
    controllo del contenuto dell'immagine
     mount -t iso9660 -o loop dati.img /mnt/
    scrittura
     cdrecord -v -eject speed=4 dev=0,1,0 -data dati.img

    Copia al volo
    lettura da /dev/cdrom e scrittura immediata
     cdrecord -v -eject speed=4 dev=0,6,0 -data /dev/cdrom
    copia al volo tramite pipe
     mkisofs -R /directory_sorgente | cdrecord -v fs=6m speed=2 dev=0,1,0 -

    Copia cd audio (con cdparanoia)
    scaricamento delle tracce audio in un unico file cdda.wav
     cdparanoia -s 1-
    creazione della Table Of Contents cdrdao read-toc --device 0,0,0 --driver generic-mmc --datafile cdda.wav lista.toc
    scrittura in modalità disk-at-once cdrdao write --device 0,1,0 --driver generic-mmc --speed 4 --eject lista.toc

    Copia cd audio
    creazione della Table Of Contents e scaricamento tracce cdrdao read-cd --device 0,0,0 --driver generic-mmc lista.toc
    scrittura in disk-at-once mode cdrdao write --device 0,1,0 --driver generic-mmc --speed 4 --eject lista.toc

    Copia cd PlayStation
    scaricamento ignorante del cd  cdrdao read-cd --device 0,0,0 --driver generic-mmc --read-raw lista.toc
    scrittura in modalità disk-at-once cdrdao write --device 0,1,0 --driver generic-mmc --speed 4 --eject lista.toc

    cd misti audio+dati
    Una volta preparata l'immagine ISO e le tracce audio, scrive i dati e, in coda, le tracce audio in track-at-once
     cdrecord -v speed=4 dev=0,1,0 -eject -data dati.img -audio track*.wav

    cd multisessione
    creata l'immagine dati, scrittura della prima sessione
     cdrecord -v speed=4 dev=0,1,0 -eject -multi -data dati1.img
    preparazione della N-esima immagine ISO
     mkisofs -r -o datiN.img -C `cdrecord dev=0,1,0 -msinfo` -M 0,1,0 /directory_datiN/
    scrittura della N-esima sessione
     cdrecord -v speed=4 dev=0,1,0 -eject -multi -data datiN.img
    preparata l'ultima immagine, scrittura dell'ultima sessione
     cdrecord -v speed=4 dev=0,1,0 -eject -data datiM.img

    cd-extra (audio+dati in sessioni separate)
    preparate le tracce audio, scrittura della prima sessione audio
     cdrecord -v -speed=4 dev=0,1,0 -multi -audio track*.wav
    preparazione dell'immagine ISO per i dati
     mkdir /tmp/vuota ;
     mkisofs -r -o vuota.img /tmp/vuota ;
     mkisofs -r -o dati.raw -C `cdrecord dev=0,1,0 -msinfo` -M vuota.img /directory_dati/

    scrittura della seconda sessione dati
     cdrecord -v -speed=4 dev=0,1,0 -eject -data dati.img



  • Copyleft 2004 vivalinux.net Site Designed by http://www.quickness.uni.cc