  CD-Writing HOWTO
  Winfried Trmper <winni@xpilot.org>
  v2.4.1, 16 Dicembre 1997

  Questo documento tratta del processo di masterizzazione dei CD sotto
  Linux.

  1.  Introduzione

  La mia prima esperienza con i masterizzatori di CD  stata guidata dal
  "Linux CD Writer mini-HOWTO" di Matt Cutts <cutts@cs.unc.edu>.  Grazie
  Matt!

  Anche se la mia intenzione era solo di aggiornare il suo documento,
  l'ho riscritto da zero quando mi sono reso conto di quante cose erano
  cambiate dal 1994.


  1.1.  Disclaimer (in lingua originale)

  I (Winfried Truemper) DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  DOCUMENT, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  FITNESS FOR A CERTAIN PURPOSE; IN NO EVENT SHALL I BE LIABLE FOR ANY
  SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
  CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
  CONNECTION WITH THE USE OF THIS DOCUMENT.

  In breve: leggetelo ed usatelo a vostro rischio e pericolo.


  1.2.  Letture consigliate

  La CD-R FAQ <http://www.cd-info.com/CDIC/Technology/CD-R/FAQ.html> 
  una FAQ generale sui compact-disk registrabili (CD-R).

  Il Linux CD-ROM HOWTO spiega tutto quello di cui avete bisogno sui
  drive per CD-ROM sotto Linux. Come aggiunta potete dare un'occhiata al
  Linux SCSI HOWTO e al Linux Kernel HOWTO.



  1.3.  Terminologia... laser al massimo... fuoco!


  CD-ROM sta per Compact Disc Read Only Memory, cio "Memoria a sola
  lettura su Compact Disk", un mezzo di immagazzinamento che usa un
  laser ottico per sentire dei microscopici avvallamenti su un disco
  argentato riflettente (il colore argentato viene da uno strato di
  alluminio che fa da supporto). Gli avvallamenti rappresentano (in un
  certo modo) i bit di informazione e sono cos piccoli che sul disco ne
  entrano qualche miliardo; quindi un CD  un mezzo di immagazzinamento
  per grandi masse di dati.

  Il termine  CD-R sta in breve per CD-ROM registrabile e si riferisce
  ad un CD che non ha quei "microscopici avvallamenti" sulla
  superficie... e che quindi  vuoto.

  Al posto dello strato di alluminio (argento) il CD-R ha una pellicola
  colorata speciale su cui si possono incidere gli avvallamenti con il
  calore, cio dando al laser che normalmente legge soltanto gli
  avvallamenti un po' pi di potenza in modo che bruci la superficie. 
  un'azione che si pu fare solo una volta su ogni CD-R.

  Si possono per lasciare delle aree vuote e scriverle in seguito,
  creando un cosiddetto CD multisessione.
  Questo mini-HOWTO tratta dell'operazione di masterizzazione di un CD-
  R. Benvenuto a bordo, capitano.



  1.4.  Masterizzatori supportati


  L'elenco dettagliato dei modelli che si sa che (non) funzionano 
  disponibile su


       <http://www.shop.de/cgi-bin/winni/lsc.pl>


  Questo elenco verr incluso nelle versioni future di questo mini-
  HOWTO. Sono supportati la maggior parte dei masterizzatori SCSI e le
  versioni pi recenti di cdrecord supportano anche i masterizzatori
  ATAPI.

  Se l'hardware che avete non  supportato potete sempre usare Linux per
  creare un'immagine del futuro CD, ma poi dovrete usare del software
  per DOS per scrivere l'immagine sul CD-R [potreste volere fare cos
  perch la maggior parte del software per DOS non riesce a trattare i
  nomi lunghi di Linux].

  In questo caso potete saltare tutte le sezioni sull'hardware (quelle
  sui dispositivi generici SCSI e su cdwrite/cdrecord).



  1.5.  Caratteristiche" supportate

  Al momento il software per scrivere CD sotto Linux ha le seguenti
  caratteristiche principali:



       Caratteristica  cdwrite-2.1     cdrecord-1.7
       --------------------------------------------
       Supporto ATAPI  no              si
       Multisessione   solo parziale   si

       RockRidge       si (mkisofs)    si (mkisofs)
       El Torito       si (mkisofs)    si (mkisofs)
       HFS             si (mkhybrid)   si (mkhybrid)
       Joliet          si (mkhybrid)   si (mkhybrid)




  RockRidge  un'estensione per permettere nomi dei file pi lunghi e
  una gerarchia di directory pi profonda. El Torito serve per produrre
  dei CD avviabili. Consultate la documentazione riportata in fondo per
  altri dettagli su queste caratteristiche speciali. L'HFS permette di
  leggere il CD-ROM da un macintosh come se fosse un volume HFS. Il
  Joliet permette di usare i nomi di file lunghi (oltre ad altre cose)
  con alcune varianti di Windows (95, NT).


  La Sezione 2.8 elenca la disponibilit del software menzionato qui
  sopra.




  1.6.  Mailing list

  Se volete unirvi al team di sviluppo (con l'intenzione di _aiutarli_
  attivamente), mandate un'e-mail a

       cdwrite-request@pixar.com


  con la parola subscribe nel corpo del messaggio.



  1.7.  Disponibilit

  La versione pi recente di questo documento  sempre disponibile su

       <http://www.shop.de/~winni/linux/cdr/>





  2.  Preparazione della macchina Linux per la masterizzazione dei CD-
  ROM.

  Prima del Novembre 1997, il software per Linux non supportava i
  masterizzatori ATAPI: come conseguenza, la versione corrente
  dell'HOWTO si concentra sui dispositivi SCSI.

  Le buone notizie sono che la gestione dei dispositivi ATAPI  molto
  pi facile e si pu usare sempre questo HOWTO se ci si dimentica dei
  "dispositivi SCSI generici". Per scoprire come indicare i dispositivi
  ATAPI dovete dare il comando cdrecord -scanbus.

  Le versioni future di questo HOWTO conterranno altri dettagli sulla
  gestione dei masterizzatori ATAPI.



  2.1.  Impostazione dell'hardware.

  Fate shutdown, spegnete il computer ed agganciate il masterizzatore al
  bus SCSI.

  Assicuratevi che il bus SCSI sia correttamente terminato e scegliete
  uno SCSI-ID libero per il masterizzatore. Guardate sul Linux SCSI-
  HOWTO se non siete sicuri.  Se proprio non sapete cosa fare, cercate
  un esperto.

  Riattaccate la corrente e controllate i messaggi che il BIOS del
  controller SCSI stampa immediatamente dopo l'accensione.  Se non
  riconosce il masterizzatore, tornate al passo (b). Dovreste vedere un
  messaggio simile a questo:

  [manca l'immagine: qualcuno ce l'ha?]



  2.2.  Una nota sulla masterizzazione di CD sotto Linux

  In contrasto con altre voci, il kernel di Linux _non_ ha bisogno di
  una patch per scrivere sui CD. Anche se il file  drivers/scsi/scsi.c
  dai sorgenti del kernel contiene la linea



  case TYPE_WORM:
  case TYPE_ROM:
   SDpnt->writeable = 0;




  questo vuol dire solo che i CD e le WORM non sono scrivibili
  attraverso i dispositivi standard /dev/sda-/dev/sdh - che va bene.

  Invece di usare questi dispositivi la masterizzazione dei CD viene
  fatta attraverso i cosiddetti dispositivi SCSI generici che permettono
  quasi tutto - anche la masterizzazione dei CD.



  2.3.  Creazione dei dispositivi generici

  Il Linux SCSI-HOWTO dice sui dispositivi SCSI generici:


       Il driver dei dispositivi SCSI generici fornisce un'inter
       faccia per mandare comandi SCSI a tutti i dispositivi SCSI -
       dischi, nastri, CDROM, robot che cambiano le cassette,
       eccetera.


  Chiamare i dispositivi generici interfacce sta a significare che
  forniscono un modo alternativo di accedere l'hardware SCSI oltre che
  attraverso i dispositivi standard.

  Questo modo alternativo  richiesto perch i dispositivi standard sono
  progettati per leggere i dati blocco per blocco da un disco, nastro, o
  cd-rom. Paragonato a questo gestire un masterizzatore (o uno scanner)
   pi strano, infatti vanno trasmessi comandi per posizionare il
  laser. Per avere un'implementazione pulita (e quindi veloce) dei
  dispositivi standard tutte queste azioni strane devono essere fatte
  attraverso i dispositivi SCSI generici.

  Dato che attraverso i dispositivi generici si pu fare qualsiasi cosa
  all'hardware SCSI, questi non sono destinati ad uno scopo particolare
  - da cui il nome generici.

  Andate nella directory /dev e controllate se ci sono i dispositivi
  SCSI: il comando ls dovrebbe mostrare i file  sga-sgh:



       bash> cd /dev
       bash> ls -l sg*
       crw-------   1 root   sys     21,   0 Jan  1  1970 sga
       crw-------   1 root   sys     21,   1 Jan  1  1970 sgb
       crw-------   1 root   sys     21,   2 Jan  1  1970 sgc
       crw-------   1 root   sys     21,   3 Jan  1  1970 sgd
       crw-------   1 root   sys     21,   4 Jan  1  1970 sge
       crw-------   1 root   sys     21,   5 Jan  1  1970 sgf
       crw-------   1 root   sys     21,   6 Jan  1  1970 sgg
       crw-------   1 root   sys     21,   7 Jan  1  1970 sgh




  Se non avete questi file di dispositivo, li dovete creare usando lo
  script /dev/MAKEDEV:


       bash> cd /dev/
       bash> ./MAKEDEV sg




  Ora dovrebbero vedersi i file di dispositivo.



  2.4.  Abilitazione dei dispositivi SCSI generici  e loopback

  Il kernel di Linux ha bisogno di un modulo che gli fornisca la
  capacit di gestire i dispositivi SCSI generici. Se il kernel che
  avete ha questa caratteristica dovrebbe essere elencata nello pseudo-
  file /proc/devices:



       bash> cat /proc/devices
       Character devices:
        1 mem
        2 pty
        3 ttyp
        4 ttyp
        5 cua
        7 vcs
       21 sg          <----- sta per "SCSI Generic device"

       30 socksys

       Block devices:
        2 fd
        7 loop        <----- si pu usare anche il dispositivo di loopback
        8 sd
       11 sr          <----- sta per "SCSI cd-Rom"




  Forse dovrete dare il comando insmod sg, insmod loop o insmod sr_mod
  per caricare i moduli nel kernel.  Controllate di nuovo dopo aver
  fatto cos.

  Se uno di essi non funziona dovrete riconfigurare il kernel e
  ricompilarlo.




















  bash> cd /usr/src/linux
  bash> make config

  [..]
  *
  * Additional Block Devices
  *
  Loopback device support (CONFIG_BLK_DEV_LOOP) [M/n/y/?] M

  [..]
  *
  * SCSI support
  *
  SCSI support (CONFIG_SCSI) [Y/m/n/?] Y
  *
  * SCSI support type (disk, tape, CD-ROM)
  *
  SCSI disk support (CONFIG_BLK_DEV_SD) [Y/m/n/?] Y
  SCSI tape support (CONFIG_CHR_DEV_ST) [M/n/y/?] M
  SCSI CD-ROM support (CONFIG_BLK_DEV_SR) [M/n/y/?] M
  SCSI generic support (CONFIG_CHR_DEV_SG) [M/n/y/?] M

  [..]
  ISO9660 cdrom filesystem (CONFIG_ISO9660_FS) [Y/m/n/?] M




  Notate che ho omesso le domande non importanti.


  2.5.  Compilazione ed installazione del kernel

  Se avete domande a riguardo, vi suggerisco la lettura del Linux
  Kernel-HOWTO.  Inoltre la vostra distribuzione di Linux dovrebbe avere
  della documentazione su questo argomento.

  [Suggerimento: mentre ricompilate potete continuare con i passi
  2.7-2.9]



  2.6.  Riavviate il computer per attivare le modifiche.

  Non vi preoccupate se il kernel di Linux stampa i messaggi troppo
  velocemente e non riuscite a leggerli, almeno l'inizializzazione dei
  dispositivi SCSI pu essere rivisualizzata con il comando dmesg:



       scsi0 : NCR53c{7,8}xx (rel 17)
       scsi : 1 host.
       scsi0 : target 0 accepting period 100ns offset 8 10.00MHz
       scsi0 : setting target 0 to period 100ns offset 8 10.00MHz

         Vendor: FUJITSU   Model: M1606S-512        Rev: 6226
         Type:   Direct-Access                      ANSI SCSI
       Detected scsi disk sda at scsi0, channel 0, id 0, lun 0

         Vendor: NEC       Model: CD-ROM DRIVE:84   Rev:  1.0a
         Type:   CD-ROM                             ANSI SCSI
       Detected scsi CD-ROM sr0 at scsi0, channel 0, id 4, lun 0

       scsi : detected 1 SCSI disk total.
       SCSI device sda: hdwr sector= 512 bytes. Sectors= 2131992

  Qui sopra c' solo la parte dei messaggi di inizializzazione che
  riporta l'individuazione dei dispositivi SCSI fisicamente presenti.



  2.7.  Creazione dei dispositivi di loopback

  Andate nella directory/dev e controllate se ci sono dispositivi di
  loopback. Se non li avete non  critico, ma conviene averli (vedere la
  sezione 3.5). Se gi li avete, il comando ls dovrebbe mostrare da
  loop0 a loop7:



       bash> cd /dev
       bash> ls -l loop*
       brw-rw----   1 root  disk    7,   0 Sep 23 17:15 loop0
       brw-rw----   1 root  disk    7,   1 Sep 23 17:15 loop1
       brw-rw----   1 root  disk    7,   2 Sep 23 17:15 loop2
       brw-rw----   1 root  disk    7,   3 Sep 23 17:15 loop3
       brw-rw----   1 root  disk    7,   4 Sep 23 17:15 loop4
       brw-rw----   1 root  disk    7,   5 Sep 23 17:15 loop5
       brw-rw----   1 root  disk    7,   6 Sep 23 17:15 loop6
       brw-rw----   1 root  disk    7,   7 Sep 23 17:15 loop7




  Se non avete questi file di device, createli usando lo script
  /dev/MAKEDEV:



       bash> cd /dev/
       bash> ./MAKEDEV loop




  L'ultimo comando funziona solo se avete il modulo loop nel kernel
  (vedere la sezione 2.4 per la gestione dei moduli). Se insmod loop non
  aiuta, dovete aspettare finch il nuovo kernel non sia correttamente
  installato (vedere la sezione 2.5).



  2.8.  Procurarsi il software per masterizzare i CD


  2.8.1.  Utilities da linea di comando

  Per generare dei prototipi di CD-R  necessario questo pacchetto:


       <ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/> (mkisofs)

       <ftp://ftp.ge.ucl.ac.uk/pub/mkhfs> (mkhybrid)


  A seconda del modello del masterizzatore (vedere la sezione 1.3) 
  richiesto uno dei seguenti software per trasferire i prototipi sui CD-
  R:


       <ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/> (cdrecord)

  <ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/>
  (cdwrite)


  Per favore usate il mirror pi vicino di questi server ftp o
  prendeteli da un CD.

  Siate assolutamente sicuri di avere la versione 2.0 o successiva di
  cdwrite. Nessuna versione precedente e specialmente le versioni beta
  non funzionano bene! Non credete alle pagine man del (vecchio) mkisofs
  che dice che vi serve la versione 1.5 di cdwrite.

  Per informazioni sui porting di cdwrite per Irix e AIX andate all'URL


       <http://lidar.ssec.wisc.edu/~forrest/>


  Se state usando un kernel precedente al 2.0.31, probabilmente dovrete
  applicare una patch a mkisofs per evitare un baco nel codice di
  filesystem di Linux.  La distribuzione Debian ha un pacchetto per la
  versione 1.05 di mkisofs (dovrebbe funzionare anche la 1.11) che
  aggiunge l'opzione '-K' (vedere la sezione 3.4);  disponibile su



       <ftp://ftp.debian.org/pub/debian/bo/source/oth
       erosfs/mkisofs_1.11-1.diff.gz>


  Questa patch  necessaria solo se volete montare l'immagine del CD
  attraverso il dispositivo di loopback (vedere la sezione 3.5).



  2.8.2.  Un'interfaccia utente grafica (opzionale)

  X-CD-Roast  un programma di masterizzazione completo basato su X, ed
   il successore dei cdwtools-0.93.  disponibile su


       <http://www.fh-muenchen.de/home/ze/rz/services/pro
       jects/xcdroast/e_overview.html>


  Al momento, X-CD-Roast  basato su una versione modificata di
  cdwrite-2.0 e quindi ha esattamente le stesse caratteristiche (vedere
  la sezione 1.4). Le versioni future potranno essere basate sul
  software alternativo cdrecord.



  3.  "If in smoke you turn I shall not cease to fiddle while you burn."
  ("Se ti trasformi in fumo non smetter di gingillarmi mentre bruci.")
  [L'imperatore Nerone mentre bruciava i suoi CD classici [64 d.C.]. Non
  aveva capito niente.]

  Di solito la masterizzazione di un CD sotto Linux viene fatta in due
  fasi:


    si impacchetta il software desiderato in un solo grande file usando
     il programma mkisofs/mkhybrid

    si scrive i file sul CD-R con cdwrite o cdrecord

   anche possibile combinare i due passi in uno solo con una pipe, ma
  non  consigliato perch  poco affidabile. Vedi sotto.



  3.1.  Determinazione del dispositivo scsi a cui  collegato il master
  izzatore

  [Nota: lo schema corrente per la denominazione del dispositivo scsi
  sotto Linux  complicata senza motivo, e non sufficientemente
  affidabile. Il fatto che io lo descriva in grande dettaglio non deve
  essere male interpretato come conferma di questo schema. Chi usa un
  masterizzatore ATAPI pu provare ad usare "cdrecord -scanbus" per
  individuare il dispositivo esatto e saltare il resto di questa
  sezione.]

  Dopo aver seguito tutte le fasi del secondo capitolo il vostro sistema
  dovrebbe essere in grado di masterizzare i CD. Potete usare questa
  sezione come prova che tutto funziona come dovrebbe.

  Date il comando dmesg; dovrebbe riportare i messaggi del kernel di
  Linux, compresi quelli che vengono stampati durante l'avvio del
  sistema (una limitazione: solo gli ultimi 200) e contengono alcune
  informazioni sul masterizzatore connesso al bus SCSI.

  Un semplice esempio:


         Vendor: YAMAHA  Model: CDR100       Rev: 1.11
         Type:   WORM                        ANSI SCSI revision: 02
       Detected scsi CD-ROM sr1 at scsi0, channel 0, id 3, lun 0




  Questa macchina ha 4 dispositivi SCSI (non lo potete vedere, quindi ve
  lo dico io) con degli id SCSI da 0 a 3. Il masterizzatore  il quarto
  dispositivo SCSI generico fisicamente presente  e quindi  connesso a
  /dev/sgd (il quarto, con il conto che inizia con la lettera a).  In
  questo caso il comando



       cdwrite  --eject  --device /dev/sgd




  apre il carrello ed  una prova del funzionamento corretto del
  dispositivo.  Un esempio pi complicato :
















  scsi0 : AdvanSys SCSI 1.5: ISA (240 CDB)
  scsi1 : Adaptec 1542
  scsi : 2 hosts.

    Vendor: HP      Model: C4324/C4325  Rev: 1.20
    Type:   CD-ROM                      ANSI SCSI revision: 02
  Detected scsi CD-ROM sr0 at scsi0, channel 0, id 2, lun 0

    Vendor: IBM     Model: DPES-31080   Rev: S31Q
    Type:   Direct-Access               ANSI SCSI revision: 02
  Detected scsi disk sda at scsi1, channel 0, id 0, lun 0

  scsi : detected 1 SCSI cdrom 1 SCSI disk total.
  SCSI device sda: hdwr sector= 512 bytes.




  In questo esempio due controller SCSI gestiscono ciascuno un
  dispositivo.  Che spreco! (possono gestire fino a sette dispositivi
  ciascuno) Non  la mia configurazione quindi smettete di chiedere se
  ho troppi soldi...  comunque per a titolo esemplificativo questa
  configurazione  semplicemente eccellente. :-)

  Nell'esempio qui sopra il masterizzatore ha id SCSI di 2, ma 
  associato con il primo dispositivo SCSI generico /dev/sga perch  il
  primo dispositivo SCSI fisicamente presente che Linux ha rivelato.
  Questo dovrebbe chiarificare il fatto che l'id SCSI di un dispositivo
  non ha niente a che fare con il dispositivo generico associato.

  Sono rimaste due domande: cosa succede se si prende il dispositivo
  sbagliato? Se non specificate l'opzione "--<MANUFACTURER>" e non
  scrivete nessun dato sul dispositivo, di solito viene stampato un
  messaggio di avvertimento e non succede niente di male:



       bash> cdwrite  --eject  --device /dev/sgb

       Unknown CD-Writer; if this model is compatible with any
       supported type, please use the appropriate command line
       flag.

       Manufacturer:  IBM
       Model:         DPES-31080
       Revision:      S31Q




  In questo caso il dispositivo /dev/sbg  un hard disk SCSI (della
  IBM).

  Se scrivete dei dati sul dispositivo sbagliato, potete sovrascriverne
  il contenuto originale e probabilmente causare danni irrecuperabili al
  vostro sistema. State attenti, mi  gi successo.



  3.2.  Raccogliere il software

  Di solito questa fase occupa pi tempo di quanto ci si aspetti.
  Ricordatevi che i file mancanti non possono essere aggiunti una volta
  che il CD  stato scritto. :-)


  Tenete anche a mente che una certa quantit di spazio sul CD viene
  usata per immagazzinare le informazioni del filesystem iso9660 (di
  solito alcuni MB).




  3.3.  Immagazzinare i dati su un CD

  Il termine iso9660 si riferisce al formato in cui i dati sono
  organizzati sul CD; per essere pi precisi,  il filesystem del CD.

  Naturalmente l'aspetto dei file immagazzinati in questo formato 
  unificato dal kernel di Linux come per tutti gli altri filesystem,
  quindi se si monta un CD nell'albero delle directory, non si riesce a
  distinguere i suoi file da altri file... tranne che per il fatto che
  non sono scrivibili... nemmeno da root :-) (questo meccanismo si
  chiama filesystem virtuale, in breve VFS).

  Le caratteristiche del filesystem iso9660 non sono molto numerose
  paragonate a quelle del filesystem extended-2 che viene normalmente
  usato sotto Linux. D'altra parte, il CD  scrivibile solo una volta,
  ed alcune di queste caratteristiche non hanno senso. Le limitazioni
  del filesystem iso9660 sono:


    sono permessi solo 8 livelli di sottodirectory (a partire dalla
     directory principale del CD) [per aumentare questa cifra si possono
     usare le estensioni RockRidge]

    la lunghezza massima dei nomi dei file  di 32 caratteri

    la capacit  di 650 MB


  3.4.  La creazione di un filesystem iso9660

  Prima di poter usare un qualsiasi mezzo di immagazzinamento (floppy
  disk, hard disk o CD) bisogna crearci un filesystem (nella
  terminologia DOS: formattarlo). Questo filesystem  responsabile per
  l'organizzazione e l'incorporamento dei file che dovrebbero essere
  immagazzinati nel mezzo.

  Beh, un CD scrivibile lo  una sola volta, quindi se vi scrivessimo un
  filesystem vuoto verrebbe formattato - ma rimarrebbe completamente
  vuoto per sempre. :-)

  Quello che ci serve quindi  uno strumento che crei il filesystem
  mentre copia i file sul CD. Questo strumento si chiama mkisofs, ed
  ecco un esempio di come si usa:



       mkisofs  -r   -o cd_image   collezione_privata/
                     `---------'   `-----------------'
                          |               |
            su cui scrive l'output   directory che prende come input




  L'opzione '-r' imposta i permessi di tutti i file in modo che siano
  leggibili a tutti sul CD ed abilita le estensioni Rock Ridge. Di
  solito  questo che si vuol fare, e questa opzione  raccomandata
  finch non si  certi di quello che si sta facendo (suggerimento:
  senza '-r' il punto di mount prende i permessi di collezione
  privata!).

  Se usate un kernel di Linux precedente al 2.0.31 dovreste usare
  l'opzione '-K' per evitare un bug nel codice del filesystem, e vi
  serve la  versione modificata di mkisofs. Questa opzione  equivalente
  all'opzione '-P' di cdwrite; consultate la pagina man di mkisofs per
  altri dettagli. Chi usa una versione pi recente di Linux non se ne
  deve preoccupare.

  mkisofs prova a far corrispondere i nomi dei file al formato 8.3 usato
  dal DOS per assicurare la massima compatibilit possibile. In caso di
  conflitti sui nomi (diversi file possono avere lo stesso nome 8.3) si
  usano dei numeri, e le informazioni sul nome del file scelto vengono
  stampate attraverso lo STDERR (di solito lo schermo).

  NON VI SPAVENTATE:

       Sotto Linux non vedrete mai questi nomi di 8.3 caratteri
       perch Linux usa le estensioni Rock Ridge che contengono le
       informazioni originali sul file (i permessi, il nome ecc.).


  Ora vi potrete chiedere perch l'output di mkisofs non viene mandato
  direttamente al dispositivo di scrittura: ci sono due ragioni per
  questo:


    mkisofs non  in grado di fare da driver per i masterizzatori
     (vedere la sezione 2.3).

    Non sarebbe affidabile (vedere la sezione 4).

  Dato che la temporizzazione del masterizzatore  un punto critico, non
  gli mandiamo dati direttamente da mkisofs (ricordatevi che Linux non 
  un sistema operativo real-time e la temporizzazione dei task pu non
  essere perfetta); invece  raccomandato immagazzinare l'output di
  mkisofs in un file separato dell'hard disk, che diventa quindi
  un'immagine 1:1 dell'ultimo CD e viene veramente scritto sul CD in un
  secondo tempo usando cdwrite.

  L'immagine 1:1 viene immagazzinata in un enorme file, quindi vi serve
  spazio libero per la dimensione di tutto il software che volete
  masterizzare, ed  questo il lato negativo della cosa.

  Si pu pensare di creare una partizione extra apposta, e scrivere
  l'immagine in quella partizione invece che in un file. Io voto contro
  questa strategia perch se scrivete sulla partizione sbagliata (per un
  errore di digitazione), potete perdere completamente il sistema.
  Inoltre  uno spreco di spazio disco perch l'immagine  temporanea, e
  pu essere cancellata dopo aver masterizzato il CD.



  3.5.  Provare l'immagine del CD

  Linux ha la capacit di montare file come se fossero partizioni di
  disco, e questa  una caratteristica utile per controllare se la
  struttura delle directory dell'immagine del CD  a posto. Per montare
  il file cd_image creato sopra nella directory /cdrom date il comando



       mount -t iso9660 -o ro,loop=/dev/loop0 cd_image /cdrom



  Ora potete ispezionare i file sotto /cdrom - sono esattamente come
  sarebbero su un CD reale. Per smontare l'immagine basta fare umount
  /cdrom. Attenzione: se non avete usato l'opzione '-K' di mkisofs
  l'ultimo file di /cdrom potrebbe non essere completamente leggibile.

  Nota:

       alcune versioni antiche di mount non riescono a gestire i
       device di loopback. Se ne avete una  ora di aggiornare il
       vostro sistema.

       Alcuni hanno gi suggerito di aggiungere in questo HOWTO
       delle informazioni su come procurarsi le ultime utility di
       mount: mi rifiuto di farlo. Se la distribuzione di Linux che
       usate utilizza una versione di mount troppo vecchia, fatelo
       presente:  un baco. Se la distribuzione di Linux che usate
       non  facilmente aggiornabile, fatelo presente:  un baco.



       Se includessi tutte le informazioni necessarie per risolvere
       i bachi delle distribuzioni di Linux mal progettate, questo
       mini-HOWTO sarebbe molto pi grande e difficile da leggere.



  3.6.  Note sui CD registrabili vergini

  La rivista di computer tedesca "c't" ha un elenco di suggerimenti sui
  CD vergini nell'uscita di novembre 1996:


    i  dischi "non di marca" non sono in genere di qualit ottima e non
     dovrebbero essere usati

    se un CD registrabile  difettoso, di solito lo sono anche tutti
     gli altri dello stock (se ne avete comprati pi di uno insieme):
     forse siete fortunati e potete almeno usare i primi 500M di questi
     CD...

    non toccate i CD sul lato riflettente prima di masterizzarli



  3.7.  Masterizzazione dell'immagine su CD

  Non c' molto altro da dire. Prima di farvi vedere l'ultimo comando,
  fatemi avvisarvi che i masterizzatori devono essere alimentati con un
  flusso costante di dati perch hanno solo dei buffer di dati molto
  piccoli, quindi il processo di masterizzazione dell'immagine sul CD
  non deve essere interrotto, o il risultato sar un CD corrotto.

  Per essere sicuri che niente interrompa il processo, buttate tutti gli
  utenti fuori del sistema e staccate il cavo ethernet... leggere le
  avventure del Bastard operator from hell per imparare il giusto stato
  d'animo per farlo. ;-)

  Se siete preparati psicologicamente, vestitevi con una tunica nera,
  moltiplicate il numero di id SCSI del masterizzatore con la sua
  revisione SCSI e accendete un numero corrispondente di candele,
  leggete due versetti delle ASR-FAQ e digitate





  cdwrite  --device /dev/sgd  cd_image
  o
  cdrecord -v speed=2 dev=4,0 cd_image




  a seconda di quale software volete usare. Naturalmente dovrete
  sostituire il device SCSI di esempio con il device a cui  connesso il
  masterizzatore.

  Per favore notate che nessun masterizzatore pu riposizionare il suo
  laser, e quindi continuare al punto originale sul CD quando viene
  disturbato, quindi qualsiasi forte vibrazione o un urto distruggeranno
  completamente il CD che state masterizzando.



  3.8.  Se qualcosa va storto...

  ricordatevi che potete sempre usare i CD corrotti come
  sottobicchieri/. :-)



  4.  Le domande pi frequenti... con le risposte


  4.1.  "Quanto  sensibile il processo di bruciatura?"

  Risposta: dipende dal masterizzatore. Quelli moderni dovrebbero avere
  un buffer di dati di circa 1MB e possono funzionare con
  un'interruzione di 1-2 secondi nel flusso di dati. Controllate il
  manuale o contattate il produttore se volete conoscere i dettagli.

  Indipendentemente dalla dimensione di questi buffer di dati si deve
  garantire un flusso costante di 300kb/s o 600kb/s di media.

  I processi intensivi su disco come l'aggiornamento del database di
  locate diminuiscono il flusso massimo e corromperanno di sicuro il CD:
   meglio controllare che processi del genere non vengano avviati con
  cron, at o anacron mentre masterizzate i CD.

  D'altra parte, alcuni dicono di aver compilato un kernel durante la
  masterizzazione senza problemi. Naturalmente vi serve una macchina
  veloce per questi esperimenti.



  4.2.  "La frammentazione ha un impatto negativo sulle prestazioni?"

  La frammentazione di solito  talmente bassa che il suo impatto non si
  nota.

  Se non siete sicuri controllate i messaggi che vengono stampati
  durante il processo di boot: la percentuale di frammentazione viene
  riportata quando vengono controllati i filesystem. Si pu anche avere
  lo stesso valore usando il comando molto pericoloso



       bash> e2fsck -n  /dev/sda5        # '-n'  importante!
       [stuff deleted - ignore any errors]
       /dev/sda5: 73/12288 files (12.3% non-contiguous)


  In questo esempio la frammentazione sembra molto alta - ma sul
  filesystem ci sono solo 73 piccoli file (il filesystem viene usato
  come /tmp) quindi il valore _non _ allarmante.



  4.3.  "E' possibile immagazzinare l'immagine del CD su un filesystem
  UMSDOS?"

  Si. L'unico filesystem che non  sufficientemente affidabile e veloce
  per scrivere sui CD  il network filesystem (NFS).

  Io sto usando UMSDOS per condividere lo spazio disco  tra Linux e
  DOS/Win su un PC (486/66) dedicato per la masterizzazione dei CD.


  4.4.  "Non c' qualche modo per aggirare le limitazioni dell'iso9660?"

  S, potete mettere qualsiasi filesystem vogliate sul CD, ma i sistemi
  operativi diversi da Linux non potranno utilizzarlo.

  Ecco la ricetta:


    Creare un file vuoto di 650Mb.


       dd if=/dev/zero of="file_vuoto" bs=1024k count=650





    Creare un filesystem extended-2 su questo file


       bash> /sbin/mke2fs  file_vuoto
       file_vuoto is not a block special device.
       Proceed anyway? (y,n) y





    Montare questo file vuoto con il device di loopback


       mount -t ext2 -o loop=/dev/loop1 file_vuoto /mnt





    Copiare i file in /mnt e smontarlo.

    Usare cdwrite o cdrecord su file_vuoto (che non  pi vuoto) come
     se fosse un'immagine iso9660.

  Se volete creare una voce di /etc/fstab per questo CD, disabilitatene
  il controllo, cio:



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


  Il primo 0 significa "non includere nei dump", il secondo (importante)
  significa "non controllare all'avvio se ci sono errori" (fsck non
  controller il CD).


  4.5.  "Come si leggono e scrivono i CD audio?"

  Prendete i pacchetti "cdda2wav"  e "sox", disponibili su sunsite e sui
  suoi mirror:


       <ftp://sun
       site.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>


  cdda2wav vi permette di prendere un intervallo specifico (o una
  traccia intera) dal CD audio ed a convertirla in un file wav. sox
  converte il file wav in formato cdda (CD audio) in modo che possa
  essere scritto sul CD-R usando cdwrite.


  4.6.  "Come si fa il probe dei dispositivi SCSI dopo il boot?"

  Il file drivers/scsi/scsi.c contiene le informazioni necessarie:



       /*
        * 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.
        */




  Cio:


       /*
        * Uso: echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi
        * sostituendo "0 1 2 3" con "Host Canale Id Lun".
        * Considerate questa caratteristica come BETA.
        *     ATTENZIONE: non serve per sganciare le periferiche. Dato che
        *     lo SCSI non  stato progettato per una cosa del genere potrebbe
        *     danneggiare il vostro hardware!
        * In ogni modo forse  corretto agganciare un dispositivo gi connesso.
        * Non  forse garantito che questo dispositivo non corrompa un trasferimento
        * di dati in corso.
        */







  4.7.  "E' possibile creare una copia 1:1 di un CD di dati?"

  S, ma dovreste essere consapevoli del fatto che qualsiasi errore in
  lettura dell'originale (causato da polvere o graffi) risulter in una
  copia difettosa.

  Primo caso: avete un masterizzatore di CD ed un drive di CD-ROM
  separato. Dando il comando



       cdwrite -v -D /dev/sgc --pad -b  $(isosize  /dev/scd0) /dev/scd0
       o
       cdrecord -v dev=3,0 speed=2 -isosize /dev/scd0




  si legge il flusso dei dati dal drive del CD-ROM connesso come
  /dev/scd0 e lo si scrive direttamente attraverso /dev/sgc sul CD-R.

  Secondo caso: non avete un drive di CD-ROM separato. Dovete usare il
  masterizzatore per leggere il CD; in questo caso:



       dd if=/dev/scd0 of=cdimage bs=1c count=`isosize  /dev/scd0`




  Questo comando  equivalente al risultato di mkisofs, quindi dovete
  procedere come descritto nel capitolo 3. Notate che questo metodo non
  funziona con i CD audio!


  4.8.  "Posso leggere CD Joliet con Linux?"

  S, ma dovete applicare una patch al kernel e ricompilarlo. Per altri
  dettagli vedere su


       <http://www-plateau.cs.berkeley.edu/people/chaf
       fee/joliet.html>





  4.9.  "Come posso leggere o montare i CD-ROM con il masterizzatore?"

  Come fate con un normale drive per CD-ROM. Nessun problema. Notate che
  dovete usare i device scd (CD-ROM SCSI) per montare i CD in lettura.
  Ecco una voce di esempio per /etc/fstab:



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








  5.  Risoluzione dei problemi


  5.1.  Non funziona: sotto Linux

  Controllate se il masterizzatore funziona con altri sistemi operativi.
  Concretamente:


    Il controller riconosce il masterizzatore come device SCSI?

    Il software di driver riconosce il masterizzatore?

     possibile creare un CD usando il software ad esso allegato?

  Se "non funziona" nemmeno con altri sistemi operativi si tratta di un
  conflitto hardware o di hardware difettoso.



  5.2.  Non funziona: sotto DOS e simili

  Provate con Linux. L'installazione e la configurazione dei driver SCSI
  sotto DOS  un inferno. Linux  troppo complicato? Bah!



  5.3.  Errori SCSI durante la fase di incisione

  Molto probabilmente questi errori sono causati da


    mancanza delle caratteristiche di disconnessione e riconnessione
     sul bus SCSI

    hardware non abbastanza raffreddato

    hardware difettoso (dovrebbe essere riconosciuto con la 5.1)

  In varie circostanze i dispositivi SCSI si disconnettono e
  riconnettono (elettronicamente) dal bus SCSI. Se questa caratteristica
  non  disponibile (controllate il controller ed i parametri del
  kernel) alcuni masterizzatori hanno dei problemi nella fase di
  incisione o di fissaggio del CD-R.

  In particolare il driver SCSI NCR 53c7,8xx ha questa caratteristica
  disabilitata per default, quindi vi conviene prima controllarla:



       NCR53c7,8xx SCSI support                  [N/y/m/?] y
          always negotiate synchronous transfers [N/y/?] (NEW) n
          allow FAST-SCSI [10MHz]                [N/y/?] (NEW) y
          allow DISCONNECT                       [N/y/?] (NEW) y






  6.  Ringraziamenti


     Andreas Erdmann <erdmann@zpr.uni-koeln.de>
        ha fornito l'esempio con il masterizzatore YAMAHA

     Art Stone <stone@math.ubc.ca>
        ha avuto l'idea di mettere filesystem non-iso9660 su un CD


     Bartosz Maruszewski <B.Maruszewski@zsmeie.torun.pl>
        ha indicato degli errori di digitazione


     Bernhard Gubanka <beg@ipp-garching.mpg.de>
        ha notato la necessit di una versione recente di mount per
        utilizzare il device di loopback


     Brian H. Toby
        ha ripulito la sintassi


     Bruce Perens <bruce@pixar.com>
        ha fornito delle informazioni sulla mailing list di cdwrite


     Dale Scheetz <dwarf@polaris.net>
        ha aiutato a migliorare la sezione sulla creazione dell'immagine


        URL di mkhybrid


     Edwin H. Kribbs
        ha indicato che '-K' richiede una patch per mkisofs


     Gerald C Snyder <gcsnyd@loop.com>
        ha fatto un test della scrittura di un CD-ROM ext2 (vedi 4.4)


     Ingo Fischenisch <ingo@mi.uni-koeln.de>
        ha fornito l'esempio dei 2 controller che gestiscono 2
        dispositivi


     Janne Himanka <shem@oyt.oulu.fi>
        puntatore alla patch del kernel per leggere i CD joliet


     Joerg Schilling <schilling@fokus.gmd.de>
        informazioni su cdrecord


     Jos van Geffen <jos@tnj.phys.tue.nl>
        ha notato il problema nel 4.9


     Markus Dickebohm <m.dickebohm@uni-koeln.de>

     Pierre Pfister <pp@uplift.fr>
        ha aiutato a sviluppare la ricetta sulle copie 1:1


     Rick Cochran <rick@msc.cornell.edu>
        ha dato un suggerimento sulla dis-riconnessione disabilitata per
        default nel driver ncr


     Stephan Noy <stnoy@mi.uni-koeln.de>
        informazioni ed esperienze sulla scrittura di CD audio
     Stephen Harris <sweh@mpn.com>
        ha contribuito con un suggerimento sulla scrittura di CD audio


     The Sheepy One <kero@escape.com>
        ha suggerito l'uso dei CD difettosi come sottobicchieri


     Volker Kuhlmann <kuhlmav@elec.canterbury.ac.nz>
        ha notato che il pacchetto "cdwrite" non contiene mkisofs

  Fine del Linux CD-Writing mini-HOWTO

  Traduzione di Eugenia Franzoni <eugenia@pluto.linux.it>




















































