|
Les CDs se différencient des disques conventionnels par de nombreuses caractéristiques. Au départ, ils n'étaient pas inscriptible par l'utilisateur. Ils sont conçu pour être lut de façon continue sans délai pour déplacer la tête de lecture entre les pistes. Ils sont également plus facile à déplacer entre systèmes que les supports de même taille à cette époque.
Les CDs possèdent des pistes, mais cela fait référence à un ensemble de données qui peuvent être lues de façon continue et non pas à une particularité physique du disque. Pour produire un CD sous FreeBSD, il faut préparer les fichiers de données qui vont constituer les pistes sur le CD, puis écrire les pistes sur le CD.
Le système de fichiers ISO 9660 a été conçu pour gérer ces différences. Malheureusement il incorpore des limites du système de fichiers qui semblaient normale alors. Mais heureusement, il fournit un mécanisme d'extension qui permet au CDs proprement gravés de passer outre ces limites tout en restant lisibles par les systèmes qui ne supportent pas ces extensions.
Le logiciel sysutils/cdrtools comprend mkisofs(8), un programme que vous pouvez utiliser pour produire un fichier de données contenant un système de fichiers ISO 9660. Il dispose d'options pour le support de diverses extensions, et est décrit ci-dessous.
L'outil a utiliser pour graver un CD varie en fonction du type de graveur de CD: ATAPI ou autre. Les graveurs ATAPI utilisent le programme burncd qui fait partie du système de base. Les graveurs SCSI ou USB devraient utiliser l'utilitaire cdrecord du logiciel porté sysutils/cdrtools port.
burncd supporte un nombre limité de graveurs. Pour déterminer si un graveur est supporté, voir la liste des graveurs CD-R/RW supportés.
Note : Si vous utilisez FreeBSD 5.X, FreeBSD 4.8-RELEASE ou une version suivante, il sera possible d'utiliser cdrecord et d'autres outils pour lecteurs SCSI sur du matériel ATAPI avec le module ATAPI/CAM.
Si vous voulez un programme de gravure de CD avec une interface graphique, vous devriez jeter un oeil à X-CD-Roast ou K3b. Ces outils sont disponibles sous une version pré-compilée ou à partir des logiciels portés sysutils/xcdroast et sysutils/k3b. X-CD-Roast et K3b nécessitent le module ATAPI/CAM avec des périphériques ATAPI.
L'utilitaire mkisofs(8), qui fait partie du logiciel porté sysutils/cdrtools, produit un système de fichiers ISO 9660 qui est une image de l'arborescence des répertoires dans un système de fichiers UNIX®. L'utilisation la plus simple est:
# mkisofs -o fichierimage.iso /chemin/vers/arborescence
Cette commande créera un fichierimage.iso contenant un système de fichiers ISO 9660 qui est une copie de l'arborescence /chemin/vers/arborescence. Durant le processus de création, les noms de fichiers seront modifiés de façon à respecter les limitations de la norme ISO 9660, et rejettera les fichiers ayant des noms non acceptables pour un système de fichiers ISO.
De nombreuses options sont disponibles pour passer outre ces restrictions. En particulier, -R qui autorise les extensions Rock Ridge communes aux systèmes UNIX, -J qui active les extensions Joliet utilisées par les systèmes Microsoft, et -hfs peut être utilisé pour créer des systèmes de fichiers HFS utilisés par Mac OS®.
Pour des CDs qui sont destinés à n'être utilisé que sur des systèmes FreeBSD, l'option -U peut être utilisée pour désactiver toutes les restrictions au niveau des noms de fichiers. Quand elle est utilisée avec l'option -R, cela produit une image de système de fichiers qui est identique à l'arborescence FreeBSD d'origine, cependant ce système de fichiers pourra violer la norme ISO 9660 de nombreuses façon.
La dernière option d'usage général est l'option -b. Elle est utilisée pour indiquer l'emplacement de l'image de démarrage à utiliser dans la création d'un CD démarrable “El Torito”. Cette option prend en argument le chemin vers une image de démarrage à partir de la racine de l'arborescence qui va être copiée sur le CD. Par défaut, mkisofs(8) créé une image ISO dans un mode appelé “émulation de disquette”, et s'attend donc à une image de démarrage de 1200, 1440 ou 2880 Ko en taille. Certains chargeurs, comme celui utilisé par les disques d'installation de FreeBSD, n'utilisent pas ce mode d'émulation, dans ce cas l'option -no-emul-boot devrait être utilisée. Aussi, si /tmp/monboot contient un système FreeBSD avec une image de démarrage dans /tmp/monboot/boot/cdboot, vous pourrez produire l'image d'un système de fichiers ISO 9660 dans /tmp/bootable.iso de cette façon:
# mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/monboot
Cela étant fait, si vous avez le pilote vn (FreeBSD 4.X), ou md (FreeBSD 5.X) configuré dans votre noyau, vous pouvez monter le système de fichiers avec:
# vnconfig -e vn0c /tmp/bootable.iso # mount -t cd9660 /dev/vn0c /mnt
pour FreeBSD 4.X, et pour FreeBSD 5.X:
# mdconfig -a -t vnode -f /tmp/bootable.iso -u 0 # mount -t cd9660 /dev/md0 /mnt
A ce moment vous pouvez vérifier que /mnt et /tmp/monboot sont identique.
Il existe de nombreuses autres options que vous pouvez utiliser avec mkisofs(8) pour régler finement son comportement. En particulier: les modifications d'une organisation ISO 9660 et la création de disques Joliet et HFS. Voir la page de manuel mkisofs(8) pour plus de détails.
Si vous disposez d'un graveur de CD ATAPI, vous pouvez utiliser la commande burncd pour graver une image ISO sur un CD. burncd fait partie du système de base, installé sous /usr/sbin/burncd. Son utilisation est très simple, car il dispose de peu d'options:
# burncd -f cddevice data fichierimage.iso fixate
Gravera une copie de fichierimage.iso sur cddevice. Le périphérique par défaut est /dev/acd0 (ou /dev/acd0c sous FreeBSD 4.X). Consultez burncd(8) pour les options pour fixer la vitesse d'écriture, éjecter le CD après gravure, et graver des données audios.
Si vous n'avez pas de graveur de CD ATAPI, vous devrez utiliser cdrecord pour graver vos CDs. cdrecord ne fait pas partie du système de base; vous devez l'installer soit à partir du logiciel porté sysutils/cdrtools ou de la version pré-compilée appropriée. Des modifications du système de base peuvent provoquer le disfonctionnement des versions binaires de ce programme, et donner lieu à une production de ``dessous de bouteille''. Vous devrez par conséquent soit mettre à jour le logiciel porté quand vous mettez à jour votre système, soit si vous suivez la branche -STABLE, mettre à jour le logiciel porté lorsqu'une nouvelle version est disponible.
Bien que cdrecord dispose de nombreuses options, l'usage de base est même plus simple qu'avec burncd. La gravure d'une image ISO 9660 se fait avec:
# cdrecord dev=device fichierimage.iso
La partie délicate dans l'utilisation de cdrecord est la recherche de la valeur à utiliser pour l'option dev. Pour déterminer le bon paramètre à utiliser, utilisez l'indicateur -scanbus de cdrecord, qui produira des résultats du type:
# cdrecord -scanbus Cdrecord 1.9 (i386-unknown-freebsd4.2) Copyright (C) 1995-2000 Jörg Schilling Using libscg version 'schily-0.1' scsibus0: 0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk 0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk 0,2,0 2) * 0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk 0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM 0,5,0 5) * 0,6,0 6) * 0,7,0 7) * scsibus1: 1,0,0 100) * 1,1,0 101) * 1,2,0 102) * 1,3,0 103) * 1,4,0 104) * 1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM 1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner 1,7,0 107) *
Cela donne la valeur dev appropriée pour les périphériques listés. Recherchez votre graveur de CD dans la liste, et utilisez les trois chiffres séparés par une virgule comme valeur pour dev. Dans notre cas le périphérique de gravure est 1,5,0, donc l'entrée appropriée serait dev=1,5,0. Il existe des manières plus simple de spécifier cette valeur, consultez la page de manuel cdrecord(1) pour des détails. C'est également la documentation à consulter pour des informations sur la gravure de pistes audios, le contrôle de la vitesse, et d'autres choses.
Vous pouvez dupliquer un CD audio en effectuant l'extraction des données audio du CD vers un ensemble de fichiers, puis graver ces fichiers sur un CD vierge. Le processus est légèrement différent entre lecteurs ATAPI et SCSI.
Lecteurs SCSI
Utiliser cdda2wav pour effectuer l'extraction audio.
% cdda2wav -v255 -D2,0 -B -Owav
Utiliser cdrecord pour graver les fichiers .wav.
% cdrecord -v dev=2,0 -dao -useinfo *.wav
Assurez-vous que 2,0 est choisi correctement, comme décrit dans Section 16.6.4.
Lecteurs ATAPI
Le pilote CD ATAPI rend disponible chaque piste sous la forme /dev/acddtnn, où d est le numéro de lecteur, et nn est le numéro de la piste écrit sur deux digits décimaux. Donc la première piste sur le premier lecteur est /dev/acd0t01, la seconde est /dev/acd0t02, la troisième /dev/acd0t03, et ainsi de suite.
Assurez-vous que les fichiers appropriés existent sous /dev.
# cd /dev # sh MAKEDEV acd0t99
Note : Sous FreeBSD 5.X, devfs(5) créera et gèrera automatiquement pour vous les entrées sous /dev, il n'est donc pas nécessaire d'utiliser MAKEDEV.
Extraire chaque piste en utilisant dd(1). Vous devez également préciser une taille de bloc durant l'extraction des fichiers.
# dd if=/dev/acd0t01 of=piste1.cdr bs=2352 # dd if=/dev/acd0t02 of=piste2.cdr bs=2352 ...
Graver les fichiers récupérés en utilisant burncd. Vous devez spécifier que ce sont des fichiers audio, et que burncd devra fermer le disque une fois terminé.
# burncd -f /dev/acd0 audio piste1.cdr piste2.cdr ... fixate
vous pouvez copier un CD de données vers un fichier image équivalent au fichier créé avec mkisofs(8), et vous pouvez l'utiliser pour dupliquer n'importe quel CD de données. L'exemple présenté ici suppose que votre lecteur de CDROM est les périphérique acd0. Remplacez-le avec le périphérique correct. Sous FreeBSD 4.X, un c doit être ajouté à la fin du nom du périphérique pour indiquer l'intégralité de la partition, ou dans le cas de CDROMS, l'intégralité du disque.
# dd if=/dev/acd0 of=fichier.iso bs=2048
Vous disposez maintenant d'une image, vous pouvez la graver comme décrit plus haut.
Maintenant que vous avez créé une CDROM de données standard, vous voulez probablement le monter et lire les données présentes. Par défaut, mount(8) suppose que le système de fichier à monter est de type UFS. Si vous essayez quelque chose comme:
# mount /dev/cd0 /mnt
vous obtiendrez une erreur du type “Incorrect super block”, et pas de montage. Le CDROM n'est pas un système de fichiers de type UFS, aussi toute tentative de montage de ce type échouera. Vous devez juste préciser à mount(8) que le système de fichiers est du type ISO9660, et tout fonctionnera. Cela se fait en spécifiant l'option -t cd9660 option à mount(8). Par exemple, si vous désirez monter un CDROM, contenu dans le lecteur /dev/cd0, sous /mnt, vous devrez exécuter:
# mount -t cd9660 /dev/cd0 /mnt
Notez que votre nom de lecteur (/dev/cd0 dans cet exemple) pourra être différent, en fonction de l'interface utilisée par votre lecteur de CDROM. De plus l'option -t cd9660 ne fait qu'exécuter la commande mount_cd9660(8). L'exemple précédent pourrait être réduit à:
# mount_cd9660 /dev/cd0 /mnt
Vous pouvez généralement utiliser des CDROMs de données de n'importe quelle provenance de cette façon. Les disques avec certaines extensions ISO 9660 pourront se comporter de façon étrange, cependant. Par exemple, les disques Joliet conservent tous les noms de fichiers en utilisant des caractères Unicodes sur 2 octets. Le noyau FreeBSD ne comprend pas l'Unicode (pas encore!), aussi les caractères non-anglais apparaîtront sous la forme de points d'interrogation. (Si vous utilisez FreeBSD 4.3 ou suivantes, le pilote CD9660 inclus la possibilité de charger au vol la table de conversion Unicode appropriée. Les modules de certains des codages classiques sont disponibles via le logiciel porté sysutils/cd9660_unicode.)
Occasionnellement, vous pourrez obtenir le message “Device not configured” (périphérique non configuré) lors d'une tentative de montage d'un CDROM. Cela veut généralement dire que le lecteur de CDROM pense qu'il n'y a pas de disque dans le lecteur, ou que le lecteur n'est pas visible sur le bus. Cela peut demander plusieurs secondes à un lecteur de CDROM de s'apercevoir qu'il a été chargé, soyez donc patient.
Parfois, un lecteur de CDROM SCSI peut être manquant parce qu'il n'a pas eu suffisement de temps pour répondre à la réinitialisation du bus. Si vous avez un lecteur de CDROM SCSI, veuillez ajouter l'option suivante à la configuration de votre noyau et recompiler votre noyau.
options SCSI_DELAY=15000
Ceci demande à votre bus SCSI une pause de 15 seconds au démarrage, pour donner à votre lecteur de CDROM une chance de répondre la réinitialisation du bus.
Il est possible de graver directement un fichier sur CD, sans créer de système de fichiers ISO 9660. Certaines personnes le font dans le cas de sauvegardes. Cela est beaucoup plus rapide que de graver un CD standard:
# burncd -f /dev/acd1 -s 12 data archive.tar.gz fixate
Afin de récupérer les données gravées sur un tel CD, vous devez lire les données à partir du fichier spécial de périphériques en mode caractère:
# tar xzvf /dev/acd1
Vous ne pouvez monter ce disque comme vous le feriez avec un CDROM classique. Un tel CDROM ne pourra être lu sous un autre système d'exploitation en dehors de FreeBSD. Si vous voulez être en mesure de monter le CD, ou d'en partager les données avec un autre système d'exploitation, vous devez utiliser mkisofs(8) comme décrit plus haut.
Ce pilote permet d'accéder aux périphériques ATAPI (lecteurs de CD-ROM, graveurs CD-RW, lecteur de DVD etc...) par l'intermédiaire du sous-système SCSI, et autorise l'utilisation d'applications comme sysutils/cdrdao ou cdrecord(1).
Pour utiliser ce pilote, vous devrez ajouter les lignes suivantes à fichier de configuration du noyau:
device atapicam device scbus device cd device pass
Vous avez également besoin de la ligne suivante dans votre fichier de configuration:
device ata
Cette ligne devrait être déjà présente.
Puis recompilez, installez votre nouveau noyau, et redémarrez votre machine. Lors du démarrage, votre graveur devrait apparaître, comme suit:
acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4 cd0 at ata1 bus 0 target 0 lun 0 cd0: <MATSHITA CDRW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device cd0: 16.000MB/s transfers cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed
Le lecteur doit être accessible via le nom de périphérique /dev/cd0, par exemple pour monter un CD-ROM sous /mnt, tapez juste ce qui suit:
# mount -t cd9660 /dev/cd0 /mnt
En tant que root, vous pouvez exécuter la commande suivante pour obtenir l'adresse SCSI du graveur:
# camcontrol devlist <MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (pass0,cd0)
Donc 1,0,0 sera l'adresse SCSI à utiliser avec cdrecord(1) et tout autre application SCSI.
Pour plus d'information concernant ATAPI/CAM et le système SCSI, consultez les pages de manuel atapicam(4) et cam(4).
Précédent | Sommaire | Suivant |
Périphériques de stockage USB | Niveau supérieur | Création et utilisation de supports optiques (DVDs) |
Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.
Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:13