CDs besitzen einige Eigenschaften, die sie von konventionellen Laufwerken unterscheiden. Sie wurden so entworfen, dass sie ununterbrochen, ohne Verzögerungen durch Kopfbewegungen zwischen den Spuren, gelesen werden können. CDs besitzen Spuren, aber damit ist der Teil Daten gemeint, der ununterbrochen gelesen wird, und nicht eine physikalische Eigenschaft der CD. Das ISO 9660-Dateisystem wurde entworfen, um mit diesen Unterschieden umzugehen.
Die FreeBSD Ports-Sammlung bietet einige Werkzeuge zum Brennen und Kopieren von Audio- und Daten-CDs. Dieses Kapitel beschreibt die Verwendung von mehreren Kommandozeilen-Werkzeugen. Wenn Sie eine graphische Oberfläche zum Brennen von CDs benutzen, können Sie sysutils/xcdroast oder sysutils/k3b installieren.
Der GENERIC
-Kernel enthält
Unterstützung für SCSI,
USB und ATAPI
CD Lesegeräte und Brenner. Wird ein
angepasster Kernel erstellt, unterscheiden sich die Optionen
für die Kernelkonfigurationsdatei je nach Art des
Geräts.
Für einen SCSI-Brenner müssen folgende Optionen vorhanden sein:
device scbus # SCSI bus (required for ATA/SCSI) device da # Direct Access (disks) device pass # Passthrough device (direct ATA/SCSI access) device cd # needed for CD and DVD burners
Für einen USB-Brenner müssen folgende Optionen vorhanden sein:
device scbus # SCSI bus (required for ATA/SCSI) device da # Direct Access (disks) device pass # Passthrough device (direct ATA/SCSI access) device cd> # needed for CD and DVD burners device uhci # provides USB 1.x support device ohci # provides USB 1.x support device ehci # provides USB 2.0 support device xhci # provides USB 3.0 support device usb # USB Bus (required) device umass # Disks/Mass storage - Requires scbus and da
Für einen ATAPI-Brenner müssen folgende Optionen vorhanden sein:
device ata # Legacy ATA/SATA controllers device scbus # SCSI bus (required for ATA/SCSI) device pass # Passthrough device (direct ATA/SCSI access) device cd # needed for CD and DVD burners
Unter FreeBSD Versionen kleiner 10.x wird auch diese Option in der Kernelkonfigurationsdatei benötigt, falls der Brenner ein ATAPI-Gerät ist:
device atapicam
Alternativ kann folgende Zeile in
/boot/loader.conf
hinzugefügt werden,
um den Treiber beim Booten automatisch zu laden:
atapicam_load="YES"
Hierzu ist ein Neustart des Systems erforderlich, da dieser Treiber nur beim Booten geladen werden kann.
Mit dmesg
können Sie prüfen, ob das
Gerät von FreeBSD erkannt wurde. Unter FreeBSD Versionen kleiner
10.x lautet der Gerätename acd0
anstelle von cd0
.
%
dmesg | grep cd
cd0 at ahcich1 bus 0 scbus1 target 0 lun 0 cd0: <HL-DT-ST DVDRAM GU70N LT20> Removable CD-ROM SCSI-0 device cd0: Serial Number M3OD3S34152 cd0: 150.000MB/s transfers (SATA 1.x, UDMA6, ATAPI 12bytes, PIO 8192bytes) cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed
Unter FreeBSD kann cdrecord
zum Brennen
von CDs benutzt werden. Dieses Programm
wird aus dem Port oder Paket
sysutils/cdrecord installiert.
Obwohl cdrecord
viele Optionen besitzt,
ist die grundlegende Benutzung sehr einfach. Geben Sie den
Namen der zu brennenden ISO-Datei an. Wenn das System über
mehrere Brenner verfügt, müssen Sie auch den Namen des
Gerätes angeben:
#
cdrecord
dev=device
imagefile.iso
Benutzen Sie -scanbus
um den Gerätenamen
des Brenners zu bestimmen. Die Ausgabe könnte wie folgt
aussehen:
#
cdrecord -scanbus
ProDVD-ProBD-Clone 3.00 (amd64-unknown-freebsd10.0) Copyright (C) 1995-2010 Jörg Schilling Using libscg version 'schily-0.9' 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) *
Benutzen Sie die drei durch Kommas separierten Zahlen, die
für den CD-Brenner angegeben sind, als
Argument für dev
. Im Beispiel ist das
Yamaha-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 der Manualpage von
cdrecord
beschrieben.
Alternativ können Sie den folgenden Befehl ausführen, um die Geräteadresse des Brenners zu ermitteln:
#
camcontrol devlist
<MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (cd0,pass0)
Verwenden Sie die numerischen Werte für
scbus
, target
und
lun
. Für dieses Beispiel wäre
1,0,0
als Gerätename zu verwenden.
Die Datendateien müssen vorbereitet sein, bevor sie auf
eine CD gebrannt werden. In FreeBSD wird
mkisofs
vom Paket oder Port
sysutils/cdrtools installiert. Dieses
Programm kann aus einem UNIX® Verzeichnisbaum ein
ISO 9660-Dateisystem erzeugen. Im
einfachsten Fall müssen Sie lediglich den Namen der zu
erzeugenden ISO-Datei und den Pfad zu den
Dateien angeben, die auf dem ISO
9660-Dateisystem platziert werden:
#
mkisofs -o
imagefile.iso
/path/to/tree
Bei diesem Kommando werden die Dateinamen auf Namen abgebildet, die den Restriktionen des ISO 9660-Dateisystem entsprechen. Dateien, die diesem Standard nicht entsprechen bleiben unberücksichtigt.
Es gibt einige Optionen, um die Beschränkungen dieses
Standards zu überwinden. Die unter UNIX® Systemen üblichen
Rock-Ridge-Erweiterungen werden durch -R
aktiviert und -J
aktiviert die von
Microsoft® Systemen benutzten Joliet-Erweiterungen.
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, selbst wenn dies den ISO 9660
Standard verletzt.
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
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 Installationsmedien
verwendete, kennen keinen Emulationsmodus. Daher sollte in
diesen Fällen -no-emul-boot
verwendet werden.
Wenn /tmp/myboot
ein bootbares
FreeBSD-System enthält, dessen Bootimage sich in
/tmp/myboot/boot/cdboot
befindet, dann
würde folgendes Kommando
/tmp/bootable.iso
erstellen:
#
mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot
Das resultierende ISO-Abbild kann 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
mit einer Vielzahl von Optionen beeinflussen. Details dazu
entnehmen Sie bitte mkisofs(8).
Es ist möglich eine Daten-CD in eine
Datei zu kopieren, die einem Image entspricht, das mit
mkisofs
erstellt wurde. Verwenden Sie
dazu dd
mit dem Gerätenamen als
Eingabedatei und den Namen der ISO als
Ausgabedatei:
#
dd if=/dev/
cd0
of=file.iso
bs=2048
Das resultierende Abbild kann auf eine CD gebrannt werden, wie in Abschnitt 17.5.2, „Eine CD brennen“ beschrieben.
Sobald ein Abbild auf eine CD gebrannt wurde, kann es durch Angabe des Dateisystemtyp, des CD-Laufwerks und des Mountpunktes eingehangen werden:
#
mount -t cd9660
/dev/cd0
/mnt
Da mount
davon ausgeht, dass ein
Dateisystem vom Typ ufs
ist, würde die
Fehlermeldung Incorrect super block
erscheinen, wenn Sie beim Einhängen einer
Daten-CD auf die Angabe
-t cd9660
verzichten.
Auf diese Weise können Daten-CDs
von jedem Hersteller verwendet werden. Es kann allerdings zu
Problemen mit CDs kommen, die verschiedene
ISO 9660-Erweiterungen benutzen. So
speichern Joliet-CDs alle Dateinamen unter
Verwendung von zwei Byte langen Unicode-Zeichen. Tauchen
statt bestimmter Zeichen nur Fragezeichen auf, so
muss über die Option -C
der benötigte
Zeichensatz angegeben werden. Weitere Informationen zu
diesem Problem finden Sie in 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
laden.
Manchmal werden Sie die Meldung Device not configured erhalten, wenn Sie versuchen, eine Daten-CD einzuhängen. Für gewöhnlich liegt das daran, dass das Laufwerk keine CD erkannt hat, oder dass das Laufwerk auf dem Bus nicht erkannt wird. Es kann einige Sekunden dauern, bevor das Laufwerk die CD erkennt. Seien Sie also geduldig.
Manchmal wird ein SCSI-CD nicht erkannt, weil es keine Zeit hatte, auf das Zurücksetzen des Busses zu antworten. Um dieses Problem zu lösen, fügen Sie die folgende Zeile in die Kernelkonfiguration ein und erstellen Sie einen angepassten Kernel nach den Anweisungen in Abschnitt 8.5, „Einen angepassten Kernel bauen und installieren“:
options SCSI_DELAY=15000
Die Zeile bewirkt, dass nach dem Zurücksetzen des SCSI-Busses beim Booten 15 Sekunden gewartet wird, um dem CD-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. Man sagt auch, Daten werden roh auf die CD gebrannt. Einige Leute nutzen dies, um Datensicherungen durchzuführen.
Eine auf diese Weise gefertigte Daten-CD kann nicht in das Dateisystem eingehangen werden. Um auf die Daten einer solchen CD zuzugreifen, müssen die Daten vom rohen Gerät gelesen werden. Beispielsweise würde dieser Befehl eine komprimierte tar-Datei auf dem zweiten CD-Laufwerk in das aktuelle Verzeichnis extrahieren:
#
tar xzvf /dev/
cd1
Um eine Daten-CD in das System
einzuhängen, müssen die Daten mit mkisofs
geschrieben werden.
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.
Prozedur 17.1, „Eine Audio-CD kopieren“ beschreibt, wie eine
Audio-CD kopiert und gebrannt wird. Wenn
die Version älter als FreeBSD 10.0 ist und ein
ATAPI-Gerät verwendet wird, muss zunächst
das Modul atapicam
nach den Anweisungen in
Abschnitt 17.5.1, „Unterstützte Geräte“ geladen werden.
Der Port oder das Paket
sysutils/cdrtools installiert
cdda2wav
. Mit diesem Kommando können
Audiodaten in das aktuelle Verzeichnis extrahiert werden,
wobei jede Datei in eine separate
WAV-Datei geschrieben wird:
%
cdda2wav -vall -B -Owav
Wenn das System nur über ein
CD-Laufwerk verfügt, muss der
Gerätename nicht angegeben werden. Lesen Sie die
Manualpage von cdda2wav
für
Anweisungen, wie ein Gerät spezifiziert wird und weitere
verfügbare Optionen für dieses Kommando.
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 17.5.2, „Eine CD brennen“
ermittelt werden kann.
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>.