Différences entre versions de « Gravure CD-ROM »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
imported>LucienPetit
(Nettoyage + modif ATA / ATAPI)
imported>SylvainBeucler
m (parle de Gnome)
 
(27 versions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
# apt-get install mkisofs cdrecord
+
Note: ceci est la méthode manuelle. Pour une méthode simple, utilisez Gnome et son créateur de CD/DVD).
  
Créer l'ISO d'un ou de plusieurs fichiers
+
Paquets considérés:
 +
aptitude install  mkisofs cdrecord cdda2wav cdparanoia
  
$ mkisofs -R -r -J --hide-rr-moved -V "SauvHome" -o backup.iso /home/toto/
+
== Outils simples ==
  
Explication des options utilisées dans mkisofs:
+
Sous Gnome, insérez un CD vierge dans le lecteur: la fenêtre de gravure apparaît. Glissez-déposez des fichiers (ou copiez/collez) des fichiers à l'intérieur, puis cliquez sur ''Fichier->Graver un CD...''. C'est tout :)
  
-R : rajoute l'extension Rock Ridge qui permet de conserver les
+
La suite de l'article indique comment graver en ligne de commande. Utilise pour aller plus loin (graver des image .iso téléchargées) et lancer des gravures via une connexion SSH à distance.
noms longs et les permissions sous Linux
 
  
-r : permet de générer une image qui soit lisible par tout le monde
+
Il y a également l'outil Xcdroast qui fournit une interface graphique pour tout ces outils.
malgré les permissions activées par l'extension Rock Ridge
 
  
-J : active l'extension Joliet pour avoir les noms longs sous Windows
+
== Créer l'ISO d'un ou de plusieurs fichiers ==
  
--hide-rr-moved : renomme le répertoire rr_moved (dû aux extensions
+
mkisofs -R -r -J --hide-rr-moved -V "SauvHome" -o backup.iso /home/toto/
Rock Ridge) en un répertoire caché .rr_moved
 
  
-V : spécifie un Nom de Volume (ici "SauvHome")
+
Explication des options utilisées dans mkisofs:
 
 
-o : spécifie le nom et l'emplacement du fichier ISO (ici backup.iso
 
dans le répertoire courant).
 
 
 
Créer une ISO contenant le répertoire /home/toto/, le fichier
 
/etc/X11/XF86Config-4, et le contenu du répertoire /mnt/win/toto/
 
qui devra apparaître sur le CD dans un répertoire win-toto :
 
 
 
$ mkisofs -R -r -J --hide-rr-moved -V "SauvHome" -o backup.iso -graft-points /home/toto/ /etc/X11/XF86Config-4 win-toto/=/mnt/win/toto/
 
 
 
Créer l'ISO d'un CD
 
 
 
$ dd if=/dev/cdrom of=backup.iso
 
(ne pas monter le cdrom)
 
  
Vérifier une ISO
+
* <code>-R</code> : rajoute l'extension Rock Ridge qui permet de conserver les noms longs et les permissions sous Linux
 +
* <code>-r</code> : permet de générer une image qui soit lisible par tout le monde malgré les permissions activées par l'extension Rock Ridge
 +
* <code>-J</code> : active l'extension Joliet pour avoir les noms longs sous Windows
 +
* <code>--hide-rr-moved</code> : renomme le répertoire RR_MOVED (dû aux extensions Rock Ridge) en un répertoire caché .rr_moved
 +
* <code>-V</code> : spécifie un nom de volume (ici "SauvHome")
 +
* <code>-o</code> : spécifie le nom et l'emplacement du fichier ISO (ici backup.iso dans le répertoire courant).
  
 +
Créer une ISO contenant le répertoire <code>/home/toto/</code>, le fichier <code>/etc/X11/XF86Config-4</code>, et le contenu du répertoire <code>/mnt/win/toto/</code> qui devra apparaître sur le CD dans un répertoire win-toto:
  
# mount -t iso9660 -o loop fichier.iso /mnt/test-iso
+
mkisofs -R -r -J --hide-rr-moved -V "SauvHome" \
 +
  -o backup.iso -graft-points \
 +
  /home/toto/ /etc/X11/XF86Config-4 win-toto/=/mnt/win/toto/
  
$ cd /mnt/test-iso
+
== Récupérer une image ISO à partir d'un CD existant ==
$ ls -ail
 
$ ...
 
  
# umount /mnt/test-iso
+
dd if=/dev/cdrom of=backup.iso
 +
Note: ne pas monter le CD-ROM
  
 +
Note2: pour les purs et durs, <code>cat /dev/cdrom > backup.iso</code> fonctionne aussi ;)
  
Graver une ISO (noyau 2.6)
+
== Vérifier une ISO ==
  
Quel est l'identifiant SCSI virtuel ?
+
En tant que root:
 +
mkdir /tmp/test-iso
 +
mount -t iso9660 -o loop fichier.iso /tmp/test-iso
 +
cd /tmp/test-iso
 +
ls -ail
 +
# ...
 +
umount /tmp/test-iso
  
# cdrecord dev=ATA: -scanbus
+
Vous pouvez aussi utiliser la somme de contrôle fournie avec l'image ISO:
 +
$ md5sum -v -c MD5SUMS
 +
debian-testing-i386-netinst.iso OK
  
Si Pb : # cdrecord dev=ATAPI -scanbus
+
== Graver une ISO (noyau 2.6) ==
  
scsibus1:
+
Tout d'abord, dire à cdrecord quel est l'identifiant SCSI virtuel:
 +
$ cdrecord dev=ATA: -scanbus
 +
# Si problème, essayer ATAPI:
 +
# cdrecord dev=ATAPI -scanbus
 +
scsibus1:
 
         1,0,0  100) 'HL-DT-ST' 'DVD-RW GCA-4080N' '0W33' Removable CD-ROM
 
         1,0,0  100) 'HL-DT-ST' 'DVD-RW GCA-4080N' '0W33' Removable CD-ROM
 
         1,1,0  101) *
 
         1,1,0  101) *
Ligne 64 : Ligne 68 :
 
         1,7,0  107) *
 
         1,7,0  107) *
  
De là, modifier /etc/default/cdrecord :
+
De là, modifier <code>/etc/default/cdrecord</code>:
CDR_DEVICE=cddvdrw
+
CDR_DEVICE=ATA:1,0,0
cddvdrw=        ATA:1,0,0
 
  
 
Ensuite, pour retrouver les infos :
 
Ensuite, pour retrouver les infos :
# cdrecord -prcap
+
cdrecord -prcap
 +
[...]
 +
Number of supported write speeds: 3
 +
  Write speed # 0:  4234 kB/s CLV/PCAV (CD  24x, DVD  3x)
 +
  Write speed # 1:  2822 kB/s CLV/PCAV (CD  16x, DVD  2x)
 +
  Write speed # 2:  1764 kB/s CLV/PCAV (CD  10x, DVD  1x)
  
pour tester sans graver (pas de laser) : -dummy
+
Pour tester sans graver (pas de laser) : <code>-dummy</code>
 +
$ cdrecord -v -dummy -data sarge-i386-netinst.iso
 +
[...]
 +
Starting to write CD/DVD at speed 24 in dummy TAO mode for single session.
 +
Last chance to quit, starting dummy write    0 seconds. Operation starts.
 +
Turning BURN-Free off
 +
Track 01: Total bytes read/written: 109338624/109338624 (53388 sectors).
  
$ cdrecord -v -dummy dev=cddvdrw -data sarge-i386-netinst.iso
+
Dans /etc/default/cdrecord on n'a pas spécifié de vitesse; commme il s'agit d'un lecteur compatible MMC,
--> erreur : cdrecord: Cannot allocate memory. Cannot get SCSI I/O buffer.
+
il prend dans ce cas la plus élevée possible. Parallèlement, si l'on spécifie <code>speed=1</code> il prend la plus basse possible, soit ici 10x.
 +
$ cdrecord -v -data sarge-i386-netinst.iso speed=1
  
par contre, sous root, pas de pb :
+
Note: si vous obtenez:
Starting to write CD/DVD at speed 24 in dummy TAO mode for single session.
+
cdrecord: Cannot allocate memory. Cannot get SCSI I/O buffer.
Last chance to quit, starting dummy write    0 seconds. Operation starts.
+
passez en utilisateur root, ou mettez les permissions setuid (<code>chmod u+s</code>) sur <code>/usr/bin/cdrecord</code>.
Turning BURN-Free off
 
Track 01: Total bytes read/written: 109338624/109338624 (53388 sectors).
 
  
(La vitesse est de 24x car dans /etc/default/cdrecord on n'a pas spécifié
 
de vitesse, alors que
 
cdrecord -prcap indique :
 
Number of supported write speeds: 3
 
  Write speed # 0:  4234 kB/s CLV/PCAV (CD  24x, DVD  3x)
 
  Write speed # 1:  2822 kB/s CLV/PCAV (CD  16x, DVD  2x)
 
  Write speed # 2:  1764 kB/s CLV/PCAV (CD  10x, DVD  1x)
 
  
Commme il s'agit d'un lecteur compatible MMC, si on ne spécifie pas de vitesse,
 
il prend la plus élevée possible (si on spécifie speed=0 il prend la plus basse
 
possible, soit ici 10x)
 
  
 
Quand tout est OK, on grave en réel, sans l'option dummy :
 
Quand tout est OK, on grave en réel, sans l'option dummy :
# cdrecord -v dev=cddvdrw -data sarge-i386-netinst.iso
+
cdrecord -v -data sarge-i386-netinst.iso
 
 
  
 +
== CD-RW ==
  
 
Si le CD est un RW : le remettre à blanc au préalable
 
Si le CD est un RW : le remettre à blanc au préalable
  
 
- CD RW neuf :
 
- CD RW neuf :
cdrecord -v dev=cddvdrw -blank=all
+
cdrecord -v -blank=all
  
 
- CD RW déjà utilisé :
 
- CD RW déjà utilisé :
cdrecord -v dev=cddvdrw -blank=fast
+
cdrecord -v -blank=fast
 
 
 
 
  
CD Audio :
+
== CD Audio ==
  
 
1°) Extraire les pistes du CD audio vers le disque dur :
 
1°) Extraire les pistes du CD audio vers le disque dur :
 
 
(# apt-get install cdda2wav)
+
cdda2wav -B -s -x -D /dev/cdrom
cdda2wav -B -s -x -D /dev/cdrom
 
* x: qualité maxi
 
* B: toutes les pistes avec les fichiers d'information de
 
chaque piste (si vous utilisez les fichiers d'information)
 
* s: extrait les pistes en stereo
 
* D chemin du périphérique.
 
  
Ou :
+
* x: qualité maxi
 +
* B: toutes les pistes avec les fichiers d'information de chaque piste (si vous utilisez les fichiers d'information)
 +
* s: extrait les pistes en stereo
 +
* D chemin du périphérique.
  
(# apt-get install cdparanoia)
+
Ou :
cdparanoia -B -d /dev/cdrom
+
 
 +
cdparanoia -B -d /dev/cdrom
  
  
 
2°) Graver le CD proprement dit
 
2°) Graver le CD proprement dit
  
cdrecord speed=2 dev=cddvdrw -dao -eject -useinfo *.wav
+
cdrecord speed=2 -dao -eject -useinfo *.wav
* dao: Disk at Once
+
 
* eject: ejecte le CD lorsque la gravure est terminée
+
* dao: Disk at Once
* useinfo:utilise les fichiers d'information.
+
* eject: ejecte le CD lorsque la gravure est terminée
 +
* useinfo:utilise les fichiers d'information.
 +
 
 +
=== CUE ===
 +
 
 +
Cf. [http://en.wikipedia.org/wiki/Cue_sheet CUE sur Wikipedia]
 +
 
 +
Avec cdrecord:
 +
 
 +
cdrecord speed=1 cuefile=CDImage.cue -dao -verbose -eject
 +
 
 +
Alternativement (paquet <code>cdrdao</code>):
 +
 
 +
cdrdao write --device /dev/cdrom --speed 1 --eject CDImage.cue
 +
 
 +
Encore alternativement (paquet bchunk)
 +
 
 +
bchunk CDImage.wav CDImage.cue moncd # raw
 +
bchunk -w CDImage.wav CDImage.cue moncd # wav
 +
 
 +
puis graver moncd*.raw ou moncd*.wav avec cdrecord comme décrit ci-dessus, avec -tao:
 +
 
 +
cdrecord speed=1 -audio -tao -eject -verbose *.cdr
 +
 
 +
Sur mon système, les deux modes semblent écrire chaque piste par-dessus la précédente en mode disc-at-once (dao, solution 1 et 2), et fait des sautes de vitesse en track-at-once (tao, solution 3). Bon, mon graveur a des soucis...
 +
 
 +
= Pour les DVD =
 +
 
 +
Gravure d'une image ISO:
 +
 
 +
growisofs -dvd-compat -Z /dev/dvd=image.iso
 +
 
 +
(-dvd-compat verrouille le DVD en écriture après gravure pour plus de compatibilité)
 +
 
 +
ToDo: compléter la création de l'ISO avec growisofs, expliquer les différences avec mkisofs s'il y a lieu.

Version actuelle datée du 4 mai 2007 à 11:16

Note: ceci est la méthode manuelle. Pour une méthode simple, utilisez Gnome et son créateur de CD/DVD).

Paquets considérés:

aptitude install  mkisofs cdrecord cdda2wav cdparanoia

Outils simples

Sous Gnome, insérez un CD vierge dans le lecteur: la fenêtre de gravure apparaît. Glissez-déposez des fichiers (ou copiez/collez) des fichiers à l'intérieur, puis cliquez sur Fichier->Graver un CD.... C'est tout :)

La suite de l'article indique comment graver en ligne de commande. Utilise pour aller plus loin (graver des image .iso téléchargées) et lancer des gravures via une connexion SSH à distance.

Il y a également l'outil Xcdroast qui fournit une interface graphique pour tout ces outils.

Créer l'ISO d'un ou de plusieurs fichiers

mkisofs -R -r -J --hide-rr-moved -V "SauvHome" -o backup.iso /home/toto/

Explication des options utilisées dans mkisofs:

  • -R : rajoute l'extension Rock Ridge qui permet de conserver les noms longs et les permissions sous Linux
  • -r : permet de générer une image qui soit lisible par tout le monde malgré les permissions activées par l'extension Rock Ridge
  • -J : active l'extension Joliet pour avoir les noms longs sous Windows
  • --hide-rr-moved : renomme le répertoire RR_MOVED (dû aux extensions Rock Ridge) en un répertoire caché .rr_moved
  • -V : spécifie un nom de volume (ici "SauvHome")
  • -o : spécifie le nom et l'emplacement du fichier ISO (ici backup.iso dans le répertoire courant).

Créer une ISO contenant le répertoire /home/toto/, le fichier /etc/X11/XF86Config-4, et le contenu du répertoire /mnt/win/toto/ qui devra apparaître sur le CD dans un répertoire win-toto:

mkisofs -R -r -J --hide-rr-moved -V "SauvHome" \
 -o backup.iso -graft-points \
 /home/toto/ /etc/X11/XF86Config-4 win-toto/=/mnt/win/toto/

Récupérer une image ISO à partir d'un CD existant

dd if=/dev/cdrom of=backup.iso

Note: ne pas monter le CD-ROM

Note2: pour les purs et durs, cat /dev/cdrom > backup.iso fonctionne aussi ;)

Vérifier une ISO

En tant que root:

mkdir /tmp/test-iso
mount -t iso9660 -o loop fichier.iso /tmp/test-iso
cd /tmp/test-iso
ls -ail
# ...
umount /tmp/test-iso

Vous pouvez aussi utiliser la somme de contrôle fournie avec l'image ISO:

$ md5sum -v -c MD5SUMS
debian-testing-i386-netinst.iso OK

Graver une ISO (noyau 2.6)

Tout d'abord, dire à cdrecord quel est l'identifiant SCSI virtuel:

$ cdrecord dev=ATA: -scanbus
# Si problème, essayer ATAPI:
# cdrecord dev=ATAPI -scanbus
scsibus1:
       1,0,0   100) 'HL-DT-ST' 'DVD-RW GCA-4080N' '0W33' Removable CD-ROM
       1,1,0   101) *
       1,2,0   102) *
       1,3,0   103) *
       1,4,0   104) *
       1,5,0   105) *
       1,6,0   106) *
       1,7,0   107) *

De là, modifier /etc/default/cdrecord:

CDR_DEVICE=ATA:1,0,0

Ensuite, pour retrouver les infos :

cdrecord -prcap
[...]
Number of supported write speeds: 3
  Write speed # 0:  4234 kB/s CLV/PCAV (CD  24x, DVD  3x)
  Write speed # 1:  2822 kB/s CLV/PCAV (CD  16x, DVD  2x)
  Write speed # 2:  1764 kB/s CLV/PCAV (CD  10x, DVD  1x)

Pour tester sans graver (pas de laser) : -dummy

$ cdrecord -v -dummy -data sarge-i386-netinst.iso
[...]
Starting to write CD/DVD at speed 24 in dummy TAO mode for single session.
Last chance to quit, starting dummy write    0 seconds. Operation starts.
Turning BURN-Free off
Track 01: Total bytes read/written: 109338624/109338624 (53388 sectors).

Dans /etc/default/cdrecord on n'a pas spécifié de vitesse; commme il s'agit d'un lecteur compatible MMC, il prend dans ce cas la plus élevée possible. Parallèlement, si l'on spécifie speed=1 il prend la plus basse possible, soit ici 10x.

$ cdrecord -v -data sarge-i386-netinst.iso speed=1

Note: si vous obtenez:

cdrecord: Cannot allocate memory. Cannot get SCSI I/O buffer.

passez en utilisateur root, ou mettez les permissions setuid (chmod u+s) sur /usr/bin/cdrecord.


Quand tout est OK, on grave en réel, sans l'option dummy :

cdrecord -v -data sarge-i386-netinst.iso

CD-RW

Si le CD est un RW : le remettre à blanc au préalable

- CD RW neuf :

cdrecord -v -blank=all

- CD RW déjà utilisé :

cdrecord -v -blank=fast

CD Audio

1°) Extraire les pistes du CD audio vers le disque dur :

cdda2wav -B -s -x -D /dev/cdrom
  • x: qualité maxi
  • B: toutes les pistes avec les fichiers d'information de chaque piste (si vous utilisez les fichiers d'information)
  • s: extrait les pistes en stereo
  • D chemin du périphérique.

Ou :

cdparanoia -B -d /dev/cdrom


2°) Graver le CD proprement dit

cdrecord speed=2 -dao -eject -useinfo *.wav
  • dao: Disk at Once
  • eject: ejecte le CD lorsque la gravure est terminée
  • useinfo:utilise les fichiers d'information.

CUE

Cf. CUE sur Wikipedia

Avec cdrecord:

cdrecord speed=1 cuefile=CDImage.cue -dao -verbose -eject

Alternativement (paquet cdrdao):

cdrdao write --device /dev/cdrom --speed 1 --eject CDImage.cue

Encore alternativement (paquet bchunk)

bchunk CDImage.wav CDImage.cue moncd # raw
bchunk -w CDImage.wav CDImage.cue moncd # wav

puis graver moncd*.raw ou moncd*.wav avec cdrecord comme décrit ci-dessus, avec -tao:

cdrecord speed=1 -audio -tao -eject -verbose *.cdr

Sur mon système, les deux modes semblent écrire chaque piste par-dessus la précédente en mode disc-at-once (dao, solution 1 et 2), et fait des sautes de vitesse en track-at-once (tao, solution 3). Bon, mon graveur a des soucis...

Pour les DVD

Gravure d'une image ISO:

growisofs -dvd-compat -Z /dev/dvd=image.iso

(-dvd-compat verrouille le DVD en écriture après gravure pour plus de compatibilité)

ToDo: compléter la création de l'ISO avec growisofs, expliquer les différences avec mkisofs s'il y a lieu.