Page suivantePage précédenteTable des matières

6. Réponses aux questions fréquemment posées (FAQ)

6.1 Comment un utilisateur n'étant pas superutilisateur peut-il monter/démonter des disques ?

La plupart des commandes mount comprennent une option user. Si vous ajoutez une entrée de cette nature au fichier /etc/fstab:

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

alors, un utilisateur ordinaire pourra monter et démonter le disque en utilisant ces commandes :

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

Par défaut, le disque sera monté avec certaines options qui assurent la sécurité (par exemple, des programmes ne pourront être exécutés, des fichiers de périphériques seront ignorés). Si cela est trop restrictif, vous pouvez utiliser des options additionnelles (par exemple, l'option "exec" autorisera l'exécution de programmes). Consultez la page de manuel de mount(8) pour les détails.

Une autre méthode consiste à obtenir le paquetage usermount qui permet à des utilisateurs n'étant pas superutilisateur de monter et démonter des périphériques amovibles tels que disquettes et CD-ROMs, mais restreint l'accès aux autres périphériques (tels que les partitions du disque dur). Il est disponible sur les principaux sites d'archives.

Enfin, vous pouvez écrire un petit programme C qui monte et démonte le CD-ROM et l'installer en tant qu'exécutable setuid.

Le site d'archives ftp.cdrom.com dispose du fichier source mount.c qui permet le montage d'un CD-ROM non monté (uniquement) par des utilisateurs ordinaires. Il s'exécute en tant que programme setuid.

6.2 Pourquoi ai-je device is busy quand je démonte un CD-ROM ?

Le disque ne peut être démonté s'il y a encore un processus accédant au lecteur, ceci comprend les processus ayant leur répertoire par défaut positionné sur le système de fichiers monté. Si vous ne pouvez pas identifier le processus utilisant le disque, utilisez la commande fuser, comme dans l'exemple ci-après.

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

Sur certains systèmes, vous pouvez avoir besoin d'être superutilisateur pour exécuter la commande fuser de manière à voir les processus d'autres utilisateurs.

6.3 Comment exporter un CD-ROM vers d'autres machines via NFS ?

Vous avez besoin d'ajouter une ligne au fichier /etc/exports. Les utilisateurs sur les autres machines pourront alors monter le périphérique. Consultez la page de manuel de exports(5), pour plus de détails.

6.4 Puis-je amorcer Linux à partir d'un CD-ROM ?

Quand on installe initialement Linux, la méthode la plus ordinaire est d'utiliser une disquette d'amorçage. Certaines distributions Linux autorisent l'amorçage du noyau Linux sur CD directement depuis le DOS.

Avec les bons CD-ROM, ROM BIOS, et lecteur de CD-ROM ATAPI, il est possible d'amorcer Linux directement depuis un CD. La dernière version de mkisofs prend également en charge la création de tels disques qui utilisent le standard El Torito pour les CDs amorçables.

6.5 Comment peut-on lire les données des CDs audio-numériques ?

Heiko Eissfeldt ( heiko@colossus.escape.de) et Olaf Kindel ont écrit un utilitaire qui lit les données audio-numériques et les enregistre en fichiers son au format .wav. Le paquetage est intitulé cdda2wav.tar.gz et peut être trouvé sur metalab.unc.edu.

Un autre utilitaire pour extraire les données audio-numériques est cdparanoia disponible à l'adresse http://www.mit.edu/afs/sipb/user/xiphmont/cdparanoia.

Étant donné que les lecteurs de CD-ROM changent très vite, il est difficile de donner une liste des modèles prenant en charge la lecture de données audio-numériques. Le mieux est d'obtenir le dernier paquetage cdda2wav ou cdparanoia et de lire la documentation.

Pour plus d'informations sur le sujet, consultez le site Web http://www.tardis.ed.ac.uk/~psyche/cdda/ et la FAQ du forum alt.cd-rom mentionnée dans la section des références.

6.6 Pourquoi la commande find ne fonctionne-t-elle pas normalement ?

Sur des disques au format ISO-9660, sans les extensions Rock Ridge, vous devez ajouter l'option -noleaf à la commande find. Consultez la page de manuel de find(1) pour plus de détails.

(selon mon expérience, virtuellement tous les CDs Linux récents utilisent les extensions Rock Ridge, donc ce problème ne devrait se produire que très rarement.)

6.7 Est-ce que Linux prend en charge les graveurs de CD ?

Le paquetage X-CD-Roast pour Linux est un frontal graphique pour l'utilisation de graveurs de CD. Ce paquetage peut être trouvé sur metalab.unc.edu sous /pub/Linux/utils/disk-management/xcdroast-0.95.tar.gz

Consultez également le HOWTO sur le gravage de CD, disponible à l'adresse ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/CD-Writing.html ou http://metalab.unc.edu/LDP/HOWTO/CD-Writing.html.

6.8 Pourquoi est-ce que j'obtiens mount: Read-only file system lorsque je monte un CD-ROM ?

Le CD-ROM est un media en lecture seule. Avec certains noyaux précédents, il était possible de monter des CD-ROMs en lecture/écriture; les tentatives pour écrire des données sur le CD était simplement ignorées. À partir de la version 1.1.33 du noyau, ceci a été corrigé de telle manière que les CD-ROMs doivent être montés en lecture seule (par ex. en utilisant l'option -r de la commande mount).

6.9 Pourquoi le tiroir du lecteur s'ouvre-t-il quand j'arrête le système ?

Le pilote sbpcd prend en charge automatiquement l'éjection du CD quand il est démonté. Dans d'anciennes versions du noyau, c'était le comportement par défaut. Si vous arrêtez votre système, un CD monté sera démonté, entraînant son éjection.

Cette fonction est une commodité lors du changement de disques. Si le tiroir est ouvert quand vous montez ou lisez un CD, il se fermera aussi automatiquement.

J'ai constaté que cela ne causait des problèmes qu'avec peu de programmes (par ex. cdplay et workbone). A partir de la version 1.1.60 du noyau, vous pouvez contrôler cette fonction par logiciel. Un programme d'exemple est compris dans le fichier de documentation du pilote sbpcd (ou utilisez le programme eject). Vous pouvez aussi contrôler le comportement par défaut, en éditant le fichier source du noyau sbpcd.h.

6.10 J'ai un CD "spécial" qui ne peut être monté

Le CD "spécial" a toutes les chances d'être un disque XA (comme tous les CDs Photo ou les pseudos créés en utilisant des graveurs de CD-R). La plupart des pilotes CD-ROM de noyau Linux ne prend pas en charge les disques XA, bien que vous puissiez trouver une rustine qui ajoute cette fonction sur l'un des sites d'archives.

Le pilote sbpcd prend en charge les disques XA. Si vous utilisez ce pilote, vous pouvez déterminer si le disque est au format XA en utilisant la procédure suivante : allez dans le fichier sbpcd.c et activez l'affichage de la table des matières [TDM] ("Table of Contents" DBG_TOC). Construisez et installez un nouveau noyau et amorcez le. A chaque montage, les informations de la TDM seront écrites (soit sur la console, soit dans un fichier de traces). Si la première valeur affichée dans l'en-tête de la TDM est "20", alors c'est un disque au format XA. Cet octet est "00" pour des disques normaux. Si l'affichage de la TDM montre différentes plages, c'est aussi un signe qu'il s'agit d'un disque au format XA.

(Remerciements à Eberhard Moenkeberg pour les informations précédentes)

D'autres possibilités pour des CDs illisibles sont :

  1. Le disque n'utilise pas un système de fichiers ISO-9660 (par ex. certains utilisent SunOS ou HFS)
  2. C'est un CD audio-numérique
  3. Le CD est endommagé ou défectueux
  4. Vous avez mis le disque à l'envers :-)

6.11 Est-ce que des lecteurs multi-CDs fonctionnent avec Linux ?

Plusieurs utilisateurs ont mentionné leur réussite avec des lecteurs multi-CDs SCSI. Vous aurez sans doute besoin d'activer l'option de configuration du noyau "Test de toutes les LUNs sur chaque périphérique SCSI ou "Probe all LUNs on each SCSI device" (Ce n'est pas utile si votre lecteur multi-CDs est déjà reconnu par le pilote SCSI. Consultez le fichier /usr/src/linux/drivers/scsi.c).

Au moins un utilisateur a dû aussi augmenter une temporisation SCSI dans le pilote du noyau. Un symptôme de ce cas est un message d'erreur du type "wrong fs type, bad option, bad superblock on /dev/sr5, or too many mounted file systems" (soit "mauvais type de système de fichiers, mauvaise option, mauvais superbloc sur /dev/sr5, ou trop de systèmes de fichiers montés") lors de la tentative de montage d'un CD pour la première fois, alors qu'un second essai immédiatement après réussit. Pour augmenter la temporisation, augmenter la valeur de IOCTL_TIMEOUT au début du fichier /usr/src/linux/drivers/scsi/sr_ioctl.c et recompilez votre noyau. Une valeur de 10000 au lieu de la valeur par défaut de 3000 a fonctionné avec un lecteur NEC Multispin 4Xc.

Il peut être nécessaire de créer des fichiers spéciaux supplémentaires de type block, de façon à ce que toutes les LUNs puissent être accédées. Un fichier de périphérique est nécessaire pour chaque LUN. Ainsi, pour un lecteur multi-CDs à 7 disques, vous aurez besoin des fichiers /dev/sr0 à /dev/sr6 (et plus si vous avez d'autres lecteurs de CD-ROM SCSI). Pour créer ces fichiers spéciaux de type block, exécutez en tant que superutilisateur la commande mknod /dev/sr? b 11 ?, où ? est le chiffre requis.

Les lecteurs multi-CDs Nakamichi MBR-7 (7 disques), NEC Multispin 4Xc et Pioneer (12 disques) ont été mentionnés comme opérationnels.

Des lecteurs multi-CDs EIDE/ATAPI sont également disponibles. Le noyau prend en charge certains lecteurs utilisant la fonction ioctl CDROM_SELECT_DISC. Le fichier de documentation du pilote IDE-CD du noyau comprend le code source d'un programme permettant de sélectionner l'emplacement disque, ou vous pouvez utiliser des outils différents comme le programme eject, décrit précédemment.

6.12 J'obtiens des erreurs "/cdrom: Permission denied" ou "/cdrom: permission non accordée"

Certains CDs ont des permissions du répertoire racine telles qu'elles ne permettent qu'au superutilisateur de les lire. Il s'agit d'une erreur de la part du fabriquant du CD-ROM et constitue un réel souci. Certaines personnes ont fourni une rustine pour leur noyau de façon à contourner le problème.

Consultez aussi la question relative aux fichiers cachés plus loin dans ce document.

6.13 Comment dois-je interpréter les messages d'erreur noyau du pilote IDE CD ?

Qu'est ce que cela signifie lorsque j'obtiens un message du pilote IDE CD-ROM tel que : "hdxx: code: xx key: x asc: xx ascq: x" ?

C'est un message de statut/d'erreur du lecteur de CD-ROM IDE. Par défaut, le pilote IDECD donne une information brute, plutôt que de gâcher de l'espace du noyau avec des messages d'erreur. Vous pouvez changer ce défaut et afficher les messages d'erreur réels en allant dans le fichier /usr/src/linux/drivers/block/ide-cd.c, et en mettant la valeur de VERBOSE_IDE_CD_ERRORS à 1, puis en recompilant le noyau.

6.14 Comment puis-je savoir la vitesse de mon lecteur de CD-ROM ?

Il y a un moyen. Cette commande mesure combien de temps est nécessaire à la lecture de 1500Ko de données du 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

Le taux de transfert d'un lecteur simple vitesse est de 150Ko par seconde, ce qui devrait prendre environ 10 secondes. Au double de la vitesse, cela prendra 5 secondes, au quadruple, 2,5, etc...

Le temps "real" ci-dessus est probablement le meilleur chiffre à regarder -- dans ce cas, il indique un lecteur double vitesse. Vous pouvez augmenter la quantité de données à transférer pour obtenir des valeurs plus précises (au cas où vous vous le demanderiez, les données ne sont pas mises en cache). Vous devriez probablement exécuter cette commande quelques fois et prendre la moyenne.

J'ai également écrit un petit programme C qui mesure et affiche le taux de transfert du CD-ROM; je peux l'envoyer à qui le demande.

6.15 Mon lecteur de CD-ROM s'est arrêté de fonctionner après l'installation de Linux

Le symptôme usuel est que la disquette d'amorçage utilisée pour installer initialement Linux reconnaissait votre lecteur de CD-ROM, mais après l'installation de Linux sur votre disque dur ou votre disquette, il ne le reconnaît plus.

La cause la plus fréquente de ce problème est qu'avec certaines distributions Linux, le noyau qui est installé sur votre disque dur (ou votre disquette) n'est pas nécessairement le même que celui qui était sur votre disquette d'amorçage. Vous avez choisi une disquette d'amorçage qui correspondait à votre matériel et votre CD-ROM, alors que le noyau qui est installé est un noyau "générique" qui ne prend pas en charge le lecteur de CD-ROM. Vous pouvez vérifier cela en suivant la rubrique "Dépannage" exposée précédemment dans ce document (par ex. en commençant par vérifier /proc/devices).

La solution est de recompiler votre noyau, en vous assurant que les pilotes pour votre lecteur de CD-ROM et tout autre nécessaire (par ex. le contrôleur SCSI, le système de fichiers ISO-9660) soient inclus. Consultez le Kernel HOWTO si vous ne savez pas comme réaliser cela.

Si vous avez passé des options en ligne de commande à la disquette d'amorçage (par ex. "hdc=cdrom") vous devez ajouter celles-ci au fichier de configuration de votre programme d'amorçage (typiquement /etc/lilo.conf).

6.16 Il y a des fichiers cachés sur un CD que je ne peux lire

Certains CDs ont des fichiers avec le bit "caché" positionné. Normalement, ces fichiers ne sont pas visibles. Si vous montez le CD avec l'option "unhide" (décacher), alors les fichiers devraient être accessibles (cela ne semble pas être documenté quelque part).

6.17 Où est documentée l'API du CD-ROM ?

Si vous voulez écrire votre propre application, telle qu'une application de platine de lecture de CD audio-numérique, vous aurez besoin de comprendre l'interface de programmation des applications (API) fournie par Linux.

A l'origine, les pilotes CD-ROM du noyau utilisaient leur propres fonctions ioctl() pour fournir les services spécifiques à chaque lecteur. Des fichiers d'en-tête, tel que /usr/include/linux/sbpcd.h les décrivent. Étant donné que de nombreux pilotes étaient basés sur d'autres pilotes, les interfaces, bien que non identiques, partageaient beaucoup de choses communes.

Plus récemment, il y a eu une initiative dirigée par David van Leeuwen ( david@tm.tno.nl) pour standardiser l'API des lecteurs de CD-ROM, en regroupant le code commun en une seule place et en assurant que tous les pilotes se comportent de façon identique. Ceci est documenté dans le fichier /usr/src/linux/Documentation/cdrom/cdrom-standard.tex. De nombreux pilotes du noyau se comportent ainsi. A partir de la version 2.0 du noyau, tous les pilotes de CD-ROM se conforment à cette API.

Mon livre, Son et images sous Linux, entre plus en détail dans la programmation des lecteurs de CD-ROM, en particulier pour les fonctions audio-numériques. Consultez la fin de la section Références.

6.18 Pourquoi ne vois-je pas les noms de fichiers longs sur ce CD-ROM Windows?

Si vous avez un CD-ROM qui dispose de noms de fichiers longs sous Windows mais pas sous Linux, c'est qu'il utilise probablement le format propriétaire Microsoft de système de fichiers Joliet. Consultez la prochaine question pour obtenir une solution.

6.19 Le système de fichiers Joliet de Microsoft est-il pris en charge ?

Microsoft a créé une extension au format ISO-9660 intitulée Joliet. Elle permet l'encodage des noms de fichiers longs en utilisant le format UNICODE 16 bits.

A partir de la version 2.0.34, le noyau Linux prend en charge les extensions pour le système de fichiers Microsoft Joliet. Vous devrez activer cette prise en charge dans le noyau.

Si vous voulez afficher correctement à l'écran les noms de fichiers avec des jeux de caractères nationaux, vous devrez activer la prise en charge des jeux de caractères ISO8859 appropriés dans le noyau.

6.20 Linux prend-il en charge les CDs "extra" ?

Certains CDs audio-numériques sont "étendus" (extra) avec des données additionnelles. Typiquement, vous trouverez sur ces CDs les plages audio traditionnelles sur un CD, ainsi qu'une plage de données qui peut être montée comme système de fichiers ISO-9660.

Un CD "extra" que j'ai examiné avait des applications Microsoft Windows et Apple Macintosh dessus (qui ne fonctionneront pas directement sous Linux, bien sûr, bien que j'aie connu un succès partiel en exécutant l'application Windows sous l'émulateur Windows WINE). Il y avait des images GIF qui pouvaient être visualisées à l'aide d'un outil standard tel que xv et des animations au format Apple QuickTime qui pouvaient l'être en utilisant le programme xanim. C'était un disque multisession que certains lecteurs de CD-ROM anciens ne peuvent lire. Sur le disque se trouvait un fichier readme.txt contenant une Foire Aux Questions sur les CD Extra.

6.21 Linux prend-il en charge les DVD-ROM ?

Les lecteurs de DVD-ROM conformes aux standards SCSI et ATAPI devraient fonctionner avec Linux, en ce qui concerne la lecture de disques utilisant un format de système de fichiers ISO-9660. En d'autres termes, ils fonctionneront comme un (éventuellement énorme) lecteur de CD-ROM.

De nombreux disques DVD-ROM utilisent le système de fichiers UDF. Au moment de l'écriture de ce document, ceci est encore en développement. Des rustines pour le noyau sont disponibles à l'adresse http://trylinux.com/projects/udf/.

D'autre part, je ne suis pas au fait d'une prise en charge quelconque des DVD vidéo à encodage MPEG-2, ni par logiciel, ni en conjonction avec un décodeur DVD matériel. Apparemment, le standard décrivant le format d'encodage ne peut être obtenu que contre une forte somme et sous accord de non-divulgation (NDA). Un autre problème est que le décodage MPEG utilise généralement du matériel propriétaire pour lequel le fabriquant pourrait ne pas vouloir fournir d'informations sur sa programmation. Ces facteurs pourraient empêcher le développement de tout logiciel libre de lecture des DVD vidéo pour Linux.

6.22 Linux prend-il en charge les CD-RW ?

Les lecteurs de CD-RW conformes aux standards SCSI et ATAPI devraient fonctionner avec Linux, en ce qui concerne les disques utilisant un format de système de fichiers ISO-9660. Ceci comprend la possibilité d'écrire sur le disque.

De nombreux disques CD-RW utilisent le système de fichiers UDF. Au moment de l'écriture de ce document, ceci est encore en développement. Des rustines pour le noyau sont disponibles à l'adresse http://trylinux.com/projects/udf/.


Page suivantePage précédenteTable des matières