Table of Contents

Masterizzare un DVD

Riferimenti Web

Quale programma?

wodim

Wodim nasce come fork di cdrecord, in quanto la licenza di quest'ultimo non è compatibile con le linee guida Debian per il software libero. Si dovrebbe poter usare wodim come si utilizzava cdrecord, tant'è vero che in Debian viene creato un link simbolico di nome cdrecord che punta a wodim. Il programma ha la capacità di masterizzare CD, DVD-ROM e DVD-Video.

growisofs

Nato come semplice front-end di mkisofs, adesso esegue anche la registrazione dei DVD.

dvdrecord

Nato come un fork di cdrecord, per Debian ha una licenza non-free.

Supporti DVD-, DVD+, R e RW

DVD-R, DVD-RW

Un disco DVD-RW può trovarsi in due modalità e può essere scritto con tre strategie:

Modalità Strategie possibili
Sequential Disk-at-once, Incremental Sequential
Restricted Overwrite Restricted Overwrite

La strategia che offre la compatibilità più vasta è quella Disk-at-once su supporti DVD-RW. E' il formato utilizzato dai DVD video. Un DVD-RW nuovo dovrebbe essere in modalità sequential, e già pronto per essere scritto:

growisofs -dvd-compat -Z /dev/dvd -r -J /home/ftp/pub/

I comandi principali per vedere lo stato di un DVD-RW, scrivere la prima sessione, le successive, formattare, ecc…

dvd+rw-mediainfo /dev/dvd                    # Visualizza lo stato del disco
growisofs -Z /dev/dvd -r -J /home/ftp/pub/   # Scrive la prima sessione
growisofs -M /dev/dvd -r -J /home/ftp/divx/  # Scrive una sessione successiva
dvd+rw-format -blank /dev/dvd                # Formatta in Sequential mode (veloce)
dvd+rw-format -blank=full /dev/dvd           # Formatta in Sequential mode (completo)
dvd+rw-format /dev/dvd                       # Formatta in Restricted Overwrite mode
growisofs -Z /dev/dvd=image.iso              # Masterizza un'immagine ISO su DVD
growisofs -dvd-compat -Z /dev/dvd=image.iso  # Masterizza un'immagine ISO di DVD-Video

Altamente consigliato aggiungere nelle operazioni di scrittura il parametro -dvd-compat che ha l'effetto di chiudere il disco (impossibile aggiungere altre sessioni), ma crea un DVD maggiormente compatibile con i vari lettori.

DVD+R, DVD+RW

Teoricamente un DVD+RW (ma non un DVD+R) potrebbe essere usato come un vero disco ad accesso casuale, per ospitare filesystem vfat, ext2, ecc. E' necessario l'opportuno supporto del kernel, ma data l'inaffidabilità dei supporti (il numero di cicli di riscrittura è limitato a circa un migliatio) la cosa direi che non interessa.

Come si farebbe comunque ad aggiungere dati ad un supporto DVD+RW?

Per masterizzare il contenuto di una directory:

dvd+rw-mediainfo /dev/cdrom
growisofs -Z /dev/cdrom -r -J /home/ftp/pub/

Per i DVD+RW non esiste il concetto di multisessione (sarebbe teoricamente superiore, essendo un disco ad accesso random). L'opzione -dvd-compat ha in questo caso l'effetto di scrivere il lead-out della traccia, altrimenti opzionale. Neanche il comando di formattazione visto sopra funziona, bisogna ripetere l'operazione di scrittura con growisofs -Z. Il tentativo di formattazione genera il seguente messaggio di errore:

# dvd+rw-format -force -blank=full /dev/cdrom
* DVD±RW/-RAM format utility by <appro@fy.chalmers.se>, version 4.10.
* 4.7GB DVD+RW media detected.
- illegal command-line option for this media.
- you have the option to re-run dvd+rw-format with:
  -lead-out  to elicit lead-out relocation for better
             DVD-ROM compatibility, data is not affected;
  -force     to enforce new format (not recommended)
             and wipe the data.

Masterizzare un DVD-Video

Si ricorda che il modo più comodo per copiare i file da un DVD-Video originale è utilizzare il programma dvdbackup (vedere la pagina Appunti Elaborazione Video):

dvdbackup -i /dev/dvd -o /PATH/TO/BACKUP/ -M

