Gravure CD-ROM

De Cliss XXI
Sauter à la navigation Sauter à la recherche

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

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

Sur mon système, les deux modes semblent écrire chaque piste par-dessus la précédente. Je suppose que mon graveur n'aime pas le mode disc-at-once (dao)...

Solution (paquet bchunk)

bchunk CDImage.wav CDImage.cue moncd

puis graver moncd*.wav comme décrit ci-dessus.

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.