Prenons
l'exemple du gars qui veut faire une copie de sauvegarde
d'un CD audio.
Premièrement,
il est vivement conseillé d'avoir un graveur SCSI,
car c'est le seul type de graveur bien reconnu par
Linux. Si vous possédez un graveur en IDE, pas de
panique, vous pourrez certainement y arriver grâce
à ce que l'on appelle un émulateur, c'est-à-dire
un programme qui va "simuler" du SCSI,
et Linux n'y verra que du feu... Cette partie ne
sera pas traitée ici, car ayant un graveur SCSI,
je n'ai pas eu à l'expérimenter, mais la doc ne
manque pas à ce sujet.
Deuxièmement,
avant d'arriver à brûler un CDR avec une interface
graphique comme Xcdroast, gcombust
ou gtoaster, il va falloir se taper l'étude
de ladite interface, avec ses nombreux boutons,
ses champs à paramètrer, des " dev/hdc"
ou " /mnt/cdrom " à rentrer à droite et
à gauche. Tout ça pour s'apercevoir qu'aucune interface
graphique de programme de gravure sous Linux ne
permet d'écrire un CDR en vitesse 8x pour le moment.
Qu'à cela ne tienne, on va utiliser le mode console...
Il
suffit d'ouvrir un terminal et de suivre la procédure
:
1°)
Vérifier que l'on peut extraire et graver avec sa
configuration.
Pour
cela, on introduit un CDR audio dans le lecteur
CDROM, et dans un terminal, on tape à la suite prompt
(signe # nous invitant à saisir une commande) :
cdparanoia
-vsQ
cdparanoia
est
un programme livré avec toute distribution qui se
respecte, et il permet l'extraction des pistes audio
du disque.
L'option
-v affiche la
progression du processus
-s
détecte
le lecteur le plus adapté à extraire les piste audio
(en général le lecteur CDROM ou DVD ROM)
-Q
affiche
le contenu du CD : fichiers audio avec leur durée
Si
la sortie de cette commande vous renvoie un résultat
positif ( DVD ROM ATAPI etc... ainsi que le contenu
du CD introduit), on peut passer à la détection
du graveur.
Il
suffit juste de taper dans un terminal : cdrecord
-scanbus
cdrecord
est
lui aussi distribué avec Linux, et permet comme
son nom l'indique, d'écrire sur les CDR.
L'option
-scanbus détecte
les bus SCSI
Normalement,
cette commande renvoie un truc du genre : blabla...
scsi0 : 0, 1, 0
Yamaha .....
Cette
ligne vous donne les coordonnées virtuelles de votre
matériel SCSI : 0 :
channel, 1: ID,
0 : lun
On
n'aura pas à modifier ces paramètres, c'est juste
pour dire que tout va bien, mais attention si vous
avez plusieurs périphériques connetés sur votre
carte SCSI, les réglages peuvent devenir plus délicats...
2°)
Passer aux choses sérieuses...
Si
vous avez passé les étapes de détection matérielle
sans trop de problème, ça devrait continuer ainsi
pour la suite.
On
place un répertoire nommé GRAVURE, de préférence
sur la partiton /home de votre disque, pour
ne pas encombrer la partition racine / , sachant
que les fichiers *.cdda.wav sont très volumineux.
On
introduit un disque audio dans le lecteur détecté
pour l'extraction audio-numérique, on ouvre un terminal
et on tape:
cdparanoia
-B
Cette
commande va lancer l'extraction audio-numérique
des pistes du CD sous
la forme de fichiers track01.cdda.wav, track02.cdda.wav,
etc... dans le répertoire courant, c'est-à-dire
dans /home/GRAVURE pour cet exemple.
On
peut suivre la progression du processus, puisque
celle-ci s'affiche automatiquement pour nous dire
que chaque piste est extraite dans un fichier track*.cdda.wav.
On
attend quelques minutes (ça dépend de la vitesse
de votre lecteur extracteur ! ), et on peut vérifier
la présence effective d'autant de fichiers *.cdda.wav
dans /home/GRAVURE, qu'il y a de pistes sur
notre disque : ça a marché ! Maintenant, il faut
les graver.
On
introduit un CDR vierge dans le graveur (attention
à la durée de celui-ci !), toujours en mode console,
et surtout dans le répertoire GRAVURE , on tape
:
cdrecord
-v -dao dev=3,0 speed=8 track*.cdda.wav
-v
affiche
la progression
-dao
indique
la gravure en mode disc-at-once (sans silence entre
les pistes)
dev=3,0
ou
dev=0,3,0
vous
reconnaissez les coordonnées virtuelles de votre
graveur
speed=8
indique
la vitesse d'écriture (1,2,4,6,8...selon les possibilités
de l'engin)
track*.cdda.wav
indique
les fichiers du répertoire courant qui doivent être
écrits.
Normalement,
à ce stade, vous serez fixés dans quelques secondes
: si ça ne marche pas, tout s'arrête, et Linux vous
le dit.
Si
c'est bon, le processus continue, et l'affichage
vous renseigne sur la progression de l'opération...
et surtout vous entendez le son chirurgical de votre
laser en train de griller la surface du CDR encore
vierge. C'est magnifique, ça marche, même en vitesse
8x !
ATTENTION
:
Il
se peut que l'extraction provoque la création d'un
fichier track00.cdda.wav,
ce qui posera problème, car les pistes doivent avoir
une taille multiple de 2352 Ko, ne cherchez pas
pourquoi, c'est comme ça. On règle cet inconvénient
en ajoutant l'option -pad
dans
notre ligne de commade, qui devient donc : cdrecord
-v -dao -pad dev=3,0 speed=8 track*.cdda.wav
Alors,
toujours perplexe quant à l'avantage du travail
en ligne de commande ? Qui peut faire ça sous Windown
ou sous DOS ?
De
plus, on peut faire les mêmes manips' en mode console
virtuelle (attention pas pareil que le terminal
sous X Window, Voir Rubrique Base/Modes
console et interfaces graphiques <pagebases.htm>)),
en appuyant sur Alt+Ctrl+F1.
Ou
bien on sort carrément de X Window en choissant
l'option "mode console" à l'interface
de connection graphique.
Dans
tous les cas, ne vous inquiétez pas, ça marchera,
car Linux est puissant et très souple !
Options
d'expert pour l'extraction audionumérique
Il
arrive souvent que l'on veuille n'extraire qu'une
partie d'une piste (pour raison de pas assez de
place sur la galette ou autre...). Nous allons ici
détailler quelques trucs partiques. Par exemple,
pour extraire les pistes 5 à 9 d'un disque, on tapera
dans un terminal :
cdparanoia
5-9 tandis
que
cdparanoia -4 n'extrait
que les pistes 1 à 4, et cela dans un seul et unique
fichier cdda.wav.
On
peut avoir besoin de préciser le point de départ
au niveau même de la piste, exprimé en heures, minutes,
secondes, et format de secteur : [hh:mm:ss.ff]
Les
champs laissés vides correspondent évidemment à
des valeurs nulles, ainsi [10:] signifie 10 minutes,
[::20], [:20], [20] et [20.] seront tous interprétés
comme 20 secondes et [.35] correspond à 35 secteurs,
et [20.35] à 20 secondes et 35 secteurs. Le plus
couramment, on utilise le format minutes/secondes
de la forme [10:20].
Ainsi,
on a cdparanoia
-- "-13[6:]"
qui
demande d'extraire du début du disque (piste 1)
jusqu'à la piste 13, plus 6 minutes (la piste 13
faisant 10 minutes par exemple). Attention, le tout
sera placé dans le répertoire courant, dans un fichier
nommé cdda.wav. Pour les placer dans des fichiers
séparés, on saisira plutôt :
cdparanoia
-B -- "-13[6:]"
cdparanoia
"1[30.]-1[3:25]" extrait
un morceau de la piste 1, en commençant après 30
secondes écoulées, jusqu'à 3 min 25 sec.
cdparanoia
"1[30.]-" extrait
de la piste 1, écoulée de 30 secondes, juqu'à la
fin du disque.
3°)
Le script bash
(c'est
un petit programme qui utilise les commandes du
shell (interpréteur de commandes passées dans un
terminal). On le créé avec un simple éditeur de
texte.)
On
peut "automatiser" cette affaire de gravure,
même à notre niveau de débutant (il faut bien expérimenter
pour progresser...!)
Nous
allons créer un petit script bash, qui va dans un
premier temps extraire les pistes audio du CD original,
puis dans un second temps, graver ces pistes sur
un disque vierge, sans l'intervention de l'utilisateur
entre les deux opérations. C'est t'y pas génial...?
!
Oui,
mais vous me direz, plus haut j'ai parlé d'une histoire
de track00 qui nécessitait une option -pad
dans la ligne de commande cdrecord.
Il
faut donc tester la présence de ce fichier track00.cdda.wav,
et adapter la ligne cdrecord en fonction
du résultat : bien vu les p'tits loups !
Donc,
on tape ouvre un éditeur de texte quelconque, et
on tape : (les lignes précedées de # sont des commentaires,
sauf la première !)
#!/bin/bash
#
Extraction audio-numérique des pistes
cdparanoia
-B
#
test de la présence de track00.cdda.wav
if
test -e track00.cdda.wav (
teste si on a un fichier track00.cdda.wav présent)
then
cdrecord -v -dao -pad dev=3,0 speed=8 track*.cdda.wav
(
alors cdrecord avec -pad)
else
cdrecord -v -dao dev=3,0 speed=8 track*.cdda.wav
(
sinon cdrecord sans -pad)
#
Voilà, c'est tout !!
NB
: test est une fonction qui renvoie un booléen (0
ou 1, vrai ou faux). Mais avec le shell linux, nous
avons à faire à des codes d'erreurs, donc si la
condition est vérifiée, la sortie est 0 (pour signifier
: pas d'erreur).
On
enregistre sous le nom de afew (pour
AudioFilesExtractWrite, c'est de moi),
puis
: chmod +x afew
dans un terminal pour le rendre exécutable....
Il
faut toujours placer afew dans le répertoire de
travail dans lequel on veut extraire les pistes
audio....
On
vérifiera qu'il n'y a pas d'autres fichiers *.wav
ou *.cdda.wav (résidus d'une autre extraction)
S'il
y a un problème, à partir du moment où les pistes
ont au moins été extraites jusqu'aubout avec cdparanoia,
on
peut utiliser cdrecord "normalement"...
Pour
exécuter afew : ./afew
Il
y aura alors extraction des pistes audio, puis enchaînement
direct avec l'écriture des fichiers track*.cdda.wav
sur
le disque vierge. Ce petit script peut bugger, mais
il a fonctionné 7 fois sur 10 quand je l'ai utilisé.
Il
existe bien sûr la solution plus directe, qui consiste
à brûler la galette à la volée. La commande suivante
saisie dans un terminal réalise cette opération
:
cdrecord
-v -dao dev=3,0 speed=8 /dev/hdc qui
indique au matériel de graver le contenu de /mnt/cdrom
à la vitesse 8x, sur l'appareil détecté aux coordonnées
3,0 en mode disc-at-once, avec affichage de la progression
des opérations.
Graver
à l'aide d'une image générée par mkisofs
Il
est possible de graver un ensemble de fichiers,
en créant dans un premier temps une image des fichiers
avec le prog' mkisofs, puis en gravant
cette image sur le CD vierge avec cdrecord.
Nous verrons ici comment réaliser un CD monosession,
et comment effacer un CDRW (disque réinscriptible).
Je
vous invite à lire les pages man de mkisofs
avec : man
mkisofs,
car il y a de nombreuses options (comme souvent
sous linux...) qui permettent de créer différents
types de CD : Joliet (microsoft) , Rockridge...
Pour
le moment, nous créons un CD au format iso9660,
en une seule session (monosession).
Imaginons
tout d'abord que nous voulons faire une sauvegarde
des fichiers contenus dans un dossier /root/moms.
On
va créer une image *.iso à partir de tous ces fichiers,
avec la commande suivante saisie dans un terminal
:
mkisofs
-o nom.iso -J -r -v /root/moms ceci
va créer un fichier nom.iso, dans le répertoire
courant, à partir de tous les fichiers contenus
dans /root/moms. -J
indique
un format Joliet,
-r
un
format Rockridge et -v
affiche
la progression du processus. Le CD devrait donctourner
à la fois sous Win et sous Linux.
Pour
graver cette image, on tape :
cdrecord
-v dev=3,0 speed=8 nom.iso
NB
: on peut monter l'image iso avant de la graver,
afin de vérifier qu'elle est "correcte",
avec la commande :
mount
-o loop nom.iso /mnt/iso
Il
faut au préalable créer le répertoire /mnt/iso,
pour pouvoir visualiser le contenu de nom.iso,
tout comme le répertoire
/mnt/cdrom permet
de visualiser celui d'un CDROM. Ceci s'avère
donc très pratique.
Pour
effacer un CDRW, c'est très simple, il suffit d'introduire
le CD réinscriptible, et de taper dans un terminal
:
cdrecord
blank=all dev=3,0
Pour
faire un CD mutlisession, c'est un peu plus compliqué,
et nous verrons ça plus tard