Sebbene un DVD-Video sia leggibile come un normale DVD-ROM (mount -t iso9660 -o ro /dev/dvd /mnt), in realtà è qualcosa di diverso: anzitutto ha un filesystem UDF (quindi andrebbe montato con l'opzione -t udf che fa apparire i nomi dei file tutti in maiuscolo, come deve essere), inoltre i file sono scritti in un'ordine specifico. L'ordine è molto importante perché pochi lettori accedono al DVD come un DVD-ROM, ma calcolano un offset dalla fine del file VMGM VIDEO_TS.IFO.

Inoltre un DVD-Video può avere il sistema di protezione CSS e il codice di regione, in tal caso la lettura dei file può non essere possibile montando semplicemente il disco. Vedere gli appunti su dvdbackup di cui sopra.

Quando si desidera masterizzare un DVD-Video si deve pertanto usare l'opzione -dvd-video di mkisofs (oppure fare in modo che growisofs passi questo parametro a mkisofs). Se si masterizza un DVD come normale disco dati iso9660 (DVD-ROM) potrebbe comunque funzionare con alcuni lettori DVD-Video, ma certe utility come lsdvd potrebbero non riconoscerlo come disco Video.

Un esempio di masterizzazione con mkisofs (crea l'immagine .iso dai file contenuti in una directory) e growisofs (effettua la masterizzazione):

mkisofs -dvd-video -V DVD_TITLE -o ISONAME.iso /PATH/TO/BACKUP/
growisofs -dvd-compat -Z /dev/dvd=ISONAME.iso

Al posto di growisofs si dovrebbe poter usare dvdrecord:

dvdrecord speed=1 -dao dev=0,0,0 ISONAME.iso

Emulazione IDE-SCSI

kernel 2.4.x

Ricompilato il kernel con il supporto CONFIG_BLK_DEV_IDESCSI=m, questo emula un device SCSI su uno IDE, utile per masterizzatori, lettori CD-ROM e simili. Infatti i vari programmi di masterizzazione e simili (soprattutto cdrecord) si aspettano un'interfaccia SCSI, non IDE.

Per evitare che il supporto IDE (integrato nel kernel) prenda possesso del device IDE hdc prima che il modulo ide-scsi venga caricato, si mette in /etc/lilo.conf (o qualcosa di simile in /boot/grub/menu.lst) la riga:

append="hdc=ide-scsi"

In /etc/modules si caricano tutti i moduli necessari: ide-scsi, sr_mod, l'evenutale supporto SCSI generic sg, etc. Nel nostro caso alcuni sono integrati nel kernel, altri caricati al boot. Modificato il link /dev/cdrom da hdc a scd0.

kernel 2.6.x

Il supporto all'emulazione ide-scsi nel kernel 2.6.x non ha funzionato molto bene e Linus Torvalds stesso ha espresso l'opinione che non fosse una cosa buona. Visto che cdrecord è stato aggiornato per poter utilizzare direttamente i masterizzatori IDE (quindi con la sintassi dev=/dev/dvd invece di dev=0,0,0), conviene abbandonare definitivamente l'emulazione ide-scsi.

Controllare che il modulo non venga caricato, controllare che i link /dev/cdrom e /dev/dvd puntino alla periferica IDE, controllare le impostazioni predefinite di cdrecord in /etc/cdrecord/cdrecord. Utilizzando l'emulazione ide-scsi la masterizzazione di un disco potrebbe fallire con questo messaggio (caso di un DVD-RW):

# growisofs -Z /dev/scd0 -r -J /home/niccolo/honda/
Executing 'mkisofs -r -J /home/niccolo/honda/ | builtin_dd of=/dev/scd0 obs=32k seek=0'
Using PART_000.PHP;1 for  /part_list_block.php (part_list.php)
/dev/scd0: "Current Write Speed" is 1.0x1385KBps.
:-[ WRITE@LBA=0h failed with SK=4h/ASC=08h/ACQ=01h]: Input/output error
:-( attempt to re-run with -dvd-compat -dvd-compat to engage DAO or apply full blanking procedure
:-( write failed: Input/output error

In proposito vedere l'articolo Linux 2.6 and the ide-scsi module.

Pacchetti Linux

Installati i pacchetti:

mkisofs       Crea file system ISO9660
cdrecord      Scrive CD-ROM e CD-Audio
dvdrtools     non-free, dvdrecord è un fork di cdrecord

Comandi utili:

cdrecord -scanbus            Mostra device compatibili
cdrecord dev=/dev/dvd -atip  Caratteristiche drive e supporto

Il pacchetto dvdplusrw di Debian Woody è troppo vecchio e non supporta i DVD-RW (solo i DVD+RW). Si e' presa la nuova versione del programma, compilata e installata:

cd /usr/local/src/
mkdir dvd+rw-tools
wget http://fy.chalmers.se/~appro/linux/DVD+RW/tools/dvd+rw-tools-5.10.4.5.4.tar.gz
tar zxvf dvd+rw-tools-5.10.4.5.4.tar.gz
cd dvd+rw-tools-5.10.4.5.4
make
make install
... (chown e chmod quanto basta)

Vengono installati in /usr/local/bin/ gli eseguibili:

dvd+rw-booktype
dvd+rw-format        Prepara o cambia modalita' supporto DVD
dvd+rw-mediainfo     Mostra info sul supporto DVD
growisofs            Frontend a mkisofs e scrive su DVD

Nessun problema invece con il pacchetto Debian Sarge.