Zerkratzte
Software-CDs für Bücherei retten
Zusammenfassung
In Öffentlichen Bibliotheken verliehene CDs mit Software
verschleißen vergleichsweise schnell. Büchereien können
aber Sicherheitskopien der CDs erstellen und somit die Nutzungszeit
verlängern. Dieser Artikel beschreibt ein Verfahren, um von einem
bereits ziemlich schlechten Original wieder eine brauchbare Kopie zu
generieren. Dieses kann dann zusammen mit dem Original ausgeliehen
werden oder nach Zerstörung des Originals dieses ersetzen.
Rechtliches
Ich bin kein Rechtsanwalt und kann daher keine formale Rechtsauskunft
erteilen. Folgendes ist der Kenntnisstand den ich als Laie
zusammentargen konnte:
Das deutsche Urheberrecht für Software gesteht jedem Benutzer eine
Sicherheitskopie zu, die immer zusammen mit dem Original verwahrt weden
muß. Es ist daher nicht erlaubt, nur die Kopie zu verleihen
während das Original in der Bibliothek verbleibt oder nur das
Original zu verleihen während die Kopie in der Bibliothek
verbleibt. Vielmehr ist es
notwendig, Kopie und Original wie einen 2-CD Satz zu behandeln, der nur
gemeinsam ausgeliehen und zurückgegeben werden kann.
Wenn das Original endgültig zerstört wird, darf die
Sicherheitskopie anstelle des Originals verwendet werden. Es darf dann
auch wieder eine Sicherheitskopie von der Sicherheitskopie erstellt
werden.
Die Story.
Ich leihe mir manchmal Computerspiele für meine kleine Tochter aus
einer ortsnahen öffentlichen Bücherei. Eine besonders
schöne etwas ältere CD war dermassen zerkratzt, daß
mein älterer Windows PC damit schier unerträglich geruckelt
hat. Ich kam auf die Idee, mit readcd
unter Linux eine Kopie
der CD zu erzeugen.
Dann habe ich mich bei einem Rechtskundigen (kein Rechtsanwalt)
erkundigt, ob das denn
legal sei und die Antwort war, daß nur der Besitzer der CD das
Recht hat, diese Sicherheitskopie zu erstellen, bzw. ihre Erstellung zu
beauftragen. Wenn
die Bücherei aber eine solche Sicherheitskopie erstellen
lässt, dann kann sie legal mit dem Original gemeinsam ausgeliehen
werden. Die Beauftragung zur Anfertigung einer Sicherheitskopie
muß nicht formal erfolgen.
Daraufhin habe ich die Bücherei per E-Mail kontaktiert und sie
darüber informiert, daß die CD in miserablem Zustand ist und
ich eine Sicherheitskopie erzeugen kann. Die Bücherei hat sich
über das engagement gefreut und mich beauftragt die Kopie
anzulegen.
Vorgehensweise
Das Programm readcd von
Joerg Schilling ist praktisch auf jedem Linux-Rechner vorhanden, denn
es ist Teil von cdrecord
mit dem CDs gebrannt
werden. Dieses Programm erlaubt es, den Inhalt einer CD auszulesen
wobei nicht lesbare Sektoren übersprungen werden. Aber bevor readcd einen Sektor aufgibt,
werden zuvor hunderte von Leseversuche gemacht, manchmal kann man den
Sektor auch beim 23. Versuch doch noch lesen.
Das resultierende Leseergebnis ist eine Datei im ISO9660-Format, die
anschließend mit cdrecord
wieder auf eine CD-R gebrannt werden kann.
Wahl des CD-Laufwerks
Ich habe mit 4 verschiedenen CD-Laufwerken versucht, die CD mit
möglichst wenigen Fehlern wiederherzustellen. Die beiden
CD-Brenner eigneten sich für diesen Zweck weniger. Mein SCSI
CD-ROM Laufwerk ergab die besten Resultate, obwohl es schon ein wenig
älter ist. Mit diesem Laufwerk zurückgelesen verblieben noch
10 nicht korrigierbare Sektoren.
Dann habe ich die Sektornummern dieser 10 Sektoren in eine Datei
geschrieben und diese 10 Sektoren nochmals mit einem anderen der vier
verfügbaren CD-ROM Laufwerke nochmals versucht. Erstaunlicherweise
konnten so nochmals 8 weitere Sektoren geretten werden, 2 Sektoren
waren weiterhin defekt. Offenbar bewähren sich also
unterschiedliche Laufwerke bei unterschiedlichen Arten von Kratzern.
Einfachster Fall
Nachfolgend beschreibe ich das Verfahren wenn CD-Leser und CD-Brenner
dasselbe Gerät sind.
- Als root
anmelden. Nachfolgendes greift auf die CD-ROM Hardware Ihres
Linux-Rechners zu und in einer Standardkonfiguration darf dies nur der
Benutzer root.
- cdrecord installieren.
Falls auf den Befehl "cdrecord" in der Linux Befehlszeile nur die
Fehlemeldung "command not found" erscheint, dann müssen Sie
cdrecord erst installieren.
- Bei SuSE: yast2
--install cdrecord
- Bei Debian: apt-get
install cdrecord
- readcd wird im
allgemeinen funktionieren sobald Sie Ihren Rechner so konfiguriert
haben, daß Sie auch CDs brennen können.
- Die Gerätekennung des CD-Brenners Finden. Dazu geben Sie den
Befehl cdrecord -scanbus.
Sie erhalten dann eine Kennung wie 0,0,0 oder 1,5,0 die Sie später
angeben müssen
- Die zerkratzte CD einlegen.
- Die zerkratzte CD auslesen:
readcd -noerror dev=0,0,0
retries=250 f=cd.iso
Dabei ersetzen Sie 0,0,0 durch die Gerätekennung aus cdrecord -scanbus
- Die CD wird nun gelesen, wobei jeder Sektor bis zu 250 mal
versucht wird. Das kann sehr lange dauern. Das Ergebnis der
Verarbeitung ist die Datei cd.iso.
- Die zerkratze CD entnehmen und einen CD-R Rohling einlegen.
- Die CD-R beschreiben: cdrecord dev=0,0,0 -data cd.iso
- Die Datei cd.iso löschen:
rm cd.iso
Label
Damit die CD-R in der Bücherei verwendet werden kann, habe ich
einen CD-Label ausgedruckt auf Papier Avery-Zweckform Nr. 6043. Um den
Label zu gestalten habe ich StarOffice 7 verwendet, aber das freie OpenOffice
geht sicherlich genausogut. Die Vorlagendatei CDLabel.sxd können Sie
herunterladen. Ich empfehle auf dem Label die Tatsache zu
vermerken, daß die Kopie gemeinsam mit dem Original
zurückgegeben werden muß und die Urheberrechtsvermerke des
Herstellers auch auf die Kopie zu machen.
Kombination mehrerer
CD-ROM Laufwerke
Nachfolgendes ist eigentlich nur was für Programmierer...
drive1=0,0,0
drive2=1,0,0
LANG=C readcd -noerror dev=$drive1 retries=250 f=cd.iso >readcd.log
2>&1
# CD ins andere Laufwerk einlegen
grep "Error on sector [[:digit:]]* not corrected" readcd.log |
sed "s/^.*Error on sector \([[:digit:]]*\).*/\1/" >sectors.txt
(
declare -i S
declare -i T
while read S; do
T=$S+1
echo $S $T
readcd dev=$drive2 -f=sector$S speed=1
retries=250 sectors=$S-$T
dd conv=notrunc of=cd.iso if=sector$S bs=2048 count=1 seek=$S
done
) < sectors.txt
# CD-R in drive1 einlegen
cdrecord dev=$drive1 -data cd.iso