BxLUG groupe des utilisateurs de GNU/Linux de Bruxelles

Espace membres

Graver des CD-ROMs en émulation SCSI

Cet article est l'assemblage de deux sources: l'une explicitant la méthode pour graver des CDROM sous GNU/Linux en utilisant le programme cdrdao (qui n'est pas le seul existant), et l'autre tentant de rassembler les informations de base pour l'utilisation d'un graveur IDE-ATAPI en émulation SCSI, les logiciels de gravure préférant lancer leurs commandes sous ce format.xcdroast, application en mode graphique, st également présenté.

1. Préliminaires
  1.1 L'émulation SCSI est-elle nécessaire?
  1.2 Il faudra éditer des fichiers
  1.3 Connaître un minimum son matériel IDE-ATAPI

2. Modification du système
  2.1 Charger le module d'émulation SCSI
  2.2 Modifier le fichier de démarrage
  2.3 Contrôler que le système reconnaît l'émulation scsi
  2.4 Contrôler l'existence des drivers SCSI
  2.5 Editer la table des montages fstab

3. Les logiciels de gravure
  3.1 En mode console)
  3.2 Sous interface graphique

4. Documentation complémentaire (À COMPLÉTER)

1. Préliminaires

Toute intervention sur le système doit se faire en disposant des droits du super-utilisateur ("root"). En mode console, taper su puis introduire le mot de passe super-utilisateur.

1.1 L'émulation SCSI est-elle nécessaire?

En attendant la généralisation des distributions comprenant le noyau Linux 2.6, voir Graver avec le noyau 2.6, les logiciels de gravure de CD nécessitent l'émulation du matériel IDE-ATAPI (les plus courants et les moins chers).

Il est néanmoins possible que vous disposiez d'un graveur SCSI, ou que votre distribution ait détecté un graveur IDE-ATAPI et ait décidé d'installer l'émulation SCSI. Il est facile de s'en assurer en visualisant le fichier /etc/fstab, qui contient alors une ligne qui ressemble à:

/dev/sr0  /mnt/cdrom  auto  noauto,ro,user  0  1

sr0 n'est pas le seul descripteur SCSI possible: cela peut éventuellement être sr1, sg0, sg1, sda1, sda2, scd0, scd1…, et le point de montage peut être /cdrom plutôt que /mnt/cdrom.

Si un de ces descripteurs de périphérique SCSI correspond à votre graveur, vous ne devez pas vous préoccuper d'émulation SCSI. Passez directement au point 3.

1.2 Il faudra éditer des fichiers

Il faut pouvoir utiliser un éditeur. Sous console, vi ou vim paraissent incontournables si vous ne disposez pas du plus intuitif mc (Midnight Commander).

man vim permet de savoir quelles sont les commandes de cet éditeur. Prenez des notes pour pouvoir éditer et sauver les fichiers que vous aurez modifiés.

Quoiqu'il en soit, pour installer mc ou vim (avec les droits "root"):

1.3 Connaître un minimum son matériel IDE-ATAPI

En naviguant dans le setup du BIOS (appuyer, pour la plupart des PC, sur la touche [Delete] ou [Suppr] peu après l'allumage), il est possible de voir à quel contrôleur IDE-ATAPI le graveur est relié: sur le premier contrôleur ("primaire") ou sur le second ("secondaire") ; il sera en outre considéré comme "maître" ou "esclave". Selon les possibilités que donne le croisement de ces données, Linux considère une unité de stockage de masse IDE-ATAPI comme:

hda: PRIMARY MASTER (maître au premier contrôleur)
hdb: PRIMARY SLAVE (esclave au premier contrôleur)
hdc: SECONDARY MASTER (maître au second contrôleur)
hdd: SECONDARY SLAVE (esclave au second contrôleur)

Si vous avez installé GNU/Linux vous-même, vous devriez déjà connaître ces quatre unités.

Il est préférable que les données lues à partir d'un contrôleur soient écrites sur l'autre, pour éviter la surcharge de travail sur un même contrôleur: hdc (ou hdd) vers hda vaut mieux que hdb vers hda, par exemple.

Si vous changez la place d'un périphérique IDE-ATAPI, n'oubliez pas de vérifier que le cavalier qui précise sa qualité de maître ou d'esclave soit positionné au bon endroit.

2. Modification du système

2.1 Charger le module d'émulation scsi

2.2 Modifier le fichier de démarrage

Selon que vous utilisiez lilo ou grub pour démarrer votre système, une des deux sections qui suivent vous concerne. L'autre peut être ignorée.

2.2.1 Modifier le fichier /etc/lilo.conf

Si vous démarrer votre système au moyen de lilo, avec un éditeur de texte, ajouter au fichier /etc/lilo.conf, dans la section image=/boot/vmlinuz la ligne suivante: append="hdc=ide-scsi" si votre graveur est maître au second contrôleur (hdc).

S'il existe déjà un append (xxxx=yyy ci-dessous n'est qu'un exemple d'une commande déjà existante), ou pour faire reconnaître deux unités IDE-ATAPI comme unités SCSI, il faut mettre les différentes commandes sur la même ligne, par exemple:
append="xxxx=yyy hdc=ide-scsi hdd=ide-scsi", hdc et hdd n'étant bien sûr pas choisis au hasard (voir 1.3). N'oubliez pas de sauver vos modifications.

Il faut par après saisir la commande suivante:
lilo puis rebooter le système..

Alternative: au lieu de modifier /etc/lilo.conf, il est possible, toujours dans l'hypothèse où le graveur est maître au scond contrôleur, de taper au moment du boot: hdc=ide-scsi

2.2.2 Modifier le fichier /boot/grub/menu.lst

Si vous démarrer votre système au moyen de grub, avec un éditeur de texte, ajouter au fichier /boot/grub/menu.lst, sur la ligne commençant par kernel, la commande suivante: hdc=ide-scsi (si votre graveur est maître au second contrôleur).

Pour faire reconnaître deux unités IDE-ATAPI comme unités SCSI, il faut mettre les différentes commandes à la fin de la même ligne, par exemple: hdc=ide-scsi hdd=ide-scsi. hdc et hdd ne sont pas choisis au hasard (voir 1.3).

Sauver vos modifications et rebooter ensuite le système.

2.3 Contrôler que le système reconnaît l'émulation SCSI

Le fichier /var/log/dmesg indique les résultats du déroulement du boot. Il y a plusieurs façons de le visualiser, par exemple: dmesg | less (La touche [q] permet de sortir de la visualisation du fichier). Pour produire une copie de ce fichier dans le répertoire /home/toto:
dmesg > /home/toto/msg, fichier alors consultable par
less msg ou less /home/toto/msg.

Vous devriez y voir, relativement en début de fichier:

 ide-setup: hdc=ide-scsi
 ide-setup: hdd=ide-scsi

et, vers la fin du fichier:

 Attached scsi CDROM sr0 at scsi0, channel 0, id 0, lun 0
 Attached scsi CDROM sr1 at scsi0, channel 0, id 1, lun 0

sr0 et sr1 (cela pourrait aussi être sg0 et sg1, ou sda1 et sda2…) sont les deux nouveaux descripteurs de périphériques pour les deux cdrom IDE-ATAPI, maintenant connus du système comme périphériques SCSI.

2.4 Contrôler l'existence des drivers SCSI

Comme les drivers hda, hdb…, les drivers SCSI se situent dans le dossier /dev. Il faut vous assurer que les drivers /dev/sr0, /dev/sr1, /dev/sg0, /dev/sg1, /dev/sda1 ou /dev/sda2… existent.

Ce devrait être rare que vous deviez les créer avec la commande MAKEDEV, auquel cas tapez d'abord man MAKEDEV en mode console.

2.5 Editer la table des montages fstab

Pour ne pas devoir monter à la main un périphérique par la commande:
mount -t iso9660 /dev/sr0 /grav , il est possible de le monter automatiquement en ajoutant une ligne dans /etc/fstab:
 /dev/sr0   /grav   iso9660 noauto,user,ro   0   1

où:

/dev/sr0 est le descripteur de périphérique
/grav est un point de montage du périphérique dans le système de fichier
iso9660 est le descripteur du système de fichier du CD ou graveur (alt: auto)
noauto ne permet pas le montage automatique au moment du boot (alt: auto)
user permet l'accès du média à tout utilisateur (alt: nouser)
ro signifie que le périphérique ne doit être que lu (read-only)

Selon la distribution, la ligne à ajouter peut se présenter sous cette forme (rédigez alors votre ligne en comparaison avec les autres périphérique décrits dans le fichier /etc/fstab):

 dev=/dev/scd1,fs=iso9660,exec,--,nosuid,nodev 0 0

3. Les commandes et logiciels de gravure

3.1 En mode console

Cette section se base sur le principe qu'on utilise Devfs.

Copier un cd
cdrdao read-cd --device /dev/cdroms/cdrom0 --driver generic-mmc --paranoia-mode 3 test2_mycd
Graver le cd
cdrdao write --device /dev/cdroms/cdrom0 --driver generic-mmc --speed 4 test2_mycd 
test2_mycd est le nom de la copie.

Note: Pour graver un fichier .bin (.cue), il suffit de s'assurer que les deux fichiers (.bin et .cue sont dans le même répertoire et de remplacer le nom du fichier à graver par le nom du fichier .cue).

Exemple:

cdrdao write --device /dev/cdroms/cdrom0 --driver generic-mmc
--speed 4 test3.cue

Une petite présentation de cdrecord:
http://home.tiscali.be/famille_Freyens/linux.teta.01.html

3.2 Sous interface graphique

xcdroast (mais il existe aussi k3b, par exemple) repose sur les commandes cdrecord, cdda2wav, mkisofs… mais est plus intuitif que ces applications en ligne de commande. Il reconnaît d'autre formats que l'ISO9660 (RockRidge, Joliet…) et permet l'écriture d'un CD sur l'autre "à la volée". Cependant:

chown toto:toto /mnt/buffer si l'utilisateur est toto
chmod 644 /mnt/buffer "644" pour permettre la lecture par tout le monde, "600" sinon.

4. Documentation complémentaire

http://www.bxlug.be/rtfm pour des conseils quant à la recherche de documentation.

Comme d'habitude, la documentation "générale" en html se trouve quelque part dans le répertoire /usr/share/doc/HTML ou /usr/share/doc/HOWTO. Le(s) fichier(s) à rechercher s'appelle(nt) CD-Writing-HOWTO, et existe sous plusieurs formes. Il s'agit des fichiers de la Linux Documentation Project, dont la dernière version se trouve à l'adresse:

Cette adresse générale vous permet de choisir la doc de votre choix sous la forme désirée (html en une ou plusieurs pages, en format texte, pdf, voire l'ensemble de la LDP, soit de 8 à 29 Mo).

Voir aussi:


Bienvenue dans le monde du libre