Math-Linux.com

Knowledge base dedicated to Linux and applied mathematics.

Accueil > Hardware > Gravure sous Linux en ligne de commande

Gravure sous Linux en ligne de commande

Toutes les versions de cet article : [English] [français]

J’ai décidé de faire ce tutoriel suite à bon nombre de remarques que j’entend autour de moi. Voici une discussion récurrente :
- tu peux me graver le CD s’il te plaît ?
- attends je suis sous Linux là, tu peux patienter, il faut que je redémarre sous Windows.
Ce type de conversation ne devrait plus exister après avoir lu ce tutoriel. Alors, bonne lecture et surtout n’ayez pas peur de la ligne de commande même si elle vous parait parfois rebutante !

Introduction

Je suppose ici que vous possédez les logiciels mkisofs, cdrecord et cdrdao
Matériel :
- un graveur de CD (éventuellement de DVD)
- un CD-RW pour tester les commandes de ce tutoriel.

La gravure en ligne de commande nous impose de connaîtte ce que l’on appelle le device (dev) de notre graveur.

Dans le cas des kernel 2.6.x, on a :

# cdrecord -scanbus dev=ATA
Cdrecord-Clone 2.01 (i686-pc-linux-gnu) Copyright (C) 1995-2004 Jörg Schilling
cdrecord: Warning: Running on Linux-2.6.10
cdrecord: There are unsettled issues with Linux-2.5 and newer.
cdrecord: If you have unexpected problems, please try Linux-2.4 or Solaris.
scsidev: 'ATA'
devname: 'ATA'
scsibus: -2 target: -2 lun: -2
Warning: Using badly designed ATAPI via /dev/hd* interface.
Linux sg driver version: 3.5.27
Using libscg version 'schily-0.8'.
scsibus1:
       1,0,0   100) 'MATSHITA' 'UJDA730 DVD/CDRW' '1.00' 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) *

Mon graveur est un Matshita UJDA730, il lit également les DVD. Le device correspondant est dev=1,0,0. Pour les détenteurs d’un noyau 2.4.x, vous avez deux possibilités pour déterminer votre device, soit

# cdrecord -scanbus

ou bien

# cdrdao scanbus

Ces commandes peuvent ne pas fonctionner suivant le caractère stable ou instable de votre noyau.

Création d’une image iso

À l’aide de la commande mkisofs, nous allons créer l’image iso d’un répertoire. L’image iso créé ici s’appelle image.iso, rien ne vous empêche de l’appeler toto.iso ou sauvegarde.iso ! et chemin_du_repertoire désigne le chemin de votre répertoire, par exemple /home/user/projet

# mkisofs -v -r -J -o image.iso chemin_du_repertoire

cela marche aussi pour un fichier

# mkisofs -v -r -J -o image.iso chemin_du_fichier

Quelques explications concernant les options :
- -v représente le mode verbose autrement dit mkisofs commente la manière dont il agit.
- -r pour être bref cela permet de remettre les droits à zéro, disons que vous soyez root, cette option est obligatoire pour permettre au client par exemple un user d’avoir les droits sur le ou les fichiers de cette image.
- -J c’est ce qu’on appelle la Joliet extension cela permet entre autre de supporter les noms longs de votre image, cela est utile notamment lorque vous utilisez cette image sous Windows 2000,NT,XP ou des systèmes WIN32
- -o comme output pour désigner le nom de la sortie, ici c’est image.iso

Gravure

L’idée est de créer une image iso à l’aide de mkisofs et ensuite de graver cette image sur notre CD. À noter, que l’on peut échapper à la création de cette image iso, pour cela vous pouvez vous réferez à la gravure express. Une fois que votre image iso image.iso est crée, on utilise cdrecord

# cdrecord -v -speed=10 dev=ATA:1,0,0 -data image.iso

Gravure express

La gravure express ou gravure dite "à la volée" permet de graver un cd sans créer d’image iso. Pour échapper à la création de l’image iso, nous allons passer par le device /dev/null . L’idée consiste dans un premier temps à déterminer la taille de l’image iso, comme suit :

# mkisofs -r -print-size chemin_du_repertoire

Si vous voulez graver un fichier :

# mkisofs -r -print-size chemin_du_fichier

on obtient à la fin de l’execution de mkisofs un entier represéntant la taille de l’image, un exemple de résultat

Total extents scheduled to be written = 30147
30147

À présent l’idée est d’utiliser un tube (pipe) vers cdrecord, en considérant le device. Pour faire simple, nous allons graver le cd sans créer l’image iso en utilisant la taille de cette dernière si elle avait été crée(ici 30147) :

# mkisofs -r -print-size chemin_du_repertoire 2>/dev/null | cdrecord -v  -speed=10 -dev=ATA:1,0,0 tsize=30147s -

pour un fichier on a si la taille de son image iso est 65432 :

# mkisofs -r -print-size chemin_du_repertoire 2>/dev/null | cdrecord -v  -speed=10 -dev=ATA:1,0,0 tsize=65432s -

Effacer un CD-RW

Vous avez la méthode rapide :

cdrecord -v  -speed=10 -dev=ATA:1,0,0 -blank=fast

et la méthode complète

cdrecord -v  -speed=10 -dev=ATA:1,0,0 -blank=all

À présent vous n’avez plus d’excuses pour rebooter sous Win !

Un message, un commentaire ?

comments powered by Disqus