Note du modérateur: Merci à Lionel, Manu et Soufiane pour cet excellent tutoriel, n'hésitez pas à le lire et relire en cliquant sur l'icone. Bref un gros travail à ne pas louper...
Graver sous Linux
La gravure sous Linux est une opération simple, néamoins, il se pourrait que le modèle que vous désirez acquérir ne soit pas supporté par Linux, aussi par mesure de précaution il est plus sage de se référer d'abord à la
Hardware-HOWTO
Installer un graveur dans une machine est une opération très simple, en effet dans le cas d'un graveur externe il suffit de le raccorder au port adéquat sinon, il suffit de procéder comme pour l'ajout d'une unité de disque c'est à dire ouvrir la machine, repérer un emplacement 5"1/4 de libre, mettre en place le graveur, accorder l'alimentation puis, dans le cas d'un modèle SCSI à la nappe adéquate idem pour un modèle ATAPI
Quelque soit le type de matériel que vous utiliserez, le kernel le considèrera comme un périphérique SCSI. Donc si les options ci aprés ne sont pas incluses dans le kernel, il faudra recompiler votre kernel et les rajouter (comme les montrent les screenshots). Vous pouvez vous référez au README inclu dans les sources du kernel ou à la documentation que l'on peut trouver par exemple chez Lea-Linux
Aussi, si votre matériel est en SCSI il vous suffit, à ce niveau d'activer le support de la carte controleur à laquelle ce graveur est raccordé.
Par contre s'il est en ide vous aurez besoin de recompiler votre kernel avec le module scsi-généric comme vous le montre les 2 screenshots suivants:
- http://infonomade.linuxfr.org/tests/graveur/scsi1B.png
- http://infonomade.linuxfr.org/tests/graveur/scsi1.png
- http://infonomade.linuxfr.org/tests/graveur/scsi2B.png
- http://infonomade.linuxfr.org/tests/graveur/scsi2.png
En outre vous devez rajouter append="hda=ide-scsi"
en remplaçant hda par/hdX où X correspond au périphérique IDE associé à votre graveur dans votre
/etc/lilo.conf. Ce qui donne, dans le cas de la machine empi
image=/boot/linuz
label=linux
root=/dev/sda5
append="hda=ide-scsi"
initrd=/boot/initrd-smp.img
read-only
Dans le cas d'un périphérique USB( kernel >= 2.2.18 ), PCMCIA ou sur port Parallèle il vous faut également activer le support adéquat. Ne pas oublier le loopback, pour pouvoir monter un fichier ISO dans l'arborescence.
Passons à la gravure proprement dite, le format de fichier natif des cdroms étant l'iso9660, Il vous faudra d'abord convertir, par exemple de l'ext2 en iso9660 à l'aide de l'outil mkisofs qui peut vous générer votre fichier sur disque ou dans un pipe. Par précaution, dans les exemples qui suivent nous utilisons un fichier disque temporaire ( attention prévoir un espace disque disponible suffisant ).
Il existe de nombreux utilitaires pour graver sous X, parmis lesquels:
Dans nos exemples nous utilisons cdrecord.
Maintenant, abordons les différentes variations possibles:
pour de plus amples informations vous pouvez vous référez à la page man de cdrecord
Avec les conventions que nous avons adoptées la syntaxe de base des commandes sera de la forme :
cdrecord speed=X dev=Y,Z,W /rep/iso
Où X est la vitesse de gravure, Y,Z,W sont obtenus par cdrecord --scanbus. et /rep/iso correspond au fichier ISO à graver dans son répertoire.
- CDR: Pour graver : cdrecord speed=X dev=Y,Z,W
- CDRW: Les disques réinscriptibles ont la même syntaxe pour l'écriture que les CDR, par contre l'effacement s'effectue à l'aide de la commande cdrecord blank=all dev=Y,Z,W
- monosession
cdrecord speed=X dev=Y,Z,W /rep/iso
Pour graver en monosession en format iso9660 des fichiers contenus dans
/source :
-
mkisofs -LlrT -o /rep/iso /source
Où /source correspond aux données à graver. -
cdrecord speed=X dev=Y,Z,W /rep/iso
-
- Multisession
Pour graver en multisession avec cdrecord
il faut faire attention à plusieurs points:
- Chaque session doit être gravée avec l'option -multi, sauf la dernière.
- mkisofs a besoin du CD sur lequel l'on va graver en multisession pour créer son système de fichier.
- Pour tester le CD tout de suite, il faut l'éjecter et le remettre, sinon, on ne verra que les fichiers qui étaient là avant la dernière gravure.
Maintenant, suivons étape par étape les instructions suivantes:
- 1- Première session:
Vous créez votre image ISO comme pour un CD mono-session:
# mkisofs -lLrR -o image.iso /cd_rep
Ensuite, vous pouvez graver en n'oubliant surtout pas l'option
-multi :
# cdrecord dev=0,4,0 speed=4 -multi -v -data image.iso - 2- Sessions intermédiaires:
Ici, mkisofs, a besoin d'informations fournies par cdrecord :
# cdrecord -msinfo dev=0,4,0
Ceci vous donne deux nombres séparés par une virgule (par exemple 0,15292).
Maintenant, vous pouvez appeler mkisofs avec les options -C et -M qui lui permettent de savoir où va commencer la session et quels sont les éléments déjà présents sur le CD:
# mkisofs -lLrR -C 0,15292 -M /dev/scd0 -o imageN.iso /cd_repN
ATTENTION: le CD auquel on veut rajouter la nouvelle session, dans être dans le lecteur /dev/scd0.
Maintenant, vous pouvez graver avec cdrecord l'ISO imageN.iso sans oublier l'option -multi:
# cdrecord dev=0,4,0 speed=4 -multi -v -data imageN.iso
- 3- La dernière session
La construction de l'image se déroule comme dans l'étape 2-:
# cdrecord -msinfo dev=0,4,0 15292,68700
# mkisofs -lLrR -C 15292,68700 -M /dev/scd0 -o imagef.iso /cd_repf
Par contre, cdrecord est utilisé sans l'option -multi:
# cdrecord dev=0,4,0 speed=4 -v -data imagef.iso
Des fichiers audios:
-
cdda2wav -B -D0,1,0 où 0,1,0 correspond au cdrom où est placé le CD audio.
-
cdrecord speed=X dev=Y,Z,W -audio plage1.wav plage2.wav ...
Des données et des fichiers audio
Voici un exemple complet, en prime le système de fichier de la partie données est de l'ext2.
Il faut commencer par créer un fichier image, de la taille de la partition de données désirée.
# dd if=/dev/zero of=cd.img bs=1k count=500000
Puis l'on crée notre système de fichier, en supposant que l'on ait un point de montage nommé
/a.
# mke2fs cd.img
# mount -o loop cd.img /a
# cp -R /r/c2/mp3/Annihilator /a
# umount /a
Maintenant nous pouvons mettre des données sur ce système de fichier.
# mount -o loop cd.img /a
# cp -R /r/c2/mp3/Annihilator /a
# umount /a
Maintenant, l'on peut graver à la fois la partie en ext2 et les plages musicales.
# cdrecord dev=0,2,0 speed=4 -v -data image1.img -audio plage1.wav plage2.wav
Petit retour sur les fichiers Audio avec cdrdao:
cdrdao permet de graver les CDs sous forme de structure+données.
La structure du CD est donnée dans un fichier (TOC-file plus connu sous le nom de CUE-SHEET dans le monde de Windows) et les données sont stockées dans un ou plusieurs fichiers. L'avantage du DAO (Disk-At-Once) est que l'on gère soi-meme les blancs (pré et post-GAP length) entre les plages. Ainsi on peut dupliquer exactement un CD multipiste (si vous copiez un CD audio par cdrecord, vous aurez 2 secondes de blanc entre les plages). A partir de la version 1.1.3, cdrdao permet la copie à la volée (CD à CD).
Passons au côté pratique de la chose:
Création d'une image de CD à partir d'un lecteur de CD:
# cdrdao read-cd --device Y,Z,W --speed X --datafile image.bin image.toc
Exemple:
# cdrdao read-cd --device 0,0,0 --speed 40 --datafile debian_cd1.bin debian_cd1.toc
Astuce: si vous devez copier un CD uniquement audio, utilisez
cdda2wav
pour extraire les plages audio (cdrdao n'est pas très véloce).
Exemple:
# cdrdao read-toc --device 0,0,0 --speed 40 --datafile musique.wav musique.toc
# cdda2wav -D 0,0,0 -S 40 -x -t 1+13 musique.wav
(on suppose que le CD a 13 plages)
Maintenant, vous avez obtenu deux fichiers, l'un pour les donnees
(.bin ou .wav, selon l'exemple) et l'autre pour la structure (.toc).
- Gravure d'une image de CD:
# cdrdao write --device 0,1,0 --speed 8 debian_cd1.toc
- Copie à la volée d'un CD:
# cdrdao copy --source-device 0,0,0 --device 0,1,0 --speed 8 --on-the-fly
Conseil de choix entre cdrecord ou cdrdao: lorsque vous devez creer un CD, il est plus simple d'utiliser cdrecord. Pour les copies de CD, cdrdao est plus approprié.
La chasse aux idées reçues:
certaines personnes ayant l'habitude d'autres OS, vous conseilleront d'arréter l'économiseur d'écran, de déconnecter le réseau ... nous avons, pour vous donner un exemple, gravé et en même temps écouté un CD édité sous emacs, lancé un netscape, utilisé gtop et décodé un fichier mpeg sur une machine de bi PIII de 64Mo sous KDE2 où de très nombreux services étaient déjà lancés.
comme vous pouvez le constater sur le screenshots la machine a un peu chargé mais la gravure c'est très bien passée. ( Ah, bien sûr xv tournait aussi pour réaliser le screenshot).
- Netscape
- emacs ( visble sous le terminal )
- décodage mpeg avec Xmovie
- Gtop
- Xosview
- KDE2
- xmcd
- Compilation du kernel.
http://infonomade.linuxfr.org/tests/graveur/chargeB.png
http://infonomade.linuxfr.org/tests/graveur/charge.png
Comme vous pouvez le constater graver sous linux est une opération fort simple et en prime vous pouvez continuer à vous amuser avec votre machine pendant ce temps.
Maintenant envisageons quelques petits scripts qui devraient vous faciliter la vie.
- copiecd
Voici tout d'abord un script vous permettant de recopier un CD data vers votre graveur..
#!/bin/sh
#
# script de copie des CD
#
# Le repertoire ou nous stockons notre ISO.
ISO=/usr/local/src/image_cd
#
# mettez le device correspondant a votre CDROM.
#
CDROM=/dev/scd0
#
# Pensez a changer la vitesse et le device
# correspondant a votre graveur.
#
SPEED=4
grep /cdrom /etc/mtab
if [ $? -eq 1 ]; then
mount -rt iso9660 $CDROM /cdrom
fi
mkisofs -LlrT -o $ISO/cd.raw /cdrom >/dev/null 2>&1
cdrecord speed=$SPEED dev=4,0 -eject $ISO/cd.raw
umount /cdrom
rm -f $ISO/cd.raw
exit 0
- grave
Ce script vous permet de graver aussi bien un fichier simple qu'une ISO ou un répertoire.
Sa syntaxe est très simple: grave nomFichier
Il présupose que vous ayez compilé votre kernel avec le support du loopback et que vous ayez suffisament d'espace disque pour générer l'ISO le cas échéant.
#!/bin/sh
#
# script pour graver un fichier
#
# Le repertoire ou nous stockons notre image.
ISO=/usr/local/src/image_cd
#
# Pensez a changer la vitesse et le device
# correspondant a votre graveur.
#
SPEED=4
FICHIER=$1
usage(){
echo
echo "$0 fichier"
echo "ou fichier est un fichier ou un repertoire"
echo
exit 1
}
creer_iso(){
mkisofs -LlrT -o $ISO/cd.raw $FICHIER
}
if [ -z $FICHIER ]; then
usage
elif [ -f $FICHIER ] && [ -s $FICHIER ]; then
mount -t iso9660 -o loop $FICHIER /mnt
if [ $? -ne 0 ]; then
creer_iso
fi
umount /mnt
cdrecord speed=$SPEED dev=4,0 -eject $FICHIER
echo "c'est un fichier regulier"
elif [ -d $FICHIER ]; then
creer_iso
cdrecord speed=$SPEED dev=4,0 -eject $ISO/cd.raw
rm -f $ISO/cd.raw
else
usage
fi
exit 0
Bien sûr ces scripts sont très basiques, mais ils vous donnent une petite idée de ce que l'on peut faire, à vous d'écrire les votres suivant vos besoins.
Maintenant, une petite utilisation de grave vu précédement : Le backup hebdomadaire.
Vous désirez faire un backup hebdomadaire de votre /home. Simplement c'est un peu monotone, aussi vous décidez que c'est à la machine de faire son propre backup. Ceci ne pose aucun problème à condition qu'il y ait un CD vierge de taille suffisante pour archiver votre répertoire.
Pour ce faire il suffit d'entrer les données suivantes dans la crontab(5) de root par exemple en supposant que votre compte de travail soit toto
0 3 * * 5 echo "pense a mettre un CD vierge pour demain"| mail -s "Le backup" toto >/dev/null 2>&1
0 3 * * 6 /usr/local/bin/grave /home >/dev/null 2>&1
Rédacteurs:
# ...
Posté par Anonyme . Évalué à 0.
juste un détail : pas d'accent avant deux consonnes... donc interrogation et non intérrogation
[^] # Re: ...
Posté par trollhunter . Évalué à 1.
[^] # Re: ...
Posté par bmc . Évalué à 1.
Pour plus de renseignements :
cdrecord blank=help
Voilà, merci pour cet article, très bonne idée (un peu tard pour moi, mais bon :).
Je conseille vivement GnomeToaster qui grave les mp3 à la volée sur un CD-R => CD-DA...
[^] # ponctuation manquante
Posté par Anonyme . Évalué à -1.
"[nous avons] gravé et en même temps écouté un CD édité sous emacs [...]"
Un CD édité sous Emacs? Non?! Il fait ça, aussi?
C'est tout à fait mineur comme remarque, mais ça fait quand même bizarre, un CD édité. :)
(note: c'est bon signe, j'ai rien d'autre à redire!)
[^] # Re: ponctuation manquante
Posté par Ramón Perez (site web personnel) . Évalué à -1.
# Obligé de recompiler le Noyau ?
Posté par Anonyme . Évalué à 0.
En tous cas hors de portée pour un novice (Je pense en particulier à une utilisation domestique de Linux).
J'ai cru lire quelque part (mais j'ai peut-être rêvé) que la mandrake avait un module emulate-scsi pré-compilé.
Si ce n'est pas le cas, est ce qu'il est envisageable de faire une telle chose ?
Daniel
[^] # Re: Obligé de recompiler le Noyau ?
Posté par Simon . Évalué à 1.
[^] # Re: Obligé de recompiler le Noyau ?
Posté par Anonyme . Évalué à 0.
# graver sous Linux .. c'est simple
Posté par jeanphy . Évalué à 1.
dans lilo, mettre l'option nonide du device
charger le module scsi et c'est tout.
ça grave facile et meme en pleine charge, avec un Racer à 600F
D'ailleurs ,jamsi plus recompilé de noyau depuis 2 ans..
Merci pour cette très bonnne aide
[^] # Re: graver sous Linux .. c'est simple
Posté par Anonyme . Évalué à 0.
C'est tout.
[^] # Re: graver sous Linux .. c'est simple
Posté par Anonyme . Évalué à 0.
# Gravure
Posté par Anonyme . Évalué à 0.
Et puis avec un ou deux scripts, ca devient vite très facile de graver.
Quel régal de pouvoir graver tout en faisant pleins de choses à coté: StarOffice ou Quake3 même; contrairement à d'autres OS ou meme l'économiseur d'écran est catastrophique.
Note: je n'ai qu'un PC233MHz.
# Vous abusez ...
Posté par Anonyme . Évalué à 0.
consommer à mort les libs kde et libs gnome en
même temps : pourtant, ya pas beaucoup de ram sur la bécane de test !!!
[^] # Beau?
Posté par Ano . Évalué à 1.
Surtout le boulot de Tigert... (Bah ouais, j'aime bien...)
# ca marche nickel ... enfin presque
Posté par Tony Gencyl . Évalué à 1.
Juste une remarque (pas sur l'article, mais sur la gravure ss Linux en gén.): un gros regret:
ne pas pouvoir faire de la copie audio a la volée avec xcdroast. C'es chiant de devoir
ripper les pistes avant.
Une remarque aussi: si comme moi, certaines personnes utilisent une chaine SCSI complète, N'UTILISEZ PAS votre lecteur zip au cours de la gravure, ca la fait planter immédiatement (le module ppa emule des interfaces SCSI pour connecter le lecteur Zip et apparement pourris le fonctionnement de la carte SCSI).
# Au sujet du append...
Posté par Sebastien . Évalué à 1.
Je grave chez moi avec un graveur IDE émulé en SCSI, et je n'ai jamais rajouté cette ligne... C'est grave docteur ?
Rq : je n'arrive à graver que des données, cdrecord refuse l'audio.... ya p'tet un rapport....
[^] # Re: Au sujet du append...
Posté par Schwarzy . Évalué à 1.
# X-CDRoast marche très bien
Posté par Olivier Jeannet . Évalué à 1.
Je fais tout avec : récupérer des pistes audio, graver une compilation, graver mes sauvegardes de données. C'est quand même vachement plus simple que de se taper des lignes de commandes complexes avec cdrecord. Ce qui est dommage à mon avis c'est que ce genre de mode d'emploi doit plutôt effrayer les Windoziens/Mac (ou d'autres) qui veulent tâter de Linux... S'il existe des programmes graphiques bien faits (cas de X-CDRoast), c'est toujours mieux.
[^] # Re: X-CDRoast marche très bien
Posté par trollhunter . Évalué à 1.
# Completement hors sujet
Posté par Stéphane Pontier (site web personnel) . Évalué à 1.
Au passage si l'emulation ide-scsi marche impec avec la mandrake 7.2 (sans rien avoir a configurer), la 7.1 is un peu plus problematique (tout du moins avec mon Plex12/10/32)
# cd udf ?
Posté par Anonyme . Évalué à 0.
[^] # Re: cd udf ?
Posté par xxxxx gregory . Évalué à 1.
J'ai jamais essayé car g un graveur qui ne le supporte pas mais boN..
salut...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.