Capitolo 2. Settori di un CD
Un CD è formato da settori contigui in una spirale che parte dal centro
e si allarga all'esterno.
Ogni settore è di 2352 byte, che vengono usati interamente per i
CD-Audio, mentre per i CD-Dati ne vengono usati 2048 e gli altri sono per la
correzione degli errori (modo 1).
La capacità in byte di un CD si calcola in base alla formula:
(f * b * c) * d
dove:
f = Frequenza di campionamento: 44.100 Hz (44.100 campioni al secondo)
b = Lunghezza campioni in byte: 2 (16 bit)
c = Numero canali audio: 2 (stereo)
d = Durata in secondi: Minuti * 60
|
Allora un secondo di audio occupa f * b * c = 44.100 * 2 * 2 = 176.400 byte.
Un CD da 74 minuti, quindi, è composto da:
176.400 * (74 * 60) = 783.216.000 byte per CD-Audio
783.216.000 / 2.352 = 333.000 settori
333.000 * 2.048 = 681.984.000 byte (650 MB) per CD-Dati
mentre un CD da 80 minuti:
176.400 * (80 * 60) = 846.720.000 byte
846.720.000 / 2.352 = 360.000 settori
360.000 * 2.048 = 737.280.000 byte (703 MB)
Capitolo 3. Permessi e device
Se non si posseggono periferiche SCSI allora occorre usare l'emulazione
IDE-SCSI, in quanto per masterizzare con cdrecord o
cdrdao sono necessari i device SCSI.
Se il supporto per i CD ATAPI è compilato all'interno del kernel allora
bisogna passare il parametro opportuno al kernel dal boot-loader (LILO, grub,
o quello che si usa). Per LILO:
append="hdb=ide-scsi hdc=ide-scsi" |
con questo comando si dice al kernel che le periferiche IDE Primary-Slave
(hdb) (di solito il Lettore CD) e Secondary-Master (hdc) (di solito il
Mastrizzatore) usano i driver per l'emulazione ide-scsi e non i driver ide-cd
(ricordarsi di rilanciare lilo dopo ogni modifica del
file /etc/lilo.conf).
Ora bisogna caricare il modulo:
Se i driver SCSI sono compilati come moduli, allora si caricano anche questi:
# insmod scsi_mod
# insmod sr_mod
# insmod sg
|
In questo modo si potrà accedere alle periferiche con i device
/dev/scd0 (/dev/sg0) per il
Lettore CD e /dev/scd1 (/dev/sg1)
per il Masterizzatore.
Risulta utile fare dei link simbolici a tali device:
# ln -sf /dev/scd0 /dev/cdrom
# ln -sf /dev/scd1 /dev/cdrw
|
supponendo che il primo dispositivo sia il CD-ROM ed il secondo il CDRW.
Inoltre bisongerà modificare il file /etc/fstab,
sostituendo le occorrenze di /dev/hdb con
/dev/cdrom e /dev/hdc con
/dev/cdrw.
L'uso di IDE-SCSI per il CD-ROM non è strettamente necessario, a meno
che non si intenda usare cdrdao o
xcdroast-0.98.
Nel resto di questo documento si presumerà che esistano i link
/dev/cdrom e /dev/cdrw che puntano
rispettivamente a /dev/scd0 e
/dev/scd1 e che si abbiano dispositivi SCSI o si usi
l'emulazione IDE-SCSI.
Normalmente solo l'utente root può masterizzare.
Per permettere ad un utente normale di usare il masterizzatore si devono fare
alcune modifiche ai permessi dei device e dei programmi.
Innanzitutto si deve creare un gruppo al quale aggiungere tutti gli utenti
che avranno accesso al masterizzatore:
# addgroup cdrw
# adduser pippo cdrw
|
in questo modo l'utente pippo appartiene al gruppo
cdrw.
Ora si deve modificare il gruppo ed i permessi dei device e dei programmi:
# chgrp cdrw /dev/sg[0-1]
# chmod 664 /dev/sg[0-1]
# chgrp cdrw `which cdrecord` `which cdrdao`
# chmod 4750 `which cdrecord` `which cdrdao`
|
in questo modo solo gli utenti appartenenti al gruppo cdrw
potranno eseguire cdrecord e cdrdao.
Tali programmi hanno settato il bit SUID, in tale modo chi li esegue è
come se fosse root.
Capitolo 4. Tool a linea di comando
Per masterizzare dei CD Audio o Dati sotto GNU/Linux si usano principalmente
i seguenti programmi (a linea di comando):
dd: per estrarre l'immagine ISO dal CD;
mkisofs: per la creazione di immagini ISO dei
CD-Dati;
cdda2wav: per l'estrazione delle tracce WAV
(CD-DA) per CD-Audio (cd-ripper);
cdparanoia: come cdda2wav, ma
orientato alla correzione degli errori;
cdrecord: per scrivere le immagini ISO o le
tracce WAV sui CD;
cdrdao: per estrarre, scrivere, copiare i CD in
modalità DAO (sia Audio che Dati).
Tale programma, standard nei sistemi Unix-like, serve anche per estrarre su HD
l'immaggine ISO dei CD-Dati. Il suo uso è molto semplice:
# dd if=origine of=destinazione bs=blocksize
|
e, per il nostro scopo, si usa:
# dd if=/dev/cdrom of=immagine.iso bs=2048
|
Il file immagine.iso, contenete l'immagine del CD,
può essere montato per controllare il contenuto, per estravi dei file,
ecc.
# mount immagine.iso /mnt/iso -t iso9660 -o loop
|
Copyright by Yggdrasil Computing, Incorporated
Per creare una immagine ISO a partire dal conenuto di una directory sull'HD si
usa mkisofs:
# mkisofs -J -r -V "Etichetta" -o immagine.iso path
|
in questo modo tutte le sotto-directory ed i file contenuti in
path appariranno nella radice dell'immagine ISO.
Si possono anche ricombinare i file e le directory in modo che appaiano in
posizioni diverse o con nomi diversi:
# mkisofs -J -r -graft-points -o immagine.iso \
foo/bar=/dir/primo foo/beer/=/secondo/
|
dove l'espressione “foo/bar=/dir/primo”
significa: prendi il file /dir/primo e chiamalo
foo/bar nell'immagine ISO, se la directory
foo non esiste creala. Per tale scopo i
programmi gcombust e gtoaster sono
molto comodi.
I parametri usati sono per creare una immagine compatibile con i nomi lunghi
di Win95 (Joilet) (-J) e per usare
l'estensione per i nomi lunghi ed i permessi Unix
(Rock Ridge) (-r). Si può anche
usare il parametro per la generazione dei file TRANS.TBL
in ogni directory (-T) per la traduzione dei nomi lunghi
nello standard ISO.
Copyright (c) 1998 Heiko Eissfeldt hiko@colossus.escape.de
Per estrarre le tracce audio in file WAV si può usare
cdda2wav:
# cdda2wav dev=bus,id,lun --alltraks
# cdda2wav dev=/dev/cdrom --alltraks
|
estraggono ogni traccia, rispettivamente, del dispositivo SCSI (bus,id,lun) o
del device /dev/cdrom in file WAV separati.
# cdda2wav dev=0,0,0 cddb=0 --alltraks
|
Estrae le tracce singolarmente cercando i nomi tramite server cddbp. Si possono
usare i parametri cddbp-server e cddbp-port per
scegliere il server e la porta da usare, che di default sono
“freedb.freedb.org” e “8880” rispettivamente.
Usando cddb=1 verrà scelto la prima occorrenza trovata
invece di chiedere all'utente quale scegliere (se vi sono più occorrenze).
Dalla versione 2.0 (si raccomanda almeno la 2.01a13) di cdda2wav
è stato aggiunto il supporto per le librerie di cdparanoia,
in modo da poter usare le caratteristiche di estrazione accurata. Basta aggiungere il
parametro -paranoia alla linea di comando:
# cdda2wav dev=0,0,0 --alltraks -paranoia
|
Copyright (c) Monty monty@xiph.org
Un altro programma di estrazione (ripping) di tracce audio (CD-DA) è
cdparanoia che offre, rispetto a
cdda2wav, un miglior supporto per la correzione degli
errori, per una estrazione possibilmente perfetta. Naturalmente settando al
massimo l'accuratezza (paranoia-mode) si avrà una estrazione più
lenta.
# cdparanoia -d /dev/cdrom -B
# cdparanoia -z -d /dev/cdrom -B
# cdparanoia -Y -d /dev/cdrom -B
# cdparanoia -Z -d /dev/cdrom -B
|
Il primo (default) estrae le tracce facendo una verifica extra robusta dei
dati, della sincronizzazione, gestione errori e ricostruzione dei graffi, il
secondo continua a provare fino ad ottenere una estrazione perfetta, il terzo
disabilita la verifica dei dati ed il quarto si comporta come
cdda2wav facendo una estrazione in
“burst-mode”.
Come si legge dal README di
cdparanoia:
ATAPI drives may be used either with the native IDE cdrom driver, or with
IDE-SCSI host adaptor emulation. Both work, but the SCSI emulation mode works
much better for CDDA extraction. Cdparanoia may also be able to identify and
use unusual drives that report 'CDDA incapable' in native ATAPI mode.
|
che, per chi non conosce l'inglese, vuol dire più o meno:
I lettori ATAPI possono essere usati con il driver per cdrom IDE nativo, o
con l'emulazione di adattatore IDE-SCSI. Entrambi funzionano, ma il modo
emulazione SCSI funziona molto meglio per l'estrazione CDDA. Cdparanoia può
anche essere capace di identificare ed usare lettori insoliti che riportino
'inacapace di CDDA' in modo ATAPI nativo.
|
Copyright (c) 1995 Joerg Schilling joerg@schily.isdn.cs.tu-berlin.de
Per scrivere fisicamente l'immagine ISO o le tracce WAV sul CD occorre usare
cdrecord.
Per conoscere le triple (bus,id,lun) del CD-ROM e del CD-R:
Cdrecord 1.11a06 (i686-pc-linux-gnu) Copyright (C) 1995-2001 Jorg Schilling
Linux sg driver version: 3.1.19
Using libscg version 'schily-0.5'
scsibus0:
0,0,0 0) 'PLEXTOR' 'CD-ROM PX-40TS' '1.12' Removable CD-ROM
0,1,0 1) *
0,2,0 2) *
0,3,0 3) 'YAMAHA' 'CRW8824S' '1.00' Removable CD-ROM
0,4,0 4) *
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *
|
Vediamo degli esempi per Dati e Audio:
# cdrecord dev=0,3,0 speed=8 -eject immagine.iso
|
per scrivere CD-Dati a partire dall'imagine ISO,
# cdrecord dev=0,3,0 speed=4 -audio -pad -eject -swab *.wav
|
per scrivere il CD-Audio in modalità TAO (Track At Once),
# cdrecord dev=0,3,0 speed=4 -eject -pad -audio -dao -swab *.wav
|
per scrivere il CD-Audio in modalità DAO (Disck At Once).
Per effettuare una simulazione si aggiunge il parametro -dummy.
è anche possibile creare un CD-Dati al volo combinando, tramite pipe,
mkisofs e cdrecord:
# mkisofs -r -J -q -print-size /opt/archive
# mkisofs -r -J /opt/archive | \
cdrecord dev=0,3,0 speed=4 -tsize=XXXs -
|
dove XXX è il numero si settori restituito dal
primo comando. Questo parametro è necessario in quanto alcuni
masterizzatori si rifiutano di bruciare una immagine se non ne conoscono
preventivamente la dimensione.
Per copiare un CD al volo:
# SIZE=`isosize -x /dev/cdrom`; \
dd if=/dev/cdrom of=- bs=2048 | cdrecord dev=0,3,0 speed=4 -tsize=$SIZEs -
|
dove isosize è un'utilty contenuta nel pacchetto
sg_utils prelevabile da
http://www.torque.net/sg, oppure
(come indicato su CD-Writing HOWTO):
# cdrecord dev=0,3,0 speed=4 -isosize /dev/cdrom
|
Per cancellare un CD-RW:
# cdrecord dev=0,3,0 speed=8 blank=fast
# cdrecord dev=0,3,0 speed=8 blank=all
|
rispettivamente per il solo TOC o per tutto il CD.
Copyright (c) Andreas Mueller andreas@daneb.de
Il programma cdrdao è usato per la copia di CD e la
creazione di CD (soprattutto Audio) in modalità DAO. è simile,
per principio, a CDRWin per
Windows.
Usa un file per il TOC (Table of Content) che contiene la descrizione del CD
(tracce audio, CD-Text, immagini ISO, ecc.).
Per conoscere le triple (bus,id,lun) del CD-ROM e del CD-R:
Cdrdao version 1.1.5 - (C) Andreas Mueller andreas@daneb.de
SCSI interface library - (C) Joerg Schilling
L-EC encoding library - (C) Heiko Eissfeldt
Paranoia DAE library - (C) Monty
Check http://cdrdao.sourceforge.net/drives.html #dt for current driver tables.
Using libscg version 'schily-0.5'
0,0,0: PLEXTOR, CD-ROM PX-40TS, 1.12
0,3,0: YAMAHA, CRW8824S, 1.00
|
Per estrarre un immagine da un CD:
# cdrdao read-cd --device 0,0,0 --datafile immagine.bin immagine.toc
|
crea il file immagine.bin contenente i dati o l'audio ed
il file immagine.toc contenente la descrizione del
contenuto del .bin, simili ai file
.cue/.bin di CDRWin, che
è in grado di leggere.
Al posto delle triple (bus,id,lun) si possono usare i device SCSI generici
/dev/sg0, /dev/sg1.
Per velocizzare la scrittura dei comandi, si possono mettere i parametri
principali nel file di configurazione ~/.cdrdao, per
esempio
write_device: "/dev/sg1"
write_driver: "generic-mmc:0x10"
read_device: "/dev/sg0"
read_driver: "plextor-scan"
cddb_server_list: "freedb.freedb.org:/~cddb/cddb.cgi"
|
che da ora in poi supporremo esistente, per risparmiare battute sulla tastiera.
Per l'estrazione dell'audio usa le routine di accuratezza di
cdparanoia. Il livello di accuratezza può essere
scelto con il parametro --paranoia-mode n dove
n è 0...3, dall'estrazione
burst alla più accurata (default).
Per scrivere una immagine precedentemente estratta:
# cdrdao write --swap --speed 8 immagine.toc
|
Per bruciare un'imagine ISO ottenuta con mkisofs si crea il
file .toc corrispondente:
CD_ROM
TRACK MODE1
DATAFILE "immagine.iso"
|
Il file .toc può anche essere realizzato a mano
per poter creare delle compilation di tracce audio, ma il modo più
comodo è quello di usare il front-end per gnome
gcdmaster. Insieme al programma viene fornito uno
shell-script d'esempio generate_toc.sh per la generazione
di .toc a partire da tracce WAV o da un'immagine ISO,
oppure lo script perl wav2dao.pl.
Per la simulazione si aggiunge il parametro --simulate.
Se il masterizzatore non è riconosciuto si può aggiungere il
parametro per il tipo di driver da usare, che per i nuovi CD-R è,
generalmente --driver generic-mmc o
--driver generic-mmc-raw.
Per la copia, oltre ai due passi visti in precedenza (read e write) si
può usare:
# cdrdao copy --swap --speed 8 immagine.toc
|
che copia dal CD 0,0,0 al CD-R 0,3,0 facendo una immagine temporanea
cddatapid.bin (oppure
dal nome passato con --datafile) che verrà cancellata
automaticamente a meno che non si usi il parametro
--keepimage.
Per la copia al volo, senza passare per l'HD, si aggiunge il parametro
--on-the-fly.
Eventualmente, per ridurre rischi di
“buffer underrun” si possono usare i
parametri --fast-toc e --paranoia-mode 0.
Per cancellare un CD-RW:
# cdrdao blank --speed 8 --blank-mode minimal
# cdrdao blank --speed 8 --blank-mode all
|
rispettivamente per il solo TOC o per tutto il CD.
Si possono creare CD-Text aggiungeno i titoli al .toc,
in questo caso si dovrà usare il parametro
--driver generic-mmc:0x10 o
--driver generic-mmc-raw:0x10.
Un esempio di file .toc con CD-Text per tracce audio
singole:
CD_DA
CD_TEXT {
LANGUAGE 0 {
TITLE "Titolo dell'Album"
PERFORMER "Nome del Cantante"
}
}
// Track 1
TRACK AUDIO
NO COPY
NO PRE_EMPHASIS
TWO_CHANNEL_AUDIO
CD_TEXT {
LANGUAGE 0 {
TITLE "Titolo della prima canzone"
PERFORMER "Nome del Cantante"
}
}
FILE "track-01.wav" 0 02:40:40
// Track 2
TRACK AUDIO
NO COPY
NO PRE_EMPHASIS
TWO_CHANNEL_AUDIO
CD_TEXT {
LANGUAGE 0 {
TITLE "Titolo della seconda canzone"
PERFORMER "Nome del Cantante"
}
}
FILE "track-02.wav" 0 03:20:61
...
|
Un esempio per un immagine audio ottenuta con:
# cdrdao read-cd --datafile audio.bin audio.toc
|
aggiungendo le informazioni CD-Text a mano o con gcdmaster
o tramite CDDB:
# cdrdao read-cd --with-cddb --datafile audio.bin audio.toc
|
CD_DA
CD_TEXT {
LANGUAGE 0 {
TITLE "Titolo dell'Album"
PERFORMER "Nome del Cantante"
}
}
// Track 1
TRACK AUDIO
NO COPY
NO PRE_EMPHASIS
TWO_CHANNEL_AUDIO
CD_TEXT {
LANGUAGE 0 {
TITLE "Titolo della prima canzone"
PERFORMER "Nome del Cantante"
}
}
FILE "audio.bin" 0 02:40:40
// Track 2
TRACK AUDIO
NO COPY
NO PRE_EMPHASIS
TWO_CHANNEL_AUDIO
CD_TEXT {
LANGUAGE 0 {
TITLE "Titolo della seconda canzone"
PERFORMER "Nome del Cantante"
}
}
FILE "audio.bin" 02:40:40 03:20:61
...
|
Per degli screenshot su come usare gcdmaster consultare
http://cdrdao.sourceforge.net/gcdmaster/screenshots.html
All'interno dei sorgenti di cdrdao viene fornito, nella directory contrib,
il programma psxcopy per fare una copia di backup dei CD per PSX.
Capitolo 5. Multi Sessione
Normalmente un CD viene chiuso alla fine della sessione e non è
più possibile aggiungere dati. Ma utilizzando la modalità SAO
(Session At Once), detta “multisessione”
è possibile aggiungere ulteriori sessioni alla fine. Tale
modalità viene detta anche CD-ROM XA mode 2.
Viene sprecato dello spazio tra una sessione e l'altra, quindi lo spazio
totale disponibile di un CD multisessione è inferiore a quello di un
CD monosessione.
Tra la prima e la seconda sessione sono sprecati 11400 settori, mentre tra le
altre 6900, più eventuali settori per l'allinamento.
Per scrivere un CD in multisessione si devono usare le opzioni appropriate
con cdrecord (-multi) e
mkisofs (-C, -M).
Per la prima sessione si usa mkisofs normalmente
# mkisofs -r -J -T -o immagine1.iso path1
|
per cdrecord:
# cdrecord dev=0,3,0 speed=8 -multi -pad immagine1.iso
|
Quando si deve aggiungere una nuova sessione alle precedenti, tenendo il CD
nel masterizzatore (/dev/cdrw), si deve prima usare:
# cdrecord dev=0,3,0 -msinfo
|
che restituisce una coppia di numeri m,n da usare con
mkisofs:
# mkisofs -r -J -C m,n -M /dev/cdrw -o immagine2.iso path2
|
oppure, in un unico comando
# mkisofs -r -J -C `cdrecord dev=0,3,0 -msinfo` -M /dev/cdrw \
-o immagine2.iso path2
|
Per bruciare la nuova sessione
# cdrecord dev=0,3,0 speed=8 -multi -pad immagine2.iso
|
se vogliamo lasciare aperto il CD,
# cdrecord dev=0,3,0 speed=8 -pad immagine2.iso
|
se vogliamo chiuderlo.
I due numeri m,n indicano rispettivamente il numero del
primo settore dell'ultima sessione e il numero del primo settore della
prossima, tenendo presente che sono compresi i settori sprecati (11400 per
la prima sessione e 6900 per le altre).
Per copiare un CD Multisessione, in modo semplice e veloce, si può
procedere come segue:
-
si monta il CD
# mount /dev/cdrom /cdrom -t iso9660 |
-
si crea l'immagine ISO a partire dal CD
# mkisofs -v -r -J -V"Etichetta" -o immagine.iso /cdrom |
-
si brucia l'immagine
# cdrecord -v dev=0,3,0 speed=8 -eject immagine.iso |
In questo modo si crea un CD monosessione con tutte le sessioni del CD
originale.
Se, invece, si vuole preservare la struttura Multisessione del CD originale,
allora si devono estrarre le singole sessioni singolarmente e poi bruciarle.
Tale procedimento è più complicato ed è stato provato
da me poche volte, quindi non so se è affidabile al 100%.
Per conoscere la struttura del CD si può usare
cdda2wav:
Type: ROM, Vendor 'PLEXTOR' Model 'CD-ROM PX-40TS' Revision '1.12' no MMC
724992 bytes buffer memory requested, 4 buffers, 75 sectors
#Cdda2wav version 1.11a06_linux_2.4.7-ac11_i686_i686 real time
sched. soundcard support
DATAtrack recorded copy-permitted tracktype
1- 2 uninterrupted no data
Table of Contents: total tracks:2, (total time 68:47.41)
1.[25:21.06], 2.[43:24.35],
Table of Contents: starting sectors
1.( 0), 2.( 114081), lead-out( 309416)
CDINDEX discid: T3PoIBeLb2R_7Kg7mKJ_sCtsNtg-
CDDB discid: 0x0d101d02
CD-Text: not detected
CD-Extra: not detected
This disk has no audio tracks
|
tale output ci dice che il CD è formato da 2 sessioni. La prima parte
dal settore 0, la seconda dal settore 114081.
Al posto di cdda2wav si può usare cdrecord
:
# cdrecord dev=0,0,0 -toc
|
Cdrecord 1.11a06 (i686-pc-linux-gnu) Copyright (C) 1995-2001 Jorg Schilling
scsidev: '0,0,0'
scsibus: 0 target: 0 lun: 0
Linux sg driver version: 3.1.19
Using libscg version 'schily-0.5'
Device type : Removable CD-ROM
Version : 2
Response Format: 2
Capabilities : SYNC LINKED
Vendor_info : 'PLEXTOR '
Identifikation : 'CD-ROM PX-40TS '
Revision : '1.12'
Device seems to be: Generic CD-ROM.
Using generic SCSI-2 CD driver (scsi2_cd).
Driver flags :
Supported modes:
first: 1 last 2
track: 1 lba: 0 ( 0) 00:02:00 adr: 1 control: 4 mode: 1
track: 2 lba: 114081 ( 456324) 25:23:06 adr: 1 control: 4 mode: 1
track:lout lba: 309416 ( 1237664) 68:47:41 adr: 1 control: 4 mode: -1
|
Usano il programma isoinfo contenuto nel pacchetto
cdrtools (che contiene a sua volta mkisofs,
cdda2wav, cdrecord) possiamo conoscere in dettaglio la dimensione
in settori di ciascuna sessione:
# isoinfo -d -i /dev/cdrom
|
CD-ROM is in ISO 9660 format
System id: LINUX
Volume id: Sessione 1
Volume set id:
Publisher id:
Data preparer id:
Application id:
Copyright File id:
Abstract File id:
Bibliographic File id:
Volume set size is: 1
Volume set seqence number is: 1
Logical block size is: 2048
Volume size is: 102681
Joliet with UCS level 3 found
Rock Ridge signatures version 1 found
|
la riga che ci interessa è quella contenente
“Volume size is”, nel nostro caso contiene 102681. Sappiamo
é così la dimensione in settori della prima sessione. Per la seconda:
# isoinfo -d -T 114081 -i /dev/cdrom
|
usando il parametro -T, per indicare dove inizia la seconda
sessione, otteniamo la dimensione 195335.
Per estrarre le due sessioni:
# dd if=/dev/cdrom of=immagine1.iso bs=2048 count=102681
# dd if=/dev/cdrom of=immagine2.iso bs=2048 skip=114081 count=195335
|
e per bruciarle:
# cdrecord -v dev=0,3,0 speed=8 -multi immagine1.iso
# cdrecord -v dev=0,3,0 speed=8 immagine2.iso
|
Lo stesso discorso, visto per l'uso di cdrecord, vale se
per bruciare il CD usiamo cdrdao aggiungendo il parametro
--multi. Per ottenere le informazioni sull'ultima sessione
(per mkisofs)
Per usare cdrdao si devono scrivere i file
.toc, per la prima sessione:
CD_ROM_XA
TRACK MODE1
DATAFILE "immagine1.iso"
|
estratta con dd, oppure si può usare direttamente
cdrdao per estrarre l'immagine e creare il .toc
:
# cdrdao read-cd --session 1 --datafile immagine1.iso immagine1.toc
|
che produce il seguente .toc:
CD_ROM
// Track 1
TRACK MODE1
NO COPY
DATAFILE "immagine1.iso" 22:49:06 // length in bytes: 210290688
|
in questo caso si deve modificare la prima linea, da CD_ROM
a CD_ROM_XA. Si brucia il CD:
# cdrdao write --multi --speed 8 immagine1.toc
|
si crea l'immagine della seconda sessione come nel caso di
cdrecord, il file .toc analogo al
precedente per la seconda sessione:
CD_ROM_XA
TRACK MODE1
DATAFILE "immagine2.iso"
|
oppure, come visto prima:
# cdrdao read-cd --session 2 --datafile immagine2.iso immagine1.toc
|
che produce:
CD_ROM
// Track 1
TRACK MODE1
NO COPY
DATAFILE "immagine2.iso" 43:24:35 // length in bytes: 400046080
|
Si brucia la seconda sessione
# cdrdao write --multi --speed 8 immagine2.toc
|
per mantenere il CD aperto
# cdrdao write --speed 8 immagine2.toc
|
per chiudere il CD.
Come si può notare, l'intestazione per un file .toc
per CD-Dati monosessione è CD_ROM, mentre per uno
multisessione deve essere CD_ROM_XA, perciò, come
detto, se il file .toc viene creato con cdrdao
, estraendo l'immagine, si dovrà procedere alla modifica.
Esistono vari front-end, sia per console che per le interfacce grafiche, di
tali programmi. I seguenti sono i miei preferiti (NB: non uso KDE):
gcombust: front-end per GTK+
per copiare, creare CD-Dati, creare CD-Audio, il mio preferito
per CD-Dati;
gcdmaster: front-end di
cdrdao per gnome, il mio
preferito per CD-Audio;
ECLiPt Roaster (eroaster):
tipo gcombust, ma scritto in
python (gnome-python);
Gnome Toaster (gtoaster):
per la copia, creazione di cd-dati, cd-audio
(WAV e MP3), tutto
on-the-fly con d'n'd (gnome);
grip: front-end per vari ripper con supporto
per l'encoding in MP3 (GTK+).
Un front-end per console che ho provato è burncenter.
Ne esistono molti altri, per una lista consultare
http://freshmeat.net.
Copyright (c) Jonas Munsin jmunsin@iki.fi
Front-end, per GTK+, dei noti mkisofs,
cdrecord, cdda2wav,
cdparanoia e cdlabelgen (programma di
generazione di copertine per CD).
Il programma è suddiviso in vari notebook:
Si possono scegliere le opzioni per mkisofs per la
creazione del filesystem ISO, il nome dell'immagine ISO, l'immagine
del floppy per creare un CD avviabile, ecc..
Si possono aggiungere i file e le directory da inserire nel CD-Dati,
eventualmente rinminadoli in modo che appaiano con nomi e percorsi
diversi. L'elenco si può salvare per un utilizzo successivo.
Si può anche calcolare lo spazio necessario.
Si aggiungono le tracce audio scegliendo i file WAV, eventualmente
estratti cliccando il bottone Scarica il CD.
In questa parte si decide che tipo di masterizzazione effettuare:
compilation Dati al volo o da immagine, copia al volo di CD-Dati,
CD-Audio o copia di un CD-Audio (non una copia bit a bit,
ma traccia per traccia TAO). Inoltre sono presenti le opzioni
per il masterizzatore: device, velocità, ecc.
Qui vengono visualizzati i messaggi dei programmi, a line di comando,
che sono usati (mkisofs, cdrecord,
ecc.).
è possibile controllare che il CD-Dati appena masterizzato
sia corretto.
Si tratta di un front-end per console a mkisofs,
cdrecord, cdda2wav e
mpg123. è formato da uno script principale che
visualizza un menù testuale: ,
, ,
, , ecc.
Tale script ne richiama altri, ognuno dei quali si occupa di una operazione
specifica.
L'installazione (# sh install) è basata sulla
richiesta di alcune informazioni (device del CDROM e del CDR, dir. temporanea,
ecc.), in base alle quali viene generato lo script principale
(burncenter).
Lo script “burncenter” viene copiato in
/usr/bin, gli altri in
/usr/share/burncenter, a meno di
modificare il file “install.2.in” (come
preferisco, mettendo /usr/local/bin,
/usr/local/share/burncenter).