Seite im Umbau. Nur verwenden, wenn man versteht was man tut, da evtl. inkonsistent.
Diese Seite bezieht sich auf CD-RW, DVD-RW (auch DVD+RW) und evtl. auch auf einige MO-Disks (MO-Disk). Diese Medien haben gemeinsam, dass sie explizit gelöscht werden müssen bevor sie neu beschrieben werden können. Normalerweise verwendet man diese Medien wie ihre einmalbeschreibaren Verwandten, nur dass man sie hin und wieder komplett überschreiben kann. Es ist aber zunächst nicht möglich, z.B. mal eben eine einzelne Datei von diesem Medium zu löschen oder zu überschreiben, wie man es von Wechseldatenträgern gewohnt ist. Es gibt einen Ansatz, wie diese Medien trotzdem wie normale Wechseldatenträger verwendet werden können. Er wird unter PacketWriting beschrieben (so heisst das Verfahren).
Alternativ geht auch das auf dieser Seite beschriebene Verfahren.
Vorteile
- Funktioniert auf jedem System, auf dem der Brenner unterstützt wird.
- Das Medium kann auf praktisch jedem System gelesen werden.
- Das Medium kann direkt als Master z.B. für eine CD-R Serie verwendet werden.
Nachteile
- Es wird mindestens genausoviel freier Festplattenspeicher benötigt wie das Medium hat.
- Es dauert verhältnissmäßig lange.
Es ist im Vergleich zu einem eingerichteten System mit PacketWriting recht umständlich zu handhaben (intelligente Skripte können hier Tipparbeit sparen).
Prinzip
Das Prinzip ist recht einfach:
- Bei der ersten Verwendung des Mediums erstellt man ein rohes Datei-System in einer einzelnen Datei auf der Festplatte.
- Bei Wiederverwendung eines Meduims kopiert man das rohe Dateisystem vom Medium auf die Festplatte in eine Datei.
Man mountet diese Datei mittels loopback.
- Man manipuliert das gemountete Dateisystem.
- Wenn man fertig ist unmountet man es.
- Zuletzt brennt man das Dateisystem wieder auf das Medium.
Ausführlich
Vorbereitung
Sinnvoll ist, einen Platz für die zu erstellende Datei zu haben (hier /tmp/RoheImages). Andernfalls:
mkdir /tmp/RoheImages
Weiter benötigt man noch einen Mountpoint (hier /mnt/cdfs), d. h. ggf.
mkdir /mnt/cdfs
( das folgende gefällt mir so nicht -- HenrykGerlach 2004-12-18 14:45:39)
ggf. die Datei /etc/fstab anpassen Dateisystemtyp für CDRW in iso9660 -> auto
oder ein neuer Eintrag:
/dev/cdrw /mnt/cdfs auto default,user,noauto,exec 0,0
Image erzeugen
erzeuge eine Datei, die Medien Größe hat (hier 650 MB):
dd if=/dev/zero of=/tmp/RoheImages/cdimage bs=1M count=650
diese Datei sollte später wieder aus dem System entfernt werden, sie könnte das /-Verzeichnis blockieren
und verbinde diese Datei mit einem Device:
losetup /dev/loop0 /tmp/RoheImages/cdimage
erzeuge nun hier ein Dateisystem (z.B. ISO9660 oder Ext2).
mkisofs -o /dev/loop0 # ISO-FS damit auch Dos+Win lesen können. # oder mke2fs /dev/loop0 # Damit ggf. die Datei-Attribute erhalten bleiben.
Es ist praktisch jedes DateiSystem möglich.
löse das Device von der Datei
losetup -d /dev/loop0
Bearbeitungs-Zyklus
Entweder man hat das Image wie oben beschrieben gerade erzeugt oder man muss es erst wie folgt auf die Festplatte kopieren (hier zeigt /dev/cdrw auf die Gerätedatei des Mediums):
cat /dev/cdrw > /tmp/RoheImages/cdimage
Jetzt kann man die Datei wie ein Diskettenimage mounten und bearbeiten:
mount -o loop /tmp/RoheImages/cdimage /mnt/cdrw ls /mnt/cdrw echo "Hallo Welt" /mnt/cdrw/Hallo.txt ...
Danach wieder unmounten:
umount /mnt/cdrw
Schließlich brennt man das Image wieder auf CD:
cdrecord dev=/dev/cdrw -v blank=fast # CD-RW löschen cdrecord dev=/dev/cdrw speed=10 driveropts=burnfree -v -eject /tmp/RoheImages/cdimage
prüfen, ob alles geklappt hat
Zum prüfen jetzt direkt die cdrw mounten:
mount /mnt/cdrw
Danach kann man das Image unter /tmp/RoheImages löschen.
als Befehlsfolge
Diesen Abschnitt erstmal ignorieren... anschliessend die ganze Prozedur am Stück:
# waere schön als bash, tut aber nicht # # CD-FS generieren # #! /bin/sh su cd /data/brennen dd if=/dev/zero of=cdimage bs=1M count=650 losetup /dev/loop0 cdimage # eines auswählen # mkisofs /dev/loop0 # Linux + M$ # mke2fs /dev/loop0 # Linux-ext2 losetup -d /dev/loop0 # cdrecord dev=/dev/hdc -v blank=fast # falls unbekannt cdrecord dev=/dev/hdc speed=8 driveropts=burnfree -v -eject cdimage # mount /mnt/cdfs mc / /mnt/cdfs ##
- Es fehlt noch das Kopieren des zu archivierenden Verzeichnisses in die Imagedatei.
Anmerkungen
- M$-FS tut gar nicht - unbekanntes FS, falscher Superblock ...
Wie ich man mkisofs verstehe, macht mkisofs /dev/loop0 was anderes: Es wird der Inhalt von /dev/loop0 als ISO-Image formatiert und nach stdout geschrieben. Ich habe es ausprobiert, und tatsächlich landet "Müll" in der Ausgabe (und zerschießt das Terminal). mkisofs ist also kein Formatprogramm wie mkfs.ext2 usw. Seltsam ist nur, dass /dev/loop0 als Pfad akzeptiert wird. JonesHamatoma
die Option -o hilft. -- HenrykGerlach 2004-12-18 14:45:39
mounten ext2 schreibt zwar richtig auf CD, lesen geht auch , eine Datei lost&found ist erkennbar, aber alles ist schreibgeschützt
Wenn Du schreiben willst, musst Du PacketWriting einsetzen. Etwws anderes geht bei CD-RW meines Wissens nicht. JonesHamatoma
-- -- KarlhannsSpiegel 2004-12-17 12:07:39
Es waer gut, wenn hier nicht mehrere Seiten den gleichen Text enthalten, siehe PacketWriting. Bitte aufraeumen. Ausserdem sollte eine Seite einen bedeutsamen Namen haben. Da es kein "CDFS" gibt, macht dieser Seitentitel hier wenig Sinn. -- ThomasWaldmann 2004-12-17 19:45:52
Stimmt. Anderseits "entwickelt sich das hier gerade". Werde die nächsten Tage mal Aufräuemen, wenn ich dazu komme. Gibt es einen Tag a la OffeneFrage um Seiten zu markieren die Aufgeräumt werden müssen (TidyUp)? -- HenrykGerlach 2004-12-17 20:03:19
Nein, man denkt sich diesen Tag einfach bei jeder seite dazu.