This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.
CDs besitzen einige Eigenschaften, die sie von konventionellen Laufwerken unterscheiden. Zuerst konnten sie nicht beschrieben werden. Sie wurden so entworfen, dass sie ununterbrochen, ohne Verzögerungen durch Kopfbewegungen zwischen den Spuren, gelesen werden können. Sie können auch leichter zwischen Systemen bewegt werden.
CDs besitzen Spuren, aber damit ist der Teil Daten gemeint, der ununterbrochen gelesen wird, und nicht eine physikalische Eigenschaft der CD. Um beispielsweise eine CD mit FreeBSD zu erstellen, werden die Daten jeder Spur der CD in Dateien vorbereitet und dann die Spuren auf die CD geschrieben.
Das ISO 9660-Dateisystem wurde entworfen, um mit diesen Unterschieden umzugehen. Um die ursprünglichen Dateisystemgrenzen zu überwinden existiert ein Erweiterungsmechanismus, der es korrekt geschriebenen CDs erlaubt, diese Grenzen zu überschreiten und dennoch auf Systemen zu funktionieren, die diese Erweiterungen nicht unterstützen.
Der Port sysutils/cdrtools enthält das Programm mkisofs(8), das eine Datei erstellt, die ein ISO 9660-Dateisystem enthält. Das Programm hat Optionen, um verschiedene Erweiterungen zu unterstützen, und wird unten beschrieben.
Welches Werkzeug zum Brennen von CDs
benutzt wird, hängt davon ab, ob der
CD-Brenner ein
ATAPI-Gerät ist oder nicht. Mit
ATAPI-CD-Brennern wird
burncd
benutzt, das Teil des Basissystems
ist. SCSI- und
USB-CD-Brenner werden
mit cdrecord
aus dem Port
sysutils/cdrtools benutzt. Zusätzlich ist
es möglich, über das Modul
ATAPI/CAM
SCSI-Werkzeuge wie
cdrecord
auch für
ATAPI-Geräte einzusetzen.
Für eine Brennsoftware mit grafischer Benutzeroberfläche benötigen, sollten Sie sich X-CD-Roast oder K3b näher ansehen. Diese Werkzeuge können als Paket oder aus den Ports sysutils/xcdroast und sysutils/k3b installiert werden. Mit ATAPI-Hardware benötigt K3b das ATAPI/CAM-Modul.
Der Port sysutils/cdrtools installiert auch mkisofs(8), welches ein ISO 9660-Abbild erstellt, das ein Abbild eines Verzeichnisbaumes ist. Die einfachste Anwendung ist:
#
mkisofs -o
imagefile.iso
/path/to/tree
Dieses Kommando erstellt
imagefile.iso
, die ein ISO
9660-Dateisystem enthält, das eine Kopie des Baumes unter
/path/to/tree
ist. Dabei werden
die Dateinamen auf Namen abgebildet, die den Restriktionen des
ISO 9660-Dateisystems entsprechen. Dateien mit Namen, die im
ISO 9660-Dateisystem nicht gültig sind, bleiben
unberücksichtigt.
Es einige Optionen, um diese Beschränkungen zu überwinden.
Die unter UNIX® Systemen üblichen Rock-Ridge-Erweiterungen
werden durch -R
aktiviert,
-J
aktiviert die von Microsoft Systemen
benutzten Joliet-Erweiterungen und -hfs
dient
dazu, um das von Mac OS® benutzte HFS zu erstellen.
Für CDs, die nur auf FreeBSD-Systemen verwendet werden
sollen, kann -U
genutzt werden, um alle
Beschränkungen für Dateinamen aufzuheben. Zusammen mit
-R
wird ein Abbild des Dateisystems,
identisch zu angegebenen FreeBSD-Dateibaum, erstellt, obwohl dies
den ISO 9660 Standard verletzen kann.
Die letzte übliche Option ist -b
.
Sie wird benutzt, um den Ort eines Bootimages einer
„El Torito“ bootbaren CD anzugeben. Das Argument
zu dieser Option ist der Pfad zu einem Bootimage ausgehend
von der Wurzel des Baumes, der auf die CD geschrieben werden
soll. In der Voreinstellung erzeugt mkisofs(8) ein
ISO-Image im „Diskettenemulations“-Modus. Dabei
muss das Image genau 1200, 1440 oder 2880 KB groß
sein. Einige Bootloader, darunter der auf den FreeBSD-Disks
verwendete, kennen keinen Emulationsmodus. Daher sollten Sie
in diesen Fällen -no-emul-boot
verwenden.
Wenn /tmp/myboot
ein bootbares
FreeBSD-System enthält, dessen Bootimage sich in
/tmp/myboot/boot/cdboot
befindet, können
Sie ein Abbild eines ISO 9660-Dateisystems in
/tmp/bootable.iso
erstellen:
#
mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot
Wenn md
im Kernel konfiguriert ist,
kann das Dateisystem als speicherbasiertes Laufwerk
eingehängt werden:
#
mdconfig -a -t vnode -f /tmp/bootable.iso -u 0
#
mount -t cd9660 /dev/md0 /mnt
Jetzt können Sie überprüfen, dass
/mnt
und /tmp/myboot
identisch sind.
Sie können das Verhalten von mkisofs(8) mit einer Vielzahl von Optionen beeinflussen. Details dazu entnehmen Sie bitte mkisofs(8).
Für ATAPI-CD-Brenner
kann burncd
benutzt werden, um ein
ISO-Image auf CD zu brennen.
burncd
ist Teil des Basissystems und unter
/usr/sbin/burncd
installiert. Da es
nicht viele Optionen hat, ist es leicht zu benutzen:
#
burncd -f
cddevice
dataimagefile.iso
fixate
Dieses Kommando brennt eine Kopie von
imagefile.iso
auf das Gerät
cddevice
. In der Grundeinstellung
wird das Gerät /dev/acd0
benutzt.
burncd(8) beschreibt, wie die Schreibgeschwindigkeit
gesetzt wird, die CD ausgeworfen wird und
Audiodaten geschrieben werden.
Für Systeme ohne
ATAPI-CD-Brenner kann
cdrecord
benutzt werden, um
CDs zu brennen. cdrecord
ist nicht Bestandteil des Basissystems und muss entweder als Paket
sysutils/cdrtools oder Port installiert
werden. Änderungen im Basissystem können Fehler im binären
Programm verursachen und führen möglicherweise dazu, dass Sie
einen „Untersetzer“ brennen. Es wird daher
empfohlen den Port aktualisieren, wenn das System
aktualisiert wird, oder für Benutzer die
STABLE verfolgen,
den Port zu aktualisieren, wenn es eine neue Version
gibt.
Obwohl cdrecord
viele Optionen besitzt,
ist die grundlegende Anwendung einfach. Ein ISO 9660-Image
wird wie folgt erstellt:
#
cdrecord dev=
device
imagefile.iso
Der Knackpunkt in der Benutzung von
cdrecord
besteht darin, das richtige
Argument zu dev
zu finden. Benutzen Sie
-scanbus
, der eine ähnliche Ausgabe
wie die folgende produziert:
#
cdrecord -scanbus
Cdrecord 1.9 (i386-unknown-freebsd7.0) Copyright (C) 1995-2004 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) *
Für die aufgeführten Geräte in der Liste
wird das passende Argument zu dev
gegeben.
Benutzen Sie die drei durch Kommas separierten Zahlen, die zum
CD-Brenner angegeben sind, als Argument für
dev
. Im Beispiel ist das CDRW-Gerät
1,5,0, so dass die passende Eingabe
dev=1,5,0
ist. Einfachere Wege das
Argument anzugeben, sowie Informationen über Audiospuren und
das Einstellen der Geschwindigkeit, sind in cdrecord(1)
beschrieben.
Um eine Kopie einer Audio-CD zu erstellen, kopieren Sie die Stücke der CD in einzelne Dateien und brennen diese Dateien dann auf eine leere CD. Das genaue Verfahren hängt davon ab, ob Sie ATAPI- oder SCSI-Laufwerke verwenden.
Kopieren Sie die Audiodaten mit
cdda2wav
:
%
cdda2wav -vall -D2,0 -B -Owav
Die erzeugten .wav
Dateien
schreiben Sie mit cdrecord
auf eine
leere CD:
%
cdrecord -v dev=
2,0
-dao -useinfo *.wav
Das Argument von dev
gibt das
verwendete Gerät an, das wie in Abschnitt 19.6.3, „cdrecord“
ermittelt werden kann.
Über das Modul
ATAPI/CAM kann
cdda2wav
auch mit
ATAPI-Laufwerken
verwendet werden. Diese Methode ist für die meisten
Anwender besser geeignet als die im folgenden
beschriebenen Methoden (Jitter-Korrektur,
Big-/Little-Endian-Probleme und anderes mehr spielen
hierbei eine Rolle).
Der
ATAPI-CD-Treiber
stellt die einzelnen Stücke der CD
über die Dateien
/dev/acd
,
zur Verfügung. d
tnn
d
bezeichnet
die Laufwerksnummer und nn
ist
die Nummer des Stücks. Die Nummer ist immer zweistellig,
das heißt es wird, wenn nötig, eine führende Null
ausgegeben. Die Datei /dev/acd0t01
ist also das erste Stück des ersten
CD-Laufwerks.
/dev/acd0t02
ist das zweite Stück
und /dev/acd0t03
das dritte.
Überprüfen Sie stets, ob die entsprechenden
Dateien im Verzeichnis /dev
auch
angelegt werden. Sind die Einträge nicht vorhanden,
weisen Sie Ihr System an, das Medium erneut zu testen:
#
dd if=/dev/acd0 of=/dev/null count=1
Unter FreeBSD 4.X werden diese Einträge nicht
mit dem Wert Null vordefiniert. Falls die entsprechenden
Einträge unter /dev
nicht
vorhanden sind, müssen Sie diese hier von
MAKEDEV
anlegen lassen:
#
cd /dev
#
sh MAKEDEV acd0t99
Die einzelnen Stücke werden mit dd(1) kopiert. Achten Sie darauf, eine Blockgröße anzugeben:
#
dd if=/dev/acd0t01 of=track1.cdr bs=2352
#
dd if=/dev/acd0t02 of=track2.cdr bs=2352
...
Die kopierten Dateien können Sie dann mit
burncd
brennen. Geben Sie an, dass es
sich um Audio-Daten handelt und dass burncd
das Medium am Ende fixieren soll:
#
burncd -f
/dev/acd0
audio track1.cdr track2.cdr...
fixate
Es ist möglich eine Daten-CD in eine
Datei zu kopieren, die einem Image entspricht, das mit
mkisofs(8) erstellt wurde. Mit Hilfe dieses Images
können Sie jede Daten-CD kopieren. Das
folgende Beispiel verwendet acd0
für das
CD-ROM-Gerät. Wird ein anderes Laufwerk
benutzt, muss der Name entsprechend ersetzt werden.
#
dd if=/dev/acd0 of=file.iso bs=2048
Danach existiert ein Image, das wie oben beschrieben, auf CD gebrannt werden kann.
Es ist möglich, eine Daten-CD zu
mounten und die Daten zu lesen. Standardmäßig erwartet
mount(8) ein Dateisystem vom Typ ufs
.
Wenn Sie das folgende Kommando ausführen:
#
mount /dev/cd0 /mnt
erhalten Sie die Fehlermeldung
Incorrect super block, und die
CD konnte nicht eingehängt werden. Die
CD benutzt nicht das
UFS
-Dateisystem, deshalb schlägt der
Versuch fehl, sie als solches einzuhängen. Sie müssen
mount(8) durch die Angabe von -t cd9660
sagen, dass es sich um ein Dateisystem vom Typ
ISO9660
handelt. Wenn Sie also die
CD-ROM /dev/cd0
in
/mnt
einhängen wollen, führen Sie
folgenden Befehl aus:
#
mount -t cd9660
/dev/cd0
/mnt
Ersetzen Sie /dev/cd0
durch den
Gerätenamen des CD-Gerätes. Die Angabe von
-t cd9660
führt mount_cd9660(8) aus,
was äquivalent zu folgendem Befehl ist:
#
mount_cd9660 /dev/cd0 /mnt
Auf diese Weise können Sie Daten-CDs
von jedem Hersteller verwenden. Es kann allerdings zu
Problemen mit CDs kommen, die verschiedene
ISO9660-Erweiterungen benutzen. So speichern
Joliet-CDs alle Dateinamen unter
Verwendung von zwei Byte langen Unicode-Zeichen. Zwar
unterstützt der FreeBSD-Kernel derzeit noch kein Unicode, der
CD9660-Treiber erlaubt es aber, zur Laufzeit eine
Konvertierungstabelle zu laden. Tauchen
also statt bestimmter Zeichen nur Fragezeichen auf, so
müssen Sie über die Option -C
den
benötigten Zeichensatz angeben. Weitere Informationen zu
diesem Problem finden Sie in der Manualpage
mount_cd9660(8).
Damit der Kernel diese Zeichenkonvertierung (festgelegt
durch die Option -C
) erkennt, müssen Sie
das Kernelmodul cd9660_iconv.ko
laden.
Dazu fügen Sie folgende Zeile in
loader.conf
ein:
cd9660_iconv_load="YES"
Danach müssen Sie allerdings Ihr System neu starten. Alternativ können Sie das Kernelmodul auch direkt über kldload(8) laden.
Manchmal werden Sie die Meldung Device not configured erhalten, wenn Sie versuchen, eine CD-ROM einzuhängen. Für gewöhnlich liegt das daran, dass das Laufwerk meint es sei keine CD eingelegt, oder dass das Laufwerk auf dem Bus nicht erkannt wird. Es kann einige Sekunden dauern, bevor das Laufwerk merkt, dass eine CD eingelegt wurde. Seien Sie also geduldig.
Manchmal wird ein SCSI-CD-ROM nicht erkannt, weil es keine Zeit hatte, auf das Zurücksetzen des Busses zu antworten. Wenn Sie ein SCSI-CD-ROM besitzen, sollten Sie die folgende Zeile in die Kernelkonfiguration aufnehmen und einen neuen Kernel bauen:
options SCSI_DELAY=15000
Die Zeile bewirkt, dass nach dem Zurücksetzen des SCSI-Busses beim Booten 15 Sekunden gewartet wird, um dem CD-ROM-Laufwerk genügend Zeit zu geben, darauf zu antworten.
Es ist möglich eine Datei auch direkt auf eine CD zu brennen, ohne vorher auf ihr ein ISO 9660-Dateisystem einzurichten. Einige Leute nutzen dies, um Datensicherungen durchzuführen. Diese Vorgehensweise hat den Vorteil, dass sie schneller als das Brennen einer normalen CD ist.
#
burncd -f /dev/acd1 -s 12 data archive.tar.gz fixate
Um die Daten einer solchen CD abzurufen, müssen die Daten direkt von dem rohen Gerät gelesen werden:
#
tar xzvf /dev/acd1
Eine auf diese Weise gefertigte CD kann nicht in das Dateisystem eingehangen werden. Sie kann auch nicht auf einem anderen Betriebssystem gelesen werden. Wenn Sie die erstellten CDs in das Dateisystem einhängen oder mit anderen Betriebssystemen austauschen wollen, müssen Sie mkisofs(8) wie oben beschrieben benutzen.
Mit diesem Treiber kann auf ATAPI-Geräte, wie CD-ROM-, CD-RW- oder DVD-Laufwerke, mithilfe des SCSI-Subsystems zugegriffen werden. Damit können Sie SCSI-Werkzeuge, wie sysutils/cdrdao oder cdrecord(1), zusammen mit einem ATAPI-Gerät benutzen.
Um den Treiber zu benutzen, fügen Sie die folgende Zeile
in /boot/loader.conf
ein:
atapicam_load="YES"
Um den Treiber zu aktivieren, muss das System neu gestartet werden.
Benutzer, die es vorziehen atapicam(4)-Unterstützung statisch in den Kernel zu komplillieren, sollten diese Zeile in die Kernelkonfigurationsdatei hinzufügen:
device atapicam
Die folgenden Zeilen werden ebenfalls benötigt, sollten aber schon Teil der Kernelkonfiguration sein:
device ata device scbus device cd device pass
Übersetzen und installieren Sie den neuen Kernel. Starten Sie anschließend das System neu.
Während des Bootvorgangs sollte der CD-Brenner ungefähr so angezeigt werden:
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
Über den Gerätenamen /dev/cd0
kann nun auf das Laufwerk zugegriffen werden. Um
beispielsweise eine CD-ROM in
/mnt
einzuhängen, geben Sie folgendes
ein:
#
mount -t cd9660
/dev/cd0
/mnt
Die SCSI-Adresse des Brenners können
Sie als root
wie
folgt ermitteln:
#
camcontrol devlist
<MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (pass0,cd0)
Die SCSI-Adresse
1,0,0
können Sie mit den
SCSI-Werkzeugen, zum Beispiel
cdrecord(1), verwenden.
Weitere Informationen über das ATAPI/CAM- und das SCSI-System finden Sie in atapicam(4) und cam(4).
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.