Avanti Indietro Indice

4. Caro Winfried,...

In altre parole questa è la sezione di solito chiamata "frequently asked questions with answers". Se hai dei problemi con il tuo partner, i tuoi bambini o il cane puoi inserirli nella sezione, sempre che abbiano a che fare con la scrittura di CD-R o anche solo se si tratta di situazioni divertenti.

4.1 Quanto è sensibile il processo di scrittura?

Prova. Usa l'opzione -dummy per effettuare una simulazione con cdrecord. Fai quello che vuoi e osserva se il processo viene interrotto o meno.

Se alimenti cdrecord direttamente da mkisofs tieni presente che processi che occupano molto il disco come l'aggiornamento del database locate mettono in pericolo il flusso di dati e quindi la salute del tuo CD; meglio controllare che non vengano lanciati dal cron o anacron mentre stai masterizzando.

4.2 La frammentazione ha un cattivo impatto sul flusso?

Di solito è così bassa che il suo impatto non è visibile. Comunque è piuttosto facile costruire casi patologici di frammentazione, che abbassino il trasferimento degli hard disk sotto i 100 kbytes/secondo. Basta non farlo. :-)

Sì, i file sull'hard disk vengono frammentati durante gli anni. Più questo accade velocemente più il filesystem si riempie. Lascia sempre un 10% o 20% di spazio libero e non dovresti avere problemi nella scrittura di CD.

Se non ne sei sicuro dai un'occhiata ai messaggi stampati al boot, la percentuale di frammentazione è stampata mentre vengono controllati i filesystem. Puoi controllare questo valore con il comando molto rischioso:

shell> e2fsck -n  /dev/sda5        # '-n' is important!
[robaccia-lascia perdere]
/dev/sda5: 73/12288 files (12.3% non-contiguous)

In questo esempio la frammentazione è molto alta - ma ci sono solo 73 file molto piccoli su questo filesystem (usati in /tmp) quindi il valore non è allarmante.

Vi è un'utility in fase sperimentale chiamata e2defrag per deframmantare filesystem extended-2. La versione corrente non funziona ancora abbastanza bene per essere usata anche solo in ambienti privati. Se vuoi veramente deframmentare il tuo filesystem, crea una copia di backup (meglio due), fai pratica nel ripristino dei dati e crea un nuovo filesystem (distruggendo il vecchio) e ripristina i dati. In due parole questa è la tecnica più sicura.

4.3 Posso tenere un'immagine su un filesystem UMSDOS?

Certo. L'unico filesystem che non è abbastanza veloce per masterizzare è il network filesystem (NFS).

Anch'io usavo UMSDOS per condividere lo spazio su disco fra Linux e DOS/Win su un PC (486/66) dedicato alla masterizzazione.

4.4 Non c'è qualche modo per aggirare le limitazioni ISO-9660?

Sì. Puoi mettere su un CD qualsiasi filesystem vuoi. Ma altri sistemi operativi diversi da Linux non saranno in grado di usarlo.

Ecco un esempio passo a passo:

Se vuoi aggiungere un CD come questo in /etc/fstab ne devi disabilitare il controllo, cioè per esempio:

/dev/cdrom  /cdrom  ext2  defaults,ro  0 0

Il primo 0 significa che il disco non deve essere incluso nei dump, il secondo (importante) indica di non controllare la presenza di errori al boot (fsck troverebbe degli errori sul CD).

4.5 Come copio le tracce da CD Audio?

Ci sono parecchi pacchetti software. Il più nuovo si chiama "cdparanoia" e puoi scaricarlo da:

http://www.mit.edu/afs/sipb/user/xiphmont/cdparanoia/index.html

Oppure puoi usare una combinazione di "cdda2wav" e "sox", disponibili presso sunsite e i suoi mirror:

ftp://sunsite.unc.edu/pub/Linux/apps/sound/cdrom/cdda2wav0.71.src.tar.gz

ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/sox-11gamma-cb3.tar.gz

Con cdda2wav puoi copiare un intervallo specifico (oppure un'intera traccia) da un CD Audio e convertire il risultato in un file .wav. sox al contrario riconverte i file .wav nel formato cdda tipico dei CD audio dimodoché possano essere scritti su un CD-R con cdrecord. Di solito non è necessario usare sox perché le nuove versioni di cdrecord hanno già il supporto per i file .au e .wav.

4.6 Come controllo la presenza di periferiche SCSI dopo il boot?

Il file drivers/scsi/scsi.c contiene queste righe:

/*
 * Usage: echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi
 * with  "0 1 2 3" replaced by your "Host Channel Id Lun".
 * Consider this feature BETA.
 *     CAUTION: This is not for hotplugging your peripherals. As
 *     SCSI was not designed for this you could damage your
 *     hardware !
 * However perhaps it is legal to switch on an
 * already connected device. It is perhaps not
 * guaranteed this device doesn't corrupt an ongoing data transfer.
 */

(NDT: In pratica il comando "aggiunge" al sistema una nuova periferica indicata dalle coordinate HA, CH, ID, LUN. Occhio, però! Primo: questa funzione è ancora una beta; Secondo: SCSI non è USB e quindi non è una buona idea collegare delle periferiche "a caldo". L'ho visto fare con successo, ma non è una garanzia... Questa funzione è stata ideata per aggiungere periferiche già collegate e anche in questo caso non è sicura al 100%)

Tieni presente che dovrebbe essere usata solo per aggiungere periferiche alla fine della catena. Se la inserisci nel mezzo rompi le scatole al meccanismo di assegnazione dei nomi (directory /dev) e potresti distruggere tutti i tuoi dati.

4.7 È possibile creare una copia 1:1 di un CD di dati?

Sì. Tieni presente però che qualsiasi errore di lettura dell'originale (per polvere o graffi) si ripercuoterà in una copia difettosa.

(NDT: spiacente ma non è vero nella maggior parte dei casi. CD che presentano incongruenze fra "user data" e Error Correction Codes/Error Detection Codes non possono essere replicati esattamente (qualcuno ha detto Playstation?) in quanto il firmware del lettore corregge automaticamente questi "errori". In pratica non è possibile leggere/scrivere quello che si vuole sul CD ma 280 byte di ogni settore devono essere una funzione dei 2048 di dati. Si tratta di 4 byte per l'individuazione degli errori e 276 byte per la loro correzione. Una copia 1:1 è possibile con cdrdao e il driver generic-mmc-raw, che supporta per limitazioni fisiche solo una ristretta quantità di hardware. Se non hai capito niente di questo dai un'occhiata alle specifiche SCSI-2 e tanti auguri).

Primo caso: hai un masterizzatore e un lettore CD-ROM separato. Se impartisci il comando

cdrecord -v dev=0,6,0 speed=2 -isosize /dev/scd0

puoi estrarre un flusso di dati dal lettore /dev/scd0 e scriverlo direttamente tramite il masterizzatore che ha ID=3 a velocità 2X. (NDT: in questo caso si effettua una copia di "cooked data", cioè si copia solo l'area di dati utente in ogni settore. L'altro caso possibile è la copia di "raw data" in cui vengono copiate dal CD le seguenti aree:

)

Secondo caso: non hai un lettore CD-ROM separato. Mi sa che devi usare il masterizzatore per creare l'immagine del CD-ROM:

dd if=/dev/scd0 of=cdimage

Questo comando legge il contenuto del CD dalla periferica corrispondente a /dev/scd0 e lo scrive nel file "cdimage". Il contenuto di questo file è identico a quello generato da mkisofs, quindi è possibile procedere come descritto precedentemente nel capitolo (cioè usare il file cdimage come input per cdrecord). Se ti interessa avere un indice dell'avanzamento del processo e altre cosucce carine da vedersi puoi usare sdd di Jörg Schilling.

Se si presentano errori installa una versione recente di cdrecord che contiene lo strumento "readcd" (presente nella directory misc/). Dà gli stessi risultati di dd, ma ripete la lettura del settore più volte in caso di errori. (NDT: per chi usa cdrdao è disponibile un'opzione 'read-cd' che legge il contenuto del disco e ne salva la struttura in un file (la Table Of Contents) che verrà poi utilizzato nel processo di scrittura per replicare la struttura del CD originale.)

4.8 Linux può leggere i CD-ROM Joliet?

Sì. I kernel più nuovi (2.0.36 e oltre) hanno il suppporto per il formato Joliet. Ricordati di usare le parole chiave iso9660 e joliet (che poi è solo un'estensione) nel file /etc/fstab. Per maggiori dettagli, visita la pagina http://www-plateau.cs.berkeley.edu/people/chaffee/joliet.html.

4.9 Come posso leggere/montare CD-ROM con il masterizzatore?

Allo stesso modo che con il lettore. Niente trucchi. Tieni presente che devi usare le periferiche scd (SCSI CDROM) per montare i CD-ROM in lettura anche se possiedi un CD-ROM ATAPI (ricorda che hai configurato le tue periferiche ATAPI con l'emulazione SCSI). Per esempio nel file /etc/fstab potresti mettere:

/dev/scd0  /cdrom  iso9660  ro,user,noauto  0  0

4.10 E per far stare ancora più dati su di un CD-R?

Usa bzip2 invece di gzip o pkzip. Ti fa risparmiare fino al 30% di spazio per file più grandi di 100KB. Scaricatelo all'indirizzo

http://www.muraroa.demon.co.uk/

Invece di masterizzare un vero CD audio puoi convertire i file .wav in .mp3 e piazzarli su un CD ISO9660 come normalissimi file. Generalmente la compressione MPEG III ha un'efficienza di 1:10. Ovviamente lo stereo non può leggere dei file... questo è il rovescio della medaglia. Però potresti sempre usare l'hard-disk per la prossima festa; con 18GB puoi avere a disposizione 3000-4000 titoli (NDT: e non dimenticarti di invitarmi! :).

Un compressore MPEG III è disponibile presso:

http://www.stud.ifi.uio.no/~larsi/other/8hz-mp3-cheng.tar.gz

Un riproduttore MPEG-III è disponibile presso:

http://homepages.uni-tuebingen.de/student/michael.hipp/mpg123/

Per la voce campionata potresti ridurne le dimensioni usando la "GSM lossy speech compression":

ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/

http://kbs.cs.tu-berlin.de/~jutta/toast.html

(NDT: per chi quando ha letto il titolo della sezione ha subito pensato a un buon vecchio e sano oversize (della serie: scrivi finché c'è plastica) ho buone notizie: in generale i driver non sono schizzinosi quindi se il masterizzatore è fisicamente in grado di effettuare oversize non ci sono problemi. Che io sappia i driver che lo permettono sono : Teac-CDR50/55, generic-mmc di cdrdao e cdrecord. Secondo la documentazione di cdrdao QUALSIASI masterizzatore utilizzabile con il driver generic-mmc-raw dovrebbe essere in grado di effettuare oversize, il firmware non dovrebbe essere in grado di impedirlo).

4.11 Come creo dei CD di boot?

Devi avere un floppy da 1.44 MB bootabile. Creane l'esatta immagine con il comando

dd if=/dev/fd0 of=boot.img bs=18k

Piazza l'immagine nella directory che contiene la tua collezione di file (o anche in una sottodirectory, fai tu...). Passa a mkisofs il nome del file con l'opzione '-b' e in più usa '-c'. Per maggiori informazioni leggiti il file README.eltorito nella distribuzione di mkisofs.

Un'applicazione interessante per un CD di boot personalizzato è un ambiente DOS o Windows a prova di virus. Così puoi risparmiare i soldi per un hard-disk (se hai una rete e usi samba per rendere disponibili dei file utente su un fileserver). Il giornale di informatica tedesco C't ha un articolo a tal proposito nel numero 11/99, pagina 206 ( http://www.heise.de/).

Alcuni dettagli sul CD-ROM di boot della RedHat li trovi presso: http://www.channel1.com/users/rodsmith/rhjol-technical.html.

4.12 Come posso rendere i CDROM scrivibili come un Hard Disk?

Sì. C'è un filesystem di overlay per Linux che puoi montare al di sopra del CD-ROM e che intercetta tutte le operazioni di scrittura. I file nuovi e quelli modificati sono memorizzati da qualche altra parte, ma all'utente sembra proprio di averli modificati. Per maggiori informazioni dai un'occhiata a: http://home.att.net/~artnaseef/ovlfs/ovlfs.html.

Se non ne hai abbastanza devi solo aspettare che Linux supporti il filesystem UDF, oppure rimboccati le maniche e dai una mano: http://trylinux.com/projects/udf/. Al momento è supportata la sola lettura a causa di limitazioni dei driver per CDROM nel kernel.

4.13 È possibile usare più masterizzatori allo stesso tempo?

Sì. E' stato testato con 3 masterizzatori 6x funzionanti a piena velocità su di un PC con processore a 233 Mhz, un controller SCSI a singolo canale e kernel 2.2.12. Ti serve o una versione recente del Kernel (2.2.12 o superiore) oppure una patch per avere più buffer nel driver SCSI generico ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/alpha; funziona per versioni sino alla 2.2.5.

4.14 Quale supporto è il migliore?

La risposta a questa domanda era obsoleta ed è stata rimossa. La domanda in sé viene mantenuta per avere uno schema di numerazione costante.

4.15 E a proposito di Solaris, *BSD, AIX, HP-UX, ecc.?

Solo il cap.2 è specifico per Linux. Puoi applicare i capitoli 3 e 4 anche ad altri sistemi operativi. Guarda i file README.NetBSD, README.aix, README.hpux, README.next, README.solaris, README.sunos, README.vms o README.xxxBSD dalla distribuzione di cdrecord.

4.16 Dove posso mantenere permanentemente la configurazione locale?

Hai due possibilità. Usare il file di configurazione per cdrecord oppure uno shell-wrapper come quello indicato qui sotto. Questo script per la shell legge un file di configurazione, nel quale sono indicate le opzioni e i parametri per cdrecord riga per riga. I nomi sono esattamente gli stessi che sulla riga di comando, ma senza essere preceduti da -. I commenti sono possibili. Esempio:

# be verbose
v
# set the speed of the writer
speed=2
# the device-coordinates in the form BUS,ID,LUN
dev=0,6,0

I file di configurazione per lo script sono all'interno di /etc/cdrecord e devono essere indicati nella riga di comando. Esempio: se vuoi riferirti alla configurazione /etc/cdrecord/mywriter.cfg, allora devi impartire il comando "cdrecord.sh mywriter.cfg -audio track1...". Ogni parametro dopo mywrite.cfg è passato a cdrecord.

#! /bin/bash

CFGDIR="/etc/cdrecord"

CFG="$1"
shift
ARGS_LEFT="$@"

if [ ! -f "$CFGDIR/$CFG" ]
then
    echo "Configuration file $CFGDIR/$CFG not found. Exiting."
    exit 1
fi

while read LINE
do
    case $LINE in
        \#*|"") continue;;
    esac
    old_IFS="$IFS"
    IFS="$IFS="
    set -- $LINE
    IFS="$old_IFS"
    O_NAME="$1"
    O_VALUE=""
    while shift
    do
        case $1 in
            "") continue;;
        esac
        O_VALUE="$1"
    done

    if [ -z "$O_VALUE" ]
    then
        O_CDRECORD="$O_CDRECORD -$O_NAME "
        continue
    fi
    O_CDRECORD="$O_CDRECORD $O_NAME=$O_VALUE "
    
done < "$CFGDIR/$CFG"

set -x    #DEBUG
exec cdrecord $O_CDRECORD $ARGS_LEFT
echo "Execution of cdrecord failed."

4.17 Come faccio a leggere le informazioni del CD?

Da qualche parte dopo i primi 32k sul CD vi è un blocco contenente le informazioni sul CD. Puoi estrarre queste informazioni con questo script:

#! /bin/bash

RD=/dev/cdrom
for i in 32768,7   32776,32 32808,32 32958,128 33086,128 33214,128 \
         33342,128 33470,32 33581,16 33598,16  33615,16  33632,16
do
    old_IFS="$IFS"
    IFS=","
    set -- $i
    IFS="$old_IFS"
    OFFSET=$1
    LENGTH=$2
    echo "*`dd if=$RD bs=1 skip=$OFFSET count=$LENGTH   2> /dev/null`#"
done

4.18 E a proposito dei riscrivibili?

Per riscrivere un supporto CD-RW specifica il parametro blank=fast a cdrecord. Tutto qui. Dai un'occhiata alla pagina man di cdrecord per maggiori dettagli su questo parametro.

4.19 Come creo un CD multisessione?

Per prima cosa l'immagine per un CD multisessione deve essere formattata con il filesystem ISO9660 e le estensioni RockRidge. In più devi usare l'opzione -multi di cdrecord se vuoi ancora aggingere nuove sessioni. Quindi, almeno per la prima devi usare l'opzione -multi.

Le immagini per la seconda e successive sessioni sono un poco più difficili da generare. Mkisofs deve sapere dove inizia lo spazio libero sul CD. ti puoi procurare questa informazione con l'opzione -msinfo di cdrecord (ecco un esempio).

shell> NEXT_TRACK='cdrecord -msinfo dev=0,6,0'
shell>: echo $NEXT_TRACK
shell> mkisofs -R -o cd_image2 -C $NEXT_TRACK -M /dev/scd5
          private_collection/ \

Per maggiori informazioni leggi il file README.multi incluso nella distribuzione di cdrecord.

4.20 Devo usare il controller SCSI che mi è stato venduto insieme al masterizzatore?

Molte specifiche di masterizzatori indicano di usare un bus SCSI separato se i dati viaggiano da un CD-ROM verso un masterizzatore, e ho potuto constatarlo in questa occasione.

Controller Adaptec 2940UW SCSI, 24x SCSI CD-ROM e masterizzatore 4x4 SCSI. Quando mi è arrivato il masterizzatore aveva nella scatola il suo controller ISA-SCSI che poteva pilotare una sola periferica. Ho pensato di lasciarlo stare e di usare il mio controller Adaptec per ogni cosa. Ho notato che spesso mi capitavano svuotamenti del buffer durante la scrittura a 4X, ma da quando ho iniziato ad usare il controller ISA-SCSI i problemi sono scomparsi. Conosco altre 2 persone (che usano controller Adaptec 2940) che hanno avuto esattamente gli stessi problemi, durante la scrittura "al volo". Non ho mai avuto problemi di questo tipo passando dall'HD al masterizzatore sullo stesso bus.

4.21 Come masterizzare da rete?

Di solito un trasferimento via FTP è sufficientemente veloce per sostenere una scrittura a 4X, anche su una ethernet a 10 Mbit. Potete usare cdrecord in coppia con un client ftp attraverso una fifo. Prima create una fifo chiamata cdimage:

mkfifo cdimage
ftp other.host.org
get cdimg cdimage

Quindi trattate la fifo come una normale immagine, per es. con il comando:

cdrecord dev=0,1,0 speed=2 cdimage

Il vostro client ftp si accorgerà che cdrecord vuole leggere dal file e inizierà il trasferimento dati.

4.22 Sento degli scricchiolii alla fine di ogni traccia

Dovete utilizzare la modalita disk-at-once (DAO) per eliminarli.

4.23 Come ci si può organizzare per permettere ad un utente normale la scrittura dei CD?

Potete rendere setuid l'eseguibile di cdrecord. Questo però potrebbe essere un rischio per la sicurezza. Impostare i permessi sui file di periferica non aiuta in quanto cdrecord manda comandi privilegiati attraverso l'interfaccia SCSI generica.

which cdrecord
chown root.root /usr/bin/cdrecord
chmod 4111 /usr/bin/cdrecord

4.24 La mia variante di Unix è supportata?

Probabilmente sì. Compilate cdrecord per la vostra piattaforma e date il comando "cdrecord -scanbus". Leggete i file README.* per la vostra versione di Unix che sono distribuiti con i sorgenti di cdrecord. Comunque, non tutte le versioni di Unix possono leggere le estensioni RockRidge, Joliet o HFS.

4.25 Dove posso procurarmi gli standard "Yellow Book" e "Orange Book"?

Potete ottenere le specifiche stampate dalla Philips ma sono molto costose.

4.26 Sto cercando delle informazioni sulla scrittura di Video-CD sotto Linux.

Anch'io.

4.27 È più facile impostare un sistema IDE o SCSI?

Per quanto riguardo la scrittura di CDR sotto Linux, i masterizzatori SCSI sono leggermente più facili da impostare. E si dice che abbiano una migliore gestione degli errori. Se questo compensi il costo maggiore non è una domanda cui sia possibile rispondere in generale.

4.28 Come posso effettuare l'overburn di un CD usando {cdrecord,cdrdao}?

Effettuare l'overburn di un CD non è niente di speciale. È a tuo rischio provare a far stare i dati sul CD, ma questo è tutto. Non vi è alcun limite ai 650MB nel software sotto Linux.

4.29 Cosa farà cdrecord quando non vi sarà input disponibile sulla pipe?

Terminerà la scrittura. Quindi è possibile accoppiare il vostro strumento di backup preferito a cdrecord tramite una pipe, come "bru -size=640m -f - |cdrecord dev=0,1,0 speed=2 -". È importante prestare molta attenzione alle opzioni dello strumento di backup.

4.30 Vi è l'equivalente di ignore=hdX per l'emulazione ide-scsi?

Non saprei come fare, ma chiunque è il benvenuto per aggiungere questa caratteristica ai sorgenti del kernel di Linux.

4.31 Quante volte posso utilizzare un CD-RW prima che divenga difettoso?

Buona domanda.

4.32 Quale formato di CD posso scegliere per renderlo indipendente dalla piattaforma?

Un CD-ROM che debba essere letto su molti sistemi può solo usare il formato semplice ISO9660. Questo significa stupidi nomi file in formato 8.3 dal vecchio MS-DOS e senza alcuna estensione HFS (Macintosh), Joliet (Microsoft) o RockRidge (Unix più recenti). Non vi è alcuna estensione per nomi di file più lunghi che possa essere letta da tutti i sistemi operativi.

4.33 È possibile la multisessione per tracce audio?

I lettori di CD Audio sono in grado di gestire solamente le tracce audio memorizzate nella prima sessione. In altre parole, se aggiungete tracce in sessioni successive, queste non verranno lette dal vostro stereo. Scrivere una seconda sessione può essere utile per nascondere una traccia dati al lettore. In questo modo potete evitare che vi sia una traccia di silenzio, come accade nel caso di CD con tracce audio e dati mescolate.

NDT: Per quanto riguarda i dischi con tracce audio e dati esistono 2 possibilità.

  1. CD-Extra: una prima sessione contenente le tracce audio, una seconda contenente dati. Gli stereo leggeranno solamente le tracce audio, mentre con un lettore CDROM sarà visibile la traccia dati.
  2. CD Mixed Mode: una traccia dati seguita da tracce audio nella prima sessione. È possibile che uno stereo tenti di riprodurre la traccia dati, con conseguente rischio di rovinare le casse.
L'uomo comune, provvisto di cervello come dotazione di serie, usa adottare la prima possibilità :-).

4.34 Sento degli scricchiolii alla fine di ogni traccia audio.

Utilizza la modalità di scrittura DAO (Disc At Once) per i tuoi CD audio e non ci saranno più problemi.


Avanti Indietro Indice

Hosting by: hurra.com
Generated: 2007-01-26 17:56:15