| FreeBSD Handbuch | ||
|---|---|---|
| Zurück | Kapitel 12. Speichermedien | Nach vorne |
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 konnten früher auch leichter als vergleichbar große Medien 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 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. Leider hat es auch damals übliche Grenzen für Dateisysteme implementiert. Glücklicherweise 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.
Mit sysutils/mkisofs wird eine Datei erstellt, die ein ISO 9660-Dateisystem enthält. Das Kommando hat Optionen, um verschiedene Erweiterungen zu unterstützen, und wird unten beschrieben. Sie können es aus dem sysutils/mkisofs Port installieren.
Welches Tool Sie zum Brennen von CDs benutzen, hängt davon ab, ob Ihr 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 sysutils/cdrtools benutzt.
Von burncd wird nur eine beschränkte Anzahl von Laufwerken unterstützt. Um herauszufinden, ob ein Laufwerk unterstützt wird, sehen Sie bitte unter CD-R/RW supported drives nach.
sysutils/mkisofs erstellt ein ISO 9660-Dateisystem, das ein Abbild eines Verzeichnisbaumes des Dateisystems ist. Die einfachste Anwendung ist wie folgt:
# mkisofs -o Imagedatei /path/to/tree
Dieses Kommando erstellt eine Imagedatei, 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 MacOS 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, ausgehend von dem Startpunkt im 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. 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 wie folgt erstellen:
# mkisofs -U -R -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot
Wenn Sie vn (mit FreeBSD 4.X) oder md (mit FreeBSD 5.X) in Ihrem Kernel konfiguriert haben, können Sie danach das Dateisystem einhängen. Mit FreeBSD 4.X setzen Sie dazu die nachstehenden Kommandos ab:
# vnconfig -e vn0c /tmp/bootable.iso
# mount -t cd9660 /dev/vn0c /mnt
Mit FreeBSD 5.X verwenden Sie die Kommandos:
# 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 sysutils/mkisofs mit einer Vielzahl von Optionen beeinflussen. Insbesondere können Sie das ISO-9660 Dateisystem modifizieren und Joliet- oder HFS-Dateisysteme brennen. Details dazu entnehmen Sie bitte der Manualpage von sysutils/mkisofs.
Wenn Sie einen ATAPI CD Brenner besitzen, können Sie burncd benutzen, 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 data imagefile.iso fixate
Dieses Kommando brennt eine Kopie von imagefile.iso auf das Gerät cddevice. In der Grundeinstellung wird das Gerät /dev/acd0c benutzt. burncd(8) beschreibt, wie die Schreibgeschwindigkeit gesetzt wird, die CD ausgeworfen wird und Audio Daten geschrieben werden.
Wenn Sie keinen ATAPI CD Brenner besitzen, benutzen Sie cdrecord, um CDs zu brennen. cdrecord ist nicht Bestandteil des Basissystems. Sie müssen es entweder aus den Ports in sysutils/cdrtools oder dem passenden Paket installieren. Änderungen im Basissystem können Fehler im binären Programm verursachen und führen möglicherweise dazu, dass Sie einen ``Untersetzer'' brennen. Sie sollten daher den Port aktualisieren, wenn Sie Ihr System aktualisieren bzw. wenn Sie STABLE verfolgen, den Port aktualisieren, wenn es eine neue Version gibt.
Obwohl cdrecord viele Optionen besitzt, ist die grundlegende Anwendung einfacher als burncd. Ein ISO 9660 Image erstellen Sie mit:
# cdrecord dev=device imagefile.iso
Der Knackpunkt in der Benutzung von cdrecord besteht darin, das richtige Argument zu dev zu finden. Benutzen Sie dazu den -scanbus Schalter von cdrecord, der eine ähnliche Ausgabe wie die folgende produziert:
# 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) *
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 zu Ihrem 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 wäre. Einfachere Wege das Argument anzugeben, sind in cdrecord(1) beschrieben. Dort sollten Sie auch nach Informationen über Audio Spuren, das Einstellen der Geschwindigkeit und ähnlichem suchen.
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-Laufwerke oder SCSI-Laufwerke verwenden.
SCSI-Laufwerke
Kopieren Sie die Audio-Daten mit cdda2wav:
% cdda2wav -v255 -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 Sie, wie in Abschnitt 12.5.4 beschrieben, ermitteln können.
ATAPI-Laufwerke
Der ATAPI CD-Treiber stellt die einzelnen Stücke der CD über die Dateien /dev/acddtn, zur Verfügung. d bezeichnet die Laufwerksnummer und n ist die Nummer des Stücks. Die Datei /dev/acd0t1 bezeichnet also das erste Stück auf dem ersten CD-Laufwerk.
Die entsprechenden Dateien in /dev erstellen Sie mit MAKEDEV:
# cd /dev
# sh MAKEDEV acd0t99
Anmerkung: Ab FreeBSD 5.0 werden die Gerätedateien automatisch von devfs(5) erzeugt, so dass Sie MAKEDEV nicht laufen lassen müssen.
Die einzelnen Stücke kopieren Sie mit dd(1). Sie müssen dazu eine spezielle Blockgröße angeben:
# dd if=/dev/acd0t1 of=track1.cdr bs=2352
# dd if=/dev/acd0t2 of=track2.cdr bs=2352
...
Die kopierten Dateien können Sie dann mit burncd brennen. Auf der Kommandozeile müssen Sie angeben, dass Sie Audio-Daten brennen wollen und dass das Medium fixiert werden soll:
# burncd -f /dev/acd0c audio track1.cdr track2.cdr ... fixate
Sie können eine Daten-CD in eine Datei kopieren, die einem Image entspricht, das mit sysutils/mkisofs 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. Wenn Sie ein anderes Laufwerk benutzen, setzen Sie bitte den richtigen Namen ein. An den Gerätenamen muss ein c angehangen werden, um die ganze Partition, in diesem Fall ist das die ganze CD-ROM, anzusprechen.
# dd if=/dev/acd0c of=file.iso bs=2048
Danach haben Sie ein Image, das Sie wie oben beschrieben, auf eine CD brennen können.
Nachdem Sie eine Daten-CD gebrannt haben, wollen Sie wahrscheinlich auch die Daten auf der CD lesen. Dazu müssen Sie die CD in den Dateibaum einhängen. Die Voreinstellung für den Typ des Dateisystems von mount(8) ist UFS. Das System wird die Fehlermeldung ``Incorrect super block'' ausgeben, wenn Sie versuchen, die CD mit dem folgenden Kommando einzuhängen:
# mount /dev/cd0c /mnt
Auf der CD befindet sich ja kein UFS Dateisystem, so dass der Versuch, die CD einzuhängen fehlschlägt. Sie müssen mount(8) sagen, dass es ein Dateisystem vom Typ ISO9660 verwenden soll. Dies erreichen Sie durch die Angabe von -t cd9660 auf der Kommandozeile. Wenn Sie also die CD-ROM /dev/cd0c in /mnt einhängen wollen, führen Sie folgenden Befehl aus:
# mount -t cd9660 /dev/cd0c /mnt
Abhängig vom verwendeten CD-ROM kann der Gerätename von dem im Beispiel (/dev/cd0c) abweichen. Die Angabe von -t cd9660 führt mount_cd9660(8) aus, so dass das Beispiel verkürzt werden kann:
# mount_cd9660 /dev/cd0c /mnt
Auf diese Weise können Sie Daten-CDs von jedem Hersteller verwenden. 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. Der FreeBSD Kernel unterstützt zurzeit noch kein Unicode und manche Sonderzeichen werden als Fragezeichen dargestellt. Ab FreeBSD 4.3 sind im CD9660-Treiber Möglichkeiten vorgesehen, eine Konvertierungstabelle zur Laufzeit zu laden. Module für die gebräuchlisten Kodierungen finden Sie im Port sysutils/cd9660_unicode.
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 Ihre 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.
Sie können eine Datei auch direkt auf eine CD 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/acd1c -s 12 data archive.tar.gz fixate
Wenn Sie die Daten von einer solchen CD wieder zurückbekommen wollen, müssen Sie sie direkt von dem rohen Gerät lesen:
# tar xzvf /dev/acd1c
Eine auf diese Weise gefertigte CD können Sie nicht in das Dateisystem einhängen. Sie können Sie auch nicht auf einem anderen Betriebssystem lesen. Wenn Sie die erstellten CDs in das Dateisystem einhängen oder mit anderen Betriebssystemen austauschen wollen, müssen Sie sysutils/mkisofs, wie oben beschrieben, benutzen.
| Zurück | Zum Anfang | Nach vorne |
| RAID | Nach oben | Handhabung von Disketten |
Wenn Sie Fragen zu FreeBSD haben,
schicken Sie eine EMail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie
eine Email an <de-bsd-translators@de.FreeBSD.org>.