Mini HOWTO Graveur de CDs
Winfried Truemper,
[email protected], traduit par Olivier
Tharan,
[email protected]
Version 1.9.8, 11 juillet 1997
Je (Winfried Truemper) rejette toute garantie concernant ce document,
incluant toutes les garanties implicites de mise sur le marche et
d'utilite pour un certain usage ; en aucun cas on ne pourra me tenir
compte de dommages speciaux, indirects ou consecutifs a, ni d'aucun
dommage quelqu'il soit resultant de la perte d'utilisation, de donnees
ou de profits, que ce soit dans une action contractuelle, de negli-
gence ou autre action, decoulant de ou en relation avec l'utilisation
de ce document. EEnn ggrrooss,, lliisseezz eett uuttiilliisseezz aa vvooss pprroopprreess rriissqquueess..
11.. IInnttrroodduuccttiioonn
Ma premiere experience avec des graveurs de CDs a ete guidee par le
"Linux CD Writer mini-HOWTO" de Matt Cutts,
[email protected]. Merci
Matt !
Bien que mon intention n'etait que de mettre ce document a jour, je
l'ai reecrit a partir du debut apres avoir realise combien tout avait
change depuis 1994.
11..11.. LLeeccttuurreess ssuuggggeerreeeess
La FAQ sur les CD-R a <
http://www.cd-info.com/CDIC/Technology/CD-
R/FAQ.html> est une FAQ generale portant sur les disques compacts
enregistrables (CD-R).
Le HOWTO CD-ROM Linux explique ce qu'on devrait savoir sur les
lecteurs de CD-ROMs sous Linux. En supplement, vous pourrez jeter un
coup d'oeil sur le HOWTO SCSI Linux et le HOWTO noyau Linux.
11..22.. TTeerrmmiinnoollooggiiee...... LLaasseerrss aauu mmaaxxiimmuumm...... FFeeuu !!
_C_D_-_R_O_M veut dire ``Disque compact a memoire en lecture seule''
(Compact Disc Read Only Memory), un support de stockage utilisant un
laser optique pour lire des trous microscopiques sur un disque
brillant en argent. (La brillance argentee vient d'une couche
aluminisee qui est le support.) Les trous representent les morceaux
d'information (en quelque sorte) et sont si petits que des milliards
d'entre eux tiennent sur le disque. Un CD est donc un support de
stockage de masse.
Le terme _C_D_-_R est une forme abregee de ``CD-ROM enregistrable''
(Recordable) et se rapporte au CD qui n'a pas ces trous microscopiques
sur sa surface... Il est donc vide. A la place de la couche
aluminisee (argentee) il possede un film special (colore) dans lequel
des trous microscopiques peuvent y etre brules. Ceci est realise en
donnant au laser, qui normalement ne fait que palper les trous, un peu
plus de puissance pour qu'il brule les trous. Cette action ne peut se
faire _q_u_'_u_n_e _s_e_u_l_e _f_o_i_s sur un CD-R. Vous pouvez toutefois laisser
certaines parties vides pour une ecriture ulterieure, creant ce qu'on
appelle un CD multi-sessions.
Ce Mini HOWTO parle de la tache d'ecrire un CD-R. Bienvenue a bord,
Capitaine.
11..33.. GGrraavveeuurrss ddee CCDD--RROOMM ssuuppppoorrtteess
Les logiciels de gravage de CDs pour Linux supportent les graveurs de
CD des fabricants suivants : Philips, IMS, Kodak, Yamaha, Hewlett-
Packard ou les compatibles. La liste detaillee des modeles qu'on a vu
fonctionner correctement (ou pas) est disponible a
<
http://www.shop.de/cgi-bin/winni/lsc.pl>. La liste sera incluse dans
les versions futures de ce mini-HOWTO.
Si votre materiel n'est pas supporte, vous pouvez toujours utiliser
Linux pour creer une image du CD ulterieur, mais vous devrez alors
utiliser un logiciel sous DOS pour ecrire l'image sur le CD-R. (Vous
aurez envie de faire ceci parce que la plupart des logiciels DOS ne
peuvent pas gerer les noms de fichiers longs disponibles avec Linux.)
Dans ce cas, vous pouvez passer toutes les sections relatives au
materiel (celles sur les peripheriques SCSI generiques et cdwrite).
11..44.. ````PPoossssiibbiilliitteess'''' ssuuppppoorrtteeeess
En ce moment les logiciels pour graver des CDs sous Linux supportent
les caracteristiques suivantes :
cd-write-2.0 cdrecord-1.5
-------------------------------------------------------------
"Multisession" en partie oui
"RockRidge" oui (mkisofs) oui (mkisofs)
"El Torito" oui (mkisofs) oui (mkisofs)
Veuillez consulter la documentation jointe a ces logiciels pour plus
de details sur ces possibilites speciales. La section ``'' liste la
disponibilite des logiciels mentionnes.
11..55.. LLiisstteess ddee ddiissttrriibbuuttiioonn
Si vous voulez rejoindre l'equipe de developpement (avec l'intention
de les _a_i_d_e_r activement), envoyez un courrier electronique a
[email protected]
et mettez la commande subscribe dans le corps du message.
11..66.. DDiissppoonniibbiilliittee
La toute derniere version de ce document est toujours disponible a
partir de <
http://www.shop.de/~winni/linux/>. (NdT : en France, c'est
a <
http://www.freenix.fr/linux/>, mais la version peut ne pas etre la
derniere en date.)
22.. PPrreeppaarreezz vvoottrree mmaacchhiinnee LLiinnuuxx ppoouurr ggrraavveerr ddeess CCDD--RROOMMss
22..11.. CCoonnffiigguurreezz llee mmaatteerriieell
Eteignez votre ordinateur, et branchez le graveur de CDs sur le bus
SCSI. Veuillez noter que les graveurs de CDs necessitent un controleur
SCSI, l'interface standard EIDE de votre PC n'a pas la capacite de
piloter ces graveurs.
Assurez-vous que le bus SCSI est termine proprement et choisissez une
ID SCSI libre pour le graveur. Regardez le HOWTO SCSI si vous n'etes
pas sur. Si vous etes completement depasse, demandez a un expert.
Remettez le courant et regardez les messages que le BIOS du controleur
SCSI affiche immediatement apres l'allumage de l'ordinateur. S'il ne
reconnait pas votre graveur, revenez a l'etape precedente. Vous
devriez voir un message comme celui-ci :
(Image manquante ; quelqu'un en a-t-il une copie d'ecran ?)
22..22.. NNoottee ssuurr llee ggrraavvaaggee ddee CCDDss ssoouuss LLiinnuuxx
Au contraire d'autres rumeurs, le noyau Linux _n_'_a _p_a_s besoin de patch
pour ecrire sur des CDs. Bien que le fichier drivers/scsi/scsi.c des
sources du noyau contienne les lignes
case TYPE_WORM: case TYPE_ROM: SDpnt->writeable = 0;
ceci veut seulement dire que ces CDs et WORMs ne sont pas accessibles
en ecriture a travers les peripheriques standards /dev/sda - /dev/sdh
ce qui est normal.
Au lieu d'utiliser ces peripheriques, l'ecriture de CDs est faite a
travers les peripheriques SCSI generiques qui permettent presque tout
-- meme l'ecriture sur les CDs.
22..33.. CCrreeeezz lleess ppeerriipphheerriiqquueess ggeenneerriiqquueess
Le HOWTO SCSI Linux dit a propos des peripheriques SCSI generiques :
Le pilote de peripherique SCSI generique fournit une interface pour
envoyer des commandes SCSI a tous les peripheriques SCSI -- disques,
bandes, CDROMs, mecanismes de changement de support, etc.
Parler des peripheriques generiques en tant qu'interfaces veut dire
qu'ils fournissent une maniere differente d'acceder au materiel SCSI
par rapport aux peripheriques normaux. Cette maniere detournee est
obligatoire parce que les peripheriques normaux sont faits pour lire
des donnees a l'echelle du block a partir d'un disque, d'un lecteur de
bandes ou d'un lecteur de CD-ROM. D'un autre cote, piloter un graveur
de CD-ROM (ou un scanner) est plus exotique, par exemple on doit
positionner le laser. Pour avoir des peripheriques normaux
``propres'', toutes ces actions exotiques doivent (peuvent) etre
realisees a travers les peripheriques SCSI generiques.
Puisque l'on peut tout faire au materiel SCSI a travers les
peripheriques generiques, ils ne sont pas limites a un usage -- d'ou
le nom ``generique''.
(Note : s'il y avait une norme pour piloter les graveur de CDs, les
developpeurs du noyau auraient programme un module du noyau pour
ecrire sur les CD-R et nous ne serions pas obliges d'utiliser les
peripheriques generiques. Mais comme chaque fabricant a besoin d'un
pilote individuel pour son materiel (argh !), ce module du noyau
deviendrait maladroit et plus gros que tout ce que vous voulez mettre
dans votre noyau.)
Deplacez-vous dans le repertoire /dev et verifiez les peripheriques
SCSI generiques ; la commande ls devrait montrer 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
Si vous n'avez pas ces fichiers de peripheriques, creez-les en
utilisant le script /dev/MAKEDEV :
bash> cd /dev/
bash> ./MAKEDEV sg
Maintenant les fichiers de peripheriques devraient etre corrects.
22..44.. EEttaabblliisssseezz ll''uuttiilliissaattiioonn ddeess ppeerriipphheerriiqquueess ````SSCCSSII ggeenneerriiqquuee'''' eett
llooooppbbaacckk
Le noyau Linux necessite un module qui lui donne la possibilite de
gerer les peripheriques SCSI generiques. Si votre noyau courant a
cette aptitude, elle devrait etre listee dans le pseudo-fichier
/proc/devices :
bash> cat /proc/devices
Character devices:
1 mem
2 pty
3 ttyp
4 ttyp
5 cua
7 vcs
21 sg <---------- veut dire "peripherique SCSI
30 socksys generique"
Block devices:
2 fd
7 loop <---------- on peut meme utiliser le
8 sd loopback
11 sr <---------- veut dire "CD-ROM SCSI"
Vous devrez peut-etre taper la commande insmod sg, insmod loop ou
insmod sr_mod pour charger le module dans le noyau. Re-verifiez apres
avoir essaye ceci.
Si l'une d'entre elle ne fonctionne pas, vous devez reconfigurer votre
noyau et le compiler.
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/?]
*
* 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
Veuillez noter que j'ai omis les questions un peu moins importantes.
22..55.. CCoonnssttrruuiirree eett iinnssttaalllleerr llee nnooyyaauu
Si vous avez des questions concernant ceci, la lecture suggeree est le
HOWTO Noyau Linux. De plus, votre distribution Linux devrait contenir
de la documentation sur ce probleme.
(Astuce : pendant la recompilation, vous pouvez continuer sur les
etapes ``'' et au-dela)
22..66.. RReeddeemmaarrrreerr ll''oorrddiinnaatteeuurr ppoouurr aammoorrcceerr llee cchhaannggeemmeenntt
Ne paniquez pas si le noyau Linux affiche les messages plus rapidement
que vous ne pouvez les lire, au moins l'initialisation des
peripheriques SCSI peut etre reaffichee avec la commande 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
On a montre ci-dessus uniquement la partie des messages
d'initialisation qui rapportent la detection des peripheriques SCSI
presents physiquement.
22..77.. CCrreeaattiioonn ddeess ppeerriipphheerriiqquueess llooooppbbaacckk
Deplacez-vous dans le repertoire /dev et verifiez les peripheriques
loopback. Ce n'est pas grave si vous n'avez pas ces peripheriques,
mais c'est pratique si vous les avez (Voir la section ``''). Si vous
les avez deja, la commande ls devrait montrer loop0 - 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
Si vous n'avez pas ces fichiers de peripheriques, creez-les en
utilisant le script /dev/MAKEDEV :
bash> cd /dev/ bash> ./MAKEDEV loop
La derniere commande ne reussit que si vous avez le module loop dans
votre noyau (voir la section ``'' pour la manipulation des modules).
Si insmod loop ne donne rien, vous devez attendre que le nouveau noyau
soit correctement installe (voir ``''.
22..88.. OObbtteenneezz llee llooggiicciieell ppoouurr ggrraavveerr lleess CCDDss
22..88..11.. UUttiilliittaaiirreess eenn lliiggnnee ddee ccoommmmaannddee
Le paquetage suivant est obligatoire pour generer des maquettes de CD-
R :
ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/mkisofs-1.11.tar.gz
Selon le modele de votre graveur de CDs (voir ``''), l'un des
logiciels suivants est necessaire pour ecrire les maquettes sur les
CD-R :
ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/cdwrite-2.0.tar.gz
ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/cdrecord.tar.gz
Veuillez utiliser les miroirs de ces serveurs FTP les plus proches ou
chargez-les a partir d'un CD.
Assurez-vous absolument que vous avez la version 2.0 ou superieure de
cdwrite. Aucune version plus ancienne et surtout aucune version beta
ne fonctionneront ! Ne croyez pas les pages de manuel du (vieil)
mkisofs qui indique que vous avez besoin de la version 1.5 de cdwrite.
La distribution Debian est fournie avec un patch pour la version 1.05
de mkisofs qui lui ajoute l'option -K (voir ``'') ; il est disponible
sur
ftp://ftp.debian.org/pub/debian/rex/source/misc/mkisofs_1.05-3.diff.gz
Ce patch n'est necessaire que si vous voulez monter l'image du CD a
travers le peripherique loopback (voir ``'').
Une correction pour scsi.c (dans le noyau) a ete ecrite par Eric
Youngdale pour rendre ce patch superflu et sera incluse dans la
prochaine version stable du noyau Linux.
22..88..22.. UUnnee iinntteerrffaaccee uuttiilliissaatteeuurr ggrraapphhiiqquuee ((ooppttiioonnnneellllee))
X-CD-Roast est un programme de gravage de CDs fonctionnant entierement
sous X, et succede a cdwtools-0.93. Il est disponible sur
http://www.fh-muenchen.de/home/ze/rz/services/projects/xcdroast/e_overview.html
En ce moment X-CD-Roast est base sur une version patchee de
cdwrite-2.0 et possede par consequent les memes caracteristiques (voir
``''). Les versions futures pourraient etre basees sur le logiciel de
remplacementcdrecord.
33.. EEccrriirree uunn CCDD
``Si en fumee tu te transformes, je ne cesserai de jouer pendant que
tu te consumes.'' (L'empereur Neron en ecrivant ses propres CDs
classiques)
En general l'ecriture d'un CD se fait en deux etapes :
+o recolter les logiciels desires et les empaqueter dans une image ISO
9660 avec mkisofs ;
+o ecrire l'image ISO 9660 sur le CD enregistrable avec cdwrite ou
cdrecord.
Il est aussi possible de combiner les deux etapes en une avec un tube
mais ceci n'est pas recommande parce que ce n'est pas fiable. Voir ci-
dessous.
33..11.. DDeetteerrmmiinneezz aa qquueell ppeerriipphheerriiqquuee SSCCSSII ggeenneerriiqquuee llee ggrraavveeuurr eesstt
aattttaacchhee
( Veuillez noter : la facon actuelle de nommage des peripheriques SCSI
sous Linux est compliquee a souhait et pas assez fiable. Le fait que
je la decrive ici en maints details ne devrait pas etre mal interprete
comme la confirmation de cette etat de faits. )
Apres avoir suivi toutes les etapes du dernier chapitre, votre systeme
devrait etre capable de gerer le gravage de CDs. Cette section peut
etre utilisee comme preuve que tout fonctionne comme prevu.
Lancez la commande dmesg. Elle devrait rapporter les messages du noyau
Linux, avec ceux imprimes lors du demarrage (limitation : seulement
les 200 derniers) et contient des informations sur le graveur de CDs
connectes au bus SCSI.
Exemple simple :
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
Cette machine possede quatre peripheriques SCSI connectes (vous ne
pouvez pas le voir donc je vous le dis), avec les ID SCSI allant de 0
a 3. Le graveur est le quatrieme peripherique SCSI physiquement
present et doit donc etre connecte sur /dev/sgd (le quatrieme
peripherique SCSI generique en comptant commence a a). Dans ce cas, la
commande
cdwrite --eject --device /dev/sgd
ouvre le tiroir et est un test pour voir si tout fonctionne
correctement.
Un exemple plus complique :
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.
Dans cet exemple deux controleurs SCSI hebergent un peripherique SCSI
chacun. Quel gachis (ils sont capables d'heberger jusqu'a sept
peripheriques chacun). Ce n'est pas ma configuration alors arretez de
demander si j'ai trop d'argent... Cependant dans le but d'etre un
exemple dont on peut se passer, cette configuration est excellente.
:-)
Dans l'exemple ci-dessus le graveur de CD a l'ID SCSI 2 mais elle est
associee au premier peripherique SCSI generique /dev/sga parce que
c'est le premier peripherique SCSI physiquement present que Linux a
detecte. J'espere que ceci montre clairement que l'ID SCSI d'un
peripherique n'a rien a voir avec le peripherique generique associe.
Deux questions restent en suspens : qu'arrive-t-il si vous prenez le
mauvais peripherique ? Si vous ne specifiez ni l'option
--<MANUFACTURER> ni n'ecrivez de donnees sur le peripherique, en
general un message d'avertissement est affiche et rien de plus :
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
Dans ce cas le peripherique /dev/sbg est un disque dur SCSI (d'IBM).
Si vous ecrivez des donnees sur le mauvais peripherique, vous en
ecrasez le contenu d'origine et endommagerez votre systeme de facon
probablement irremediable. Faites attention, cela m'est deja arrive
par accident.
33..22.. RRaasssseemmbblleerr lleess llooggiicciieellss
En general cela prend plus de temps qu'on ne le croit ; Rappelez-vous
que les fichiers manquants ne peuvent pas etre ajoutes une fois que le
CD est ecrit. :-)
Gardez aussi a l'esprit qu'un certain montant de l'espace libre d'un
CD est utilise pour stocker les informations sur le systeme de
fichiers ISO 9660 (en general quelques Mo).
33..33.. SSttoocckkeerr lleess ddoonnnneeeess ssuurr uunn CCDD
Le terme _I_S_O _9_6_6_0 se rapporte au format dans lequel les donnees sont
stockees sur le CD, pour etre plus precis : c'est le systeme de
fichiers sur le CD.
Bien sur, l'apparence des fichiers stockes dans ce format est unifie
par le noyau Linux comme pour tout autre systeme de fichiers. Si vous
montez un CD dans l'arborescence des repertoires, vous ne pouvez pas
distinguer son contenu des autres fichiers... a part le fait qu'on ne
peut ecrire dessus... meme pas pour root. :-) (Le mecanisme utilise
pour unifier l'apparence des fichiers est appele _s_y_s_t_e_m_e _d_e _f_i_c_h_i_e_r_s
_v_i_r_t_u_e_l, en abrege _V_F_S.
Les possibilites de ISO 9660 ne sont pas si riches comparees a celles
du systeme de fichiers ext-2 qui est normalement utilise sous Linux.
Par contre, le CD n'est inscriptible qu'une seule fois et certaines
possibilites n'ont meme pas de sens. Les limitations du systeme de
fichiers ISO 9660 sont :
+o uniquement huit niveaux de sous-repertoires autorises (comptes a
partir du repertoire racine du CD) (utilisez les extensions
RockRidge pour augmenter ce chiffre) ;
+o longueur maximale des noms de fichiers : 32 caracteres ;
+o capacite de 650 Mo.
33..44.. CCrreeeerr uunn ssyysstteemmee ddee ffiicchhiieerrss IISSOO 99666600
Avant de pouvoir utiliser un support de stockage (par exemple une
disquette, un disque dur ou un CD), il doit avoir un systeme de
fichiers (en langage DOS : etre formate). Ce systeme de fichiers est
responsable de l'organisation et de l'incorporation des fichiers qui
devraient etre stockes sur le support.
Bon, un CD inscriptible ne l'est _q_u_'_u_n_e _f_o_i_s et donc si nous y
ecrivons un systeme de fichiers vide, il serait formate -- mais
resterait pour l'eternite completement vide. :-)
Nous avons donc besoin d'un outil qui cree le systeme de fichiers en
meme temps qu'il copie les fichiers sur le CD. Cet outil s'appelle
mkisofs. Une utilisation simple ressemble a ceci :
mkisofs -r -K -o cd_image collection_privee/
`---------' `----------------'
| |
ecrire la sortie vers prendre repertoire comme entree
L'option -r positionne les permissions de tous les fichiers pour etre
lisibles publiquement sur le CD et permet les extensions Rock Ridge.
C'est ce qu'on veut en general et l'utilisation de cette option est
recommandee jusqu'a ce que vous sachiez ce que vous faites. (Astuce :
sans le -r, le point de montage prend les permissions de
collection_privee !) L'option -K corrige simplement une erreur dans
l'implementation Linux et empeche le dernier fichier du CD d'etre
detruit (pas vraiment, mais Linux ne peut pas le lire). Vous avez
besoin de la version patchee de mkisofs pour cela. Cette option est
equivalente a l'option -P de cdwrite.
Veuillez regarder la page de manuel de mkisofs pour plus de details.
mkisofs essaiera de convertir tous les noms de fichiers au format 8.3
utilise par DOS pour assurer une compatibilite maximale. En cas de
conflits de noms (des fichiers differents qui auraient le meme nom
8.3), des numeros sont utilises dans les noms de fichiers et les
informations sur le nom de fichier choisi sont imprimees sur l'erreur
standard (en general l'ecran).
NNee ppaanniiqquueezz ppaass :: sous Linux, vous ne verrez jamais ces noms de
fichiers 8.3 parce que Linux utilise les extensions Rock Ridge qui
contiennent les informations d'origine du fichier (permissions, nom de
fichier, etc.)
Maintenant vous pouvez vous demander pourquoi la sortie de mkisofs
n'est pas envoyee directement au peripherique de gravage. Ceci est du
a deux raisons :
+o mkisofs ne connait rien sur la maniere de piloter les graveurs de
CD (voir la section ``'') ;
+o On ne peut pas compter sur cette methode (voir ``'').
La synchronisation d'un graveur de CD est un point tellement critique
que nous ne le remplissons pas directement avec mkisofs (rappelez-vous
que Linux n'est pas un systeme d'exploitation en temps reel et que les
taches peuvent etre mal temporisees). A la place, il est recommande de
stocker la sortie de mkisofs dans un fichier separe sur le disque dur.
Ce fichier est alors une image parfaite du CD a venir et est en fait
ecrite sur le CD avec l'outil cdwrite dans un deuxieme temps.
L'image parfaite est stockee dans un fichier enorme, et vous avez donc
besoin de la meme quantite d'espace disque libre que ce que prennent
vos logiciels rassembles. C'est le probleme. On pourrait penser a
creer une partition supplementaire pour cela et ecrire l'image sur
cette partition plutot que dans un fichier. Je suis contre cette
strategie parce que si vous ecrivez sur la mauvaise partition (a cause
d'une faute de frappe), vous pouvez perdre votre systeme Linux en
entier. De plus, c'est du gachis d'espace disque parce que l'image du
CD represente des donnees temporaires que l'on pourra effacer apres
avoir grave le CD.
33..55.. TTeesstteerr ll''iimmaaggee CCDD
Linux a la possibilite de monter des fichiers comme si c'etait des
partitions de disques. Ceci est tres utile pour verifier si la
structure des rerpertoires de l'image du CD est bonne.
Pour monter le fichier cd_image cree ci-dessus dans le repertoire
/cdrom, envoyez la commande
mount -t iso9660 -o ro,loop=/dev/loop0 cd_image /cdrom
Vous pouvez maintenant inspecter les fichiers sous /cdrom -- ils
apparaissent exactement comme ils le seraient sur un _v_r_a_i CD. Pour
demonter l'image CD, tapez simplement umount /cdrom. Attention : si
vous n'avez pas utilise l'option -K avec mkisofs, le dernier fichier
sur /cdrom peut ne pas etre entierement lisible.
Note : certaines versions anciennes de mount ne savent pas manipuler
les peripheriques _l_o_o_p_b_a_c_k. Si vous avez une version de mount si
vieille que ca, c'est une indication pour mettre votre systeme Linux a
jour.
Plusieurs personnes m'ont deja suggere de mettre des informations sur
la maniere d'obtenir les dernieres versions de mount dans ce mini-
HOWTO. Je refuse toujours de le faire. Si votre distribution Linux
contient un vieux mount, dites-leur que c'est une erreur. Si votre
distribution Linux se met a jour difficilement, dites-leur que c'est
une erreur.
Si je devais donner toutes les informations necessaires pour
contourner les erreurs des distributions Linux mal faites, ce mini-
HOWTO serait beaucoup plus gros et dur a lire.
33..66.. RReemmaarrqquueess ssuurr lleess ddiissqquueess CCDD RReeiinnssccrriippttiibblleess vviieerrggeess
Le magazine informatique allemand cc''tt donne une liste de trucs
concernant les CD vierges dans leur numero de novembre 1996 :
+o les disques ``sans-noms'' ne sont en general pas de la plus grande
qualite et il vaut mieux ne pas les utiliser ;
+o si un CD reinscriptible est defectueux, il y a des chances que ca
soit la meme chose pour le paquet entier (vous en avez achete plus
d'un a la fois) ; vous avez peut-etre de la chance et pouvez au
moins utiliser les 500 premiers Mo de tels CDs...
+o ne touchez pas les CD sur leur face brillante avant l'ecriture.
33..77.. EEccrriivveezz ll''iimmaaggee dduu CCDD ssuurr uunn CCDD
Plus grand chose a faire. Avant de vous montrer la derniere commande,
laissez-moi vous avertir que les graveurs de CDs doivent etre
alimentes par un flot continu de donnees parce qu'ils n'ont que de
petits caches de donnees. Le processus d'ecriture de l'image CD sur le
CD ne doit donc pas etre interrompue ou bien le resultat est un CD
corrompu.
Pour etre sur que rien ne vient interrompre le processus, virez tous
les utilisateurs de votre systeme et debranchez le cable Ethernet...
Lisez le ``Bastard Operator From Hell'' pour en apprendre sur la bonne
attitude a adopter. ;-)
Si vous etes pret mentalement, mettez une blouse noire, multipliez
l'ID SCSI du graveur de CD par son numero de version et allumez autant
de bougies, recitez deux strophes de la FAQ ASR et finalement tapez :
cdwrite --device /dev/sgd cd_image
ou bien
cdrecord -v speed=2 dev=4,0 cd_image
selon le logiciel que vous voulez utiliser. Vous devez bien sur
remplacer le peripherique d'exemple par le peripherique SCSI auquel
votre graveur de CD est connecte.
Veuillez noter qu'autant graveur ne peut repositionner son laser et
continuer au point ou il a ete derange. Par consequent toute vibration
forte ou meme un choc detruira completement le CD que vous etes en
train de graver.
33..88.. SSii qquueellqquuee cchhoossee vvaa mmaall......
dessous de bouteilles. :-)
44.. QQuueessttiioonnss ffrreeqquueemmmmeenntt ppoosseeeess,, aavveecc lleess rreeppoonnsseess
44..11.. ````AA qquueell ppooiinntt llee pprroocceessssuuss ddee bbrruulluurree eesstt--iill sseennssiibbllee ??''''
Reponse : cela depend de votre graveur. Les graveurs modernes
devraient avoir un tampon de donnees de 1 Mo a peu pres et peuvent
tenir une a deux secondes sans donnees. Voyez les manuels ou demandez
au fabricant si vous voulez connaitre les details. Independamment de
la taille de ces tampons, vous devez garantir un debit constant de 300
Ko/s ou 600 Ko/s sur une longue periode.
Les processus qui utilisent beaucoup le disque, comme la mise a jour
de la base de donnees ``locate'' diminuent le debit maximum et
abimeront certainement le CD ; vous feriez mieux de verifier que de
tels processus ne sont pas demarres par cron, at ou anacron pendant
que vous gravez des CD-Rs.
Par contre, certaines personnes m'ont dit qu'elles avaient compile un
noyau pendant le gravage d'un CD sans aucun probleme. Vous aurez bien
sur besoin d'une machine rapide pour de telles experiences.
44..22.. ````LLaa ffrraaggmmeennttaattiioonn aa--tt--eellllee ddeess mmaauuvvaaiiss eeffffeettss ssuurr llee fflloott ??''''
La fragmentation est en general tellement basse qu'on ne remarque pas
son impact.
Si vous n'en etes pas certain, regardez les messages imprimes lors du
demarrage, le pourcentage de fragmentation est donne los de la
verification du systeme de fichiers. Vous pouvez verifier cette valeur
avec la commande tres dangereuse
bash$ e2fsck -n /dev/sda5 # '-n' est important !
[partie effacee -- ignorez toute erreur]
/dev/sda5: 73/12288 files (12.3% non-contiguous)
Dans cet exemple, la fragmentation semble etre tres grande -- mais il
n'y a que 73 fichiers tres petits sur ce systeme de fichiers (utilise
sur /tmp) et la valeur _n_'_e_s_t _p_a_s alarmante.
44..33.. ````EEsstt--iill ppoossssiibbllee ddee ssttoocckkeerr ll''iimmaaggee CCDD ssuurr uunn ssyysstteemmee ddee
ffiicchhiieerr UUMMSSDDOOSS ??''''
Oui. Le seul systeme de fichiers ni assez fiable ni assez rapide pour
graver des CD est NFS (_N_e_t_w_o_r_k _F_i_l_e_S_y_s_t_e_m, systeme de fichiers par le
reseau).
J'utilise moi-meme UMSDOS pour partager l'espace disque entre Linux et
DOS/Win sur un PC (486/66) dedie au gravage des CDs.
44..44.. ````YY aa--tt--iill uunn mmooyyeenn ddee ppaasssseerr oouuttrree lleess lliimmiittaattiioonnss ddee IISSOO 99666600
??''''
Oui. Vous pouvez mettre le systeme de fichiers qui vous plait sur le
CD. Mais certains systemes d'exploitation ne pourront rien en faire.
Voici la recette :
+o creez un fichier vide d'une taille de 650 Mo :
dd if=/dev/zero of="fic_vide" bs=1024k count=650
+o creez un systeme de fichiers ext2 sur ce fichier :
bash$ /sbin/mke2fs fic_vide
fic_vide is not a block special device.
Proceed anyway? (y,n) y
(NdT : mke2fs demande confirmation de creer le systeme de fichiers sur
un fichier normal.) ;
+o montez ce fichier vide a l'aide du peripherique _l_o_o_p_b_a_c_k :
mount -t ext2 -o loop=/dev/loop1 fic_vide /mnt
+o copiez les fichiers vers /mnt et demontez-le apres (umount) ;
+o utilisez cdwrite ou cdrecord sur fic_vide (qui n'est plus vide)
comme si c'etait une image ISO 9660.
Si vous voulez creer une entree dans /etc/fstab pour un tel CD,
desactivez sa verification, par exemple :
/dev/cdrom /cdrom ext2 defaults,ro 0 0
Le premier 0 veut dire "ne me compte pas dans les dumps", la deuxieme
(importante) veut dire "ne verifie pas les erreurs au demarrage" (fsck
n'arrivera pas a verifier les erreurs eventuelles sur le CD).
44..55.. ````CCoommmmeenntt lliirree eett eeccrriirree ddeess CCDDss aauuddiioo ??''''
Veuillez prendre les paquetages cdda2wav et sox, disponibles sur
sunsite et ses miroirs :
ftp://sunsite.unc.edu/pub/Linux/apps/sound/cds/cdda2wav0.71.src.tar.gz
ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/sox-11gamma-cb2.tar.gz
cdda2wav vous permet de prendre un intervalle specifique (ou une plage
entiere) de votre CD audio et le convertit en un fichier .wav. sox
convertit les fichiers wav dans le format cdda (CD audio) pour qu'on
puisse l'ecrire sur le CD-R avec cdwrite.
44..66.. ````CCoommmmeenntt rreecchheerrcchheerr ddeess ppeerriipphheerriiqquueess SSCCSSII aapprreess llee ddeemmaarrrraaggee
??''''
Le fichier drivers/scsi/scsi.c contient les informations suivantes
(NdT : traduites en francais) :
______________________________________________________________________
/*
* Utilisation : echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi
* avec "0 1 2 3" remplaces par vos "Carte Canal Id Lun".
* Considerez ceci comme une caracteristique BETA.
* ATTENTION : Ceci n'est pas fait pour brancher vos
* peripheriques a chaud. Comme le SCSI n'a pas ete fait
* pour ca, vous pouvez endommager votre materiel !
* Cependant il est peut-etre autorise d'allumer un
* peripherique deja branche. Il n'est peut-etre pas garanti
* que ce peripherique ne corrompe pas un transfert de donnees
* en cours.
*/
______________________________________________________________________
44..77.. ````EEsstt--iill ppoossssiibbllee ddee ffaaiirree uunnee ccooppiiee eexxaaccttee dd''uunn CCDD ddee ddoonnnneeeess
??''''
Oui. Mais vous devriez etre conscient du fait que toute erreur faite
en lisant l'original (due a la poussiere ou a des rayures) donnera une
copie defectueuse.
Premier cas : vous avez un graveur de CDs et un lecteur de CD-ROM
separe. En tapant la commande :
cdwrite -v -D /dev/sgc --pad -b `isosize /dev/scd0` /dev/scd0
ou
cdrecord -v dev=3,0 speed=2 -isosize /dev/scd0
vous lisez le flot de donnees du lecteur de CD-ROM attache a /dev/scd0
et l'ecrivez directement sur le graveur par /dev/sgc.
Deuxieme cas : vous n'avez pas de lecteur de CD-ROM separe. Vous devez
utiliser le graveur pour lire le CD-ROM comme ceci :
dd if=/dev/scd0 of=cdimage bs=1c count=`isosize /dev/scd0`
Cette commande est equivalente au resultat de mkisofs, vous devez
continuer tel que c'est decrit a la section ``''. Veuillez noter que
cette methode ne fonctionnera pas sur des CDs audio !
44..88.. ````LLiinnuuxx ppeeuutt--iill lliirree ddeess CCDDss JJoolliieett ??''''
Oui. Mais vous devez patcher le noyau et le recompiler. Pour plus de
details, voyez <
http://www-
plateau.cs.berkeley.edu/people/chaffee/joliet.html>.
44..99.. ````CCoommmmeenntt ppuuiiss--jjee lliirree//mmoonntteerr ddeess CCDD--RROOMMss aavveecc llee ggrraavveeuurr ddee CCDDss
??''''
Comme vous le feriez avec un lecteur de CD-ROM normal. Aucune astuce
la-dessous.
Notez que vous devez utiliser les peripheriques scd (CD-ROM SCSI) pour
monter les CDs en lecture. Voici un exemple pour /etc/fstab :
/dev/scd0 /cdrom iso9660 ro,user,noauto 0 0
55.. DDeeppaannnnaaggee
55..11.. CCaa nnee mmaarrcchhee ppaass :: ssoouuss LLiinnuuxx
Veuillez d'abord verifier que le graveur fonctionne avec un autre
systeme d'exploitation. Concretement :
+o Est-ce que le controleur reconnait le graveur comme un peripherique
SCSI ?
+o Est-ce que le logiciel pilote reconnait le graveur ?
+o Est-il possible de fabriquer un CD avec les logiciels fournis ?
55..22.. CCaa nnee mmaarrcchhee ppaass :: ssoouuss DDOOSS eett aassssiimmiilleess
Essayez d'utiliser Linux. L'installation et la configuration des
pilotes SCSI pour DOS est une horreur. Linux est trop complique ? Ha !
55..33.. EErrrreeuurrss SSCCSSII ppeennddaanntt llaa pphhaassee ddee ggrraavvaaggee
Il est fort probable que ces erreurs soient dues a :
+o possibilite de _d_i_s_c_o_n_n_e_c_t_/_r_e_c_o_n_n_e_c_t manquant sur le bus SCSI ;
+o materiel pas assez refroidi ;
+o materiel defectueux (devrait etre detecte par ``'').
Sous des circonstances variees, les peripheriques SCSI se deconnectent
et se reconnectent par eux-memes (de maniere electronique) du bus
SCSI. Si cette possibilite n'est pas disponible (verifiez le
controleur et les parametres du noyau), certains graveurs ont des
problemes pendant le gravage ou le fixage du CD-R. En particulier, le
pilote SCSI NCR 53c7,8xx a cette possibilite desactivee par defaut, et
vous devriez donc verifier ceci en premier :
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
66.. RReemmeerrcciieemmeennttss
Andreas Erdmann,
[email protected], a fourni l'exemple du
graveur Yamaha ;
Art Stone,
[email protected], a eu l'idee de mettre des systemes de
fichiers non ISO 9660 sur un CD ;
Bernhard Gubanka,
[email protected], a remarque le besoin d'une
version recente de mount pour utiliser le peripherique loopback ;
Brian H. Toby a fignole l'orthographe ;
Bruce Perens,
[email protected], a donne des informations sur la liste
de distribution cdwrite ;
Edwin H. Kribbs a remarque que -K necessite de patcher mkisofs ;
Gerald C Snyder,
[email protected], a teste l'ecriture d'un CD-ROM ext-2
(voir ``'') ;
Ingo Fischenisch,
[email protected], a fourni l'exemple des deux
controleurs hebergeant deux peripheriques ;
Janne Himanka,
[email protected], pointeur vers le patch du noyau pour
lire des CDs Joliet ;
Joerg Schilling,
[email protected], informations sur cdrecord ;
Jos van Geffen,
[email protected], a note le probleme dans ``'' ;
Markus Dickebohm,
[email protected] ;
Pierre Pfister,
[email protected], a aide a developper la recette des
copies exactes ;
Rick Cochran,
[email protected], indice sur dis-/reconnect
desactive par defaut dans le pilote NCR ;
Stephan Noy,
[email protected], des informations et son experience
sur l'ecriture de CDs audio ;
Stephen Harris,
[email protected], a donne des indices sur l'ecriture des
CDs audio ;
The Sheepy One,
[email protected], a suggere l'utilisation des CD rates
en dessous de bouteilles ;
Volker Kulhmann,
[email protected], a remarque que le
paquetage cdwrite ne contient pas mkisofs.