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"):- Debian: apt-get install mc ou apt-get install vim
- SuSE, Mandrake, RedHat, Fedora...: rpm -i mc-xxx (ou vim-xxx)xxx représente le numéro de la version du paquetage, et vous devez savoir où se trouve votre paquetage.
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
- Si vous devez encore installer votre distribution, vous pouvez contrôler l'inclusion du module ide-scsi au moment où l'installation le permet, mais ce n'est pas absolument nécessaire.
- Si l'installation a déjà eu lieu, la commande insmod ide-scsi permet d'ajouter le module en question (ou modconf sous SuSE). Il est inutile d'ajouter le module sg (scsi general) qui peut interférer de façon négative avec le module ide-scsi.
- Pour forcer le chargement du module à chaque démarrage, avec un éditeur de texte, ajouter la ligne ide-scsi au fichier /etc/modules. Si d'autres modules ide sont présents dans ce fichier, ceux-ci sont à mettre en commentaire pour ne pas interférer avec ide-scsi. En résumé: ajouter le caractère "#" devant les lignes ide-cd et ide-detect.
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 cdcdrdao read-cd --device /dev/cdroms/cdrom0 --driver generic-mmc --paranoia-mode 3 test2_mycdGraver le cd
cdrdao write --device /dev/cdroms/cdrom0 --driver generic-mmc --speed 4 test2_mycdoù 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:
- Vous devrez le paramétrer la première fois en "root", en tapant xcdroast dans une console.
- N'oubliez pas de configurer l'adresse du buffer, c'est-à-dire l'espace utilisé par l'application pour stocker temporairement les données. Le mieux est de lui réserver un répertoire qui ne sert qu'à cela, par exemple /mnt/buffer. Attention: le répertoire doit être accessible en lecture et en écriture par l'utilisateur:
chmod 644 /mnt/buffer "644" pour permettre la lecture par tout le monde, "600" sinon.
- Pour réaliser un CD de données: [Master/masteriser]. D'abord assembler les répertoires désirés, puis aller dans l'onglet de droite [créer session/image], et appuyer sur le bouton [calculer la taille] avant de [créer l'image]. Revenir ensuite dans [Write/Écrire] pour graver l'image ainsi créée.
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: