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
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
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