Avanti Indietro Indice

6. Risposte alle domande più frequenti (FAQ)

6.1 Come fa un utente non-root a montare e smontare dischi?

La maggior parte dei comandi mount supportano l'opzione user. Se aggiungi una voce come la seguente in /etc/fstab:

/dev/sbpcd  /mnt/cdrom   iso9660     user,noauto,ro

allora un utente normale sarà abilitato a montare e smontare il drive con questi comandi:

% mount /mnt/cdrom
% umount /mnt/cdrom

Di default il disco sarà montato con alcune opzioni che aiutano ad aumentare la sicurezza (ad es. i programmi non possono essere eseguiti, i file di dispositivo sono ignorati). Se questo è troppo restrittivo puoi usare opzioni addizionali (ad es. l'opzione "exec" abiliterà l'esecuzione dei programmi). Controlla la pagina man mount(8) per maggiori dettagli.

Un altro metodo è di procurarsi il pacchetto usermount che permette a utenti non-root di montare e smontare dispositivi removibili come floppy o CD-ROM, ma restringe l'accesso ad altri dispositivi (come le partizioni di un hard disk). È disponibile sui maggiori siti archivio.

Il sito archivio ftp.cdrom.com contiene il file sorgente mount.c che permette di montare/smontare (solo) CD-ROM come utente normale. Si avvia come un eseguibile setuid.

6.2 Perché ottengo il messaggio 'device is busy' ('il dispositivo è occupato') quando smonto un CD-ROM?

Il disco non può essere smontato se qualche processo sta accedendo al drive. Questo comprende i processi che hanno la propria directory di default impostata nel filesystem montato. Se non puoi identificare il processo che usa il disco, puoi usare il comando fuser, come indicato nell'esempio seguente.

% umount /cdrom
umount: /dev/hdd: device is busy
% fuser -v /cdrom
                     USER       PID ACCESS COMMAND
/mnt/cdrom           tranter    133 ..c..  bash

Su alcuni sistemi hai bisogno di essere root quando avvii il comando fuser per vedere i processi degli altri utenti.

6.3 Come posso esportare un CD-ROM su altri host con NFS?

Dovrai aggiungere una voce nel file /etc/exports. Gli utenti su altre macchine saranno quindi in grado di montare il drive. Vedi la pagina man exports(5) per dettagli.

6.4 Posso fare il boot di Linux da CD-ROM?

Quando installi Linux da zero il metodo più comune è utilizzare un disco di boot. Alcune distribuzioni permettono di avviare un kernel Linux su CD direttamente da DOS.

Se possiedi un disco CD-ROM, il BIOS e il drive CD-ROM corretti, ossia se sono tutti e tre predisposti, puoi fare il boot direttamente da CD. L'ultima versione di mkisofs supporta la creazione di tali dischi usando lo standard El Torito per CD avviabili.

6.5 Come posso leggere audio digitale da un CD audio?

Heiko Eissfeldt ( heiko@colossus.escape.de) e Olaf Kindel hanno scritto una utility che legge dati audio e li salva in file sonori in formato .wav. Il pacchetto si chiama cdda2wav.tar.gz e può essere reperito su metalab.unc.edu.

Un'altra utility per estrarre audio digitale è cdparanoia disponibile a http://www.mit.edu/afs/sipb/user/xiphmont/cdparanoia.

Poiché i drive CD-ROM cambiano molto velocemente, è difficile elencare quali modelli supportino la lettura di dati digitali. La cosa migliore che puoi fare è procurarti gli ultimi pacchetti di cdda2wav o cdparanoia e leggerne la documentazione.

Per maggiori informazioni su questo argomento, vedi il sito web http://www.tardis.ed.ac.uk/~psyche/cdda/ e le FAQ di alt.cd-rom elencate nella sezione "riferimenti".

6.6 Perché il comando find non funziona correttamente?

Su dischi ISO-9660 senza le estensioni Rock Ridge, devi aggiungere l'opzione -noleaf al comando find. Vedi la pagina man find(1) per maggiori dettagli.

(Nella mia esperienza virtualmente tutti i recenti CD di Linux usano le estensioni Rock Ridge, quindi questo problema dovrebbe presentarsi molto raramente.)

6.7 Linux supporta drive CD-ROM registrabili?

Il pacchetto X-CD-Roast per Linux è un front-end grafico per usare registratori di CD. Il pacchetto può essere reperito su metalab.unc.edu in /pub/Linux/utils/disk-management/xcdroast-0.95.tar.gz

Vedi anche il Linux CD-Writing HOWTO, che si trova su ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/CD-Writing-HOWTO o http://metalab.unc.edu/LDP/HOWTO/CD-Writing-HOWTO.html.

6.8 Perché ottengo il messaggio 'mount: Read-only file system' ('filesystem a sola lettura') quando monto un CD-ROM?

Il CD-ROM è un media a sola lettura. Con alcuni kernel vecchi potevi montare un CD-ROM in lettura/scrittura; i tentativi di scrivere dati sul CD erano semplicemente ignorati. Dalla versione 1.1.33 questo è stato corretto cosicché ora i CD-ROM possono essere montati in sola lettura (ad es. usando l'opzione -r).

6.9 Perché il carrello del drive si apre quando chiudo il sistema?

Il driver sbpcd supporta l'espulsione automatica del CD quando viene smontato. In alcuni vecchi kernel questo era il comportamento predefinito. Se chiudi il sistema, un CD montato sarà smontato, causando l'espulsione.

Questa caratteristica è inserita per facilitare il cambio dei dischi. Se il carrello è aperto quando monti o leggi un CD, sarà automaticamente chiuso.

Ho trovato che questo costituisce un problema per alcuni programmi (ad es. cdplay e workbone). Dal kernel 1.1.60 puoi controllare questa caratteristica via software. Un programma esempio è incluso nel file di documentazione di sbpcd (o usa il programma eject). Puoi anche controllare il comportamento predefinito modificando il file sorgente del kernel sbpcd.h.

6.10 Ho un CD "speciale" che non riesco a montare

Tale CD "speciale" è probabilmente un disco XA (come tutti i PhotoCD o uno eventualmente creato in questa modalità con un masterizzatore). La maggior parte dei driver CD-ROM del kernel di Linux non supportano dischi XA, sebbene tu possa trovare un patch per aggiungere questo supporto in uno dei siti archivio.

Il driver sbpcd supporta l'XA. Se usi questo driver puoi vedere se un disco è XA usando la seguente procedura: vai nel file sbpcd.c e abilita la visualizzazione della "Table Of Contents" (Tabella del contenuto o TOC, sotto DBG_TOC). Compila ed installa il nuovo kernel e avvialo. Ogni volta che monti un disco, le informazioni sulla TOC saranno stampate (o sulla console o in un file di log). Se il primo valore visualizzato nell'header della TOC è "20", allora si tratta di un disco XA. Quel byte è "00" nei dischi normali. Se la TOC mostra diverse tracce, anche questo è un segnale che si tratta di un disco XA.

(Grazie a Eberhard Moenkeberg per queste informazioni)

Altre possibilità per un CD illeggibile sono:

  1. Il disco non usa un filesystem ISO-9660 (ad es. alcuni usano SunOS o HFS)
  2. È un CD audio
  3. Il CD è danneggiato o difettoso
  4. L'hai messo nel drive capovolto :-)

6.11 I drive CD-ROM multi-piastra funzionano con Linux?

Molti utenti hanno riportato successi con scambiatori di CD-ROM multi-disco SCSI. Probabilmente avrai bisogno di abilitare la opzione di configurazione del kernel "Probe all LUNs on each SCSI device" ("Prova tutti i LUN su ogni dispositivo SCSI") (questo non è necessario se il tuo scambiatore di CD è già noto al driver SCSI. Dai un'occhiata a /usr/src/linux/drivers/scsi.c).

Almeno un utente ha anche dovuto aumentare il valore del timeout SCSI nel driver del kernel. Un sintomo di questo è un messaggio di errore del tipo "wrong fs type, bad option, bad superblock on /dev/sr5, or too many mounted file systems" ("tipo sbagliato di filesystem, opzione errata, superblock non valido su /dev/sr5, o troppi filesystem montati") quando si prova a montare un CD-ROM per la prima volta, mentre un secondo tentativo subito dopo ha successo. Per alzare il timeout aumenta il valore di IOCTL_TIMEOUT all'inizio di /usr/src/linux/drivers/scsi/sr_ioctl.c e ricompila il kernel. Mi si dice che un valore di 10000 al posto del predefinito 3000 funziona col NEC Multispin 4Xc.

Potrebbe essere necessario creare file speciali a blocchi in più, cosicché tutti i LUN possano essere acceduti. È richiesto un file di dispositivo per ogni LUN. Così, per uno scambiatore a 7 dischi, devono essere presenti da /dev/sr0 a /dev/sr6 (di più se hai drive CD-ROM SCSI in più). Per creare questi file speciali esegui mknod /dev/sr? b 11 ? come root dove ? sta per il numero richiesto.

Mi dicono che funzionano gli scambiatori Nakamichi MBR-7 7, NEC Multispin 4Xc e Pioneer 12.

Sono pure disponibili scambiatori a più dischi EIDE/ATAPI. Il kernel ha il supporto per alcuni drive usando la funzione CDROM_SELECT_DISC di ioctl. Il file di documentazione del driver del kernel include i sorgenti per un programma per selezionare gli alloggiamenti dello scambiatore da attivare, o puoi usare varie utility come il programma eject descritto più sopra.

6.12 Ricevo un messaggio di errore che dice "/cdrom: Permission denied" ("/cdrom: permesso negato")

Alcuni CD hanno i permessi dei file della root directory impostati in modo tale da permettere solo all'utente root di leggerli. Questo è un errore da parte del produttore del CD e un reale inconveniente. Una eventualità più comune è il fatto che alcuni file o directory non siano leggibili da tutti. Alcune persone hanno creato un patch per i loro kernel per aggirare il problema.

Vedi anche, a riguardo, la domanda sui file nascosti, più oltre in questo documento.

6.13 Come posso interpretare i messaggi di errore del kernel per l'IDE CD?

Cosa significa quando ricevo un messaggio dal driver IDE CD-ROM tipo "hdxx: code: xx key: x asc: xx ascq: x"?

Questo è un messaggio di stato/errore dal drive IDE CD-ROM. Di default, il driver IDECD visualizza le informazioni in forma criptica al posto di sprecare spazio del kernel con messaggi di errore. Puoi cambiare l'impostazione per visualizzare i messaggi di errore completi andando in /usr/src/linux/drivers/block/ide-cd.c, cambiando il valore di VERBOSE_IDE_CD_ERRORS to 1, e ricompilando il kernel.

6.14 Come posso stabilire che velocità ha il mio CD-ROM?

Questo è un modo. Questo comando misura quanto ci vuole per leggere 1500K di dati da un CD:

% time -p dd if=/dev/cdrom of=/dev/null bs=1k count=1500
1500+0 records in
1500+0 records out
real 5.24
user 0.03
sys 5.07

Il transfer rate di un drive a singola velocità è di 150 kilobytes al secondo, per cui dovrebbe impiegarci circa 10 secondi. A doppia velocità 5, a quadrupla 2,5, ecc.

Il tempo "real" sopra è probabilmente il miglior numero da guardare -- in questo caso indica un drive a doppia velocità. Puoi aumentare la quantità di dati per effettuare misurazioni più accurate (nel caso tu te lo stia chiedendo, i dati letti non vanno nella cache). Dovrai probabilmente avviare il comando un po' di volte e fare la media.

Ho scritto un piccolo programma in C che misura e riporta il transfer rate di un CD-ROM; posso mandartelo su tua richiesta.

6.15 Il mio CD-ROM ha smesso di funzionare dopo che Linux è stato installato

Il sintomo di solito indica che il boot disk che hai usato per l'installazione riconosceva il drive CD-ROM, ma dopo che Linux è stato installato su un hard disk o su un altro floppy e riavviato non lo riconosce più.

Il motivo più comune è che con alcune distribuzioni Linux il kernel installato sul tuo hard disk non è necessariamente quello stesso che era sul dischetto di boot. Potresti aver selezionato un disco di boot che si adattava al tuo hardware CD-ROM, mentre il kernel installato potrebbe essere un kernel "generico" che manca del supporto CD-ROM. Puoi verificare questo seguendo le linee-guida per la risoluzione dei problemi discusse più sopra in questo documento.

La soluzione è ricompilare il kernel, assicurandosi che i driver per il tuo drive CD-ROM ed ogni altro driver sia richiesto (ad es. il controller SCSI, il filesystem ISO-9660) siano inclusi. Consulta il Kernel HOWTO se non sai come fare.

Se hai passato qualche opzione da linea di comando al disco di boot (ad es. "hdc=cdrom") avrai bisogno di aggiungere queste al file di configurazione del programma di boot (tipicamente /etc/lilo.conf).

6.16 Ci sono file "nascosti", in un CD, che non riesco a leggere

Alcuni CD hanno file con il bit "hidden" ("nascosto") impostato. Normalmente questi file non sono visibili. Se monti il CD con l'opzione "unhide" allora i file dovrebbero essere accessibili (questo non sembra essere documentato da altre parti).

6.17 Dove sono documentate le API per i CD-ROM?

Se vuoi scrivere le tue applicazioni, come un riproduttore di audio CD, dovrai padroneggiare le interfacce di programmazione di applicazioni (API) fornite da Linux.

Originariamente i driver del kernel per i CD-ROM usavano le loro proprie funzioni ioctl() per supportare funzionalità specifiche per ogni drive. I file header come /usr/include/linux/sbpcd.h descrivono queste funzioni. Poiché molti driver erano basati su altri driver, le interfacce, sebbene non identiche, hanno molto in comune.

Più recentemente c'è stata un'iniziativa portata avanti da David van Leeuwen ( david@tm.tno.nl) per standardizzare le API per drive CD-ROM, individuando ed adottando del codice comune ed assicurandosi che tutti i driver si comportino allo stesso modo. Questo è documentato nel file /usr/src/linux/Documentation/cdrom/cdrom-standard.tex. Molti driver del kernel supportano questo standard. Dal kernel 2.0 tutti i driver CD-ROM si sono conformati a questa API.

Il mio libro Linux Multimedia Guide, si addentra un po' nell'argomento di programmare per i drive CD-ROM, specialmente per funzioni audio. Vedi la fine della sezione Riferimenti.

6.18 Perché non vedo i nomi lunghi in questo CD-ROM per Windows?

Se hai un CD-ROM che ha nomi di file lunghi sotto Windows ma non sotto Linux, può essere stato formattato usando il filesystem proprietario Joliet di Microsoft. Vedi la prossima domanda per una soluzione.

6.19 È supportato il filesystem Joliet di Microsoft?

Microsoft ha creato un'estensione al formato ISO chiamata Joliet. Aggiunge il supporto per nomi di file lunghi codificati usando il formato UNICODE 16-bit.

Dalla versione 2.0.34 il kernel di Linux prevede il supporto per le estensioni Joliet. Devi abilitare tale supporto nel kernel.

Se vuoi visualizzare i nomi di file con caratteri del linguaggio nativo correttamente, devi abilitare nel kernel il supporto per l'appropriato set di caratteri NLS ISO8859.

6.20 Linux supporta gli "enhanced" CD?

Alcuni CD audio sono "enhanced" (migliorati) con dati aggiuntivi. Tipicamente troverai che questi CD hanno le solite tracce audio come pure una traccia dati che può essere montata come un filesystem ISO9660.

Un CD enhanced che ho potuto esaminare aveva applicazioni Microsoft Windows e Apple Macintosh (che ovviamente non funzionavano direttamente sotto Linux, sebbene abbia avuto un parziale successo avviando l'applicazione Windows con l'emulatore WINE). C'erano anche alcune immagini GIF che potevano essere visualizzate usando un programma standard come xv e alcune animazioni in formato QuickTime, eseguibili con xanim. Era un CD multisessione, di cui alcuni drive CD-ROM molto vecchi non supportano la lettura. Sul disco v'era un file readme.txt contenente delle FAQ sugli Enhanced CD.

6.21 Linux supporta i DVD-ROM?

I DVD-ROM compatibili SCSI e ATAPI dovrebbero funzionare sotto Linux per la lettura di dischi formattati col filesystem ISO-9660. In altre parole funzioneranno come un (eventualmente molto più capiente) lettore CD-ROM.

Molti dischi DVD-ROM usano il filesystem UDF. Al momento di stendere questo documento, questo aspetto era ancora in sviluppo. Le patch per il kernel erano disponibili su http://trylinux.com/projects/udf/.

Comunque, non sono a conoscenza di alcun supporto per riprodurre video DVD codificati in MPEG-2 sia via software che in unione a un decoder hardware. Apparentemente la documentazione per il formato di codifica può essere ottenuta solo ad alto costo e sottostando ad un accordo di non-diffusione. Un altro aspetto è che la decodifica MPEG tipicamente usa hardware proprietario per il quale i produttori potrebbero non essere diaposti a rilasciare le specifiche per la programmazione. Questi fattori possono precludere la produzione qualsiasi software per i video DVD per linux che voglia essere disponibile gratuitamente e liberamente.

6.22 Linux supporta i CD-RW?

I CD-RW che rispettano le specifiche SCSI ed ATAPI dovrebbero funzionare sotto Linux per dischi formattati con un filesystem ISO-9660. Questo include la possibilità di scrivere sul disco.

Molti dischi CD-RW usano il filesystem UDF. Al momento di stendere questo documento, questo aspetto era ancora in sviluppo. Le patch per il kernel erano disponibili su http://trylinux.com/projects/udf/.


Avanti Indietro Indice