Wie kann ich den Inhalt von UDF-formatierten CDs und DVDs zuverlässig archivieren?

922
nwaltham

Ich habe mich bemüht, den Inhalt alter CDs auf mobile Datenträger zu kopieren, um Platz zu sparen und den Inhalt zu erhalten, da wiederbeschreibbare CDs im Laufe der Zeit scheinbar nachlassen (zumindest die, die ich verwende). Ich habe mir dieses kleine Skript ausgedacht, das gut mit ISO9660-formatierten CDs funktioniert

#!/bin/bash echo "Reading Volume Information" SOURCECD=/dev/cdrw OUTPUTCDDIR=/workarea/tmp isoinfo dev=$SOURCECD || { printf "%b" "FAILED.\n" ; exit 1 ; } VOLUMEID=`isoinfo -d dev=$SOURCECD | grep "Volume id" --color=never | awk -F": " '{ print $2}'` || { printf "%b" "FAILED.\n" ; exit 1 ; } VOLUMESIZE=`isoinfo -d dev=$SOURCECD | grep "Volume size is" --color=never | awk -F": " '{ print $2}'` || { printf "%b" "FAILED.\n" ; exit 1 ; } LABEL=$VOLUMEID-$VOLUMESIZE OUTPUTDIR=$OUTPUTCDDIR/$LABEL if [ -d "$OUTPUTDIR" ]; then # Dir exists, mention that... echo "$OUTPUTDIR exists...exiting" exit 1; fi mkdir -p "$OUTPUTDIR" || { printf "%b" "FAILED.\n" ; exit 1 ; } OUTPUTISO=$OUTPUTDIR/image.iso echo "Copying ISO for $LABEL" dd if=$SOURCECD of="$OUTPUTISO" bs=2048 conv=sync || { printf "%b" "FAILED.\n" ; exit 1 ; } echo "Verify Structures for $LABEL" isovfy -i "$OUTPUTISO" > "$OUTPUTDIR"/verify-report.txt || { printf "%b" "FAILED.\n" ; exit 1 ; } file "$OUTPUTISO" > "$OUTPUTDIR"/file-report.txt || { printf "%b" "FAILED.\n" ; exit 1 ; } echo "Generating Metadata for $LABEL" md5sum -b "$OUTPUTISO" > "$OUTPUTDIR"/md5.sum || { printf "%b" "FAILED.\n" ; exit 1 ; } isoinfo -d -i "$OUTPUTISO" > "$OUTPUTDIR"/metadata.txt || { printf "%b" "FAILED.\n" ; exit 1 ; } isoinfo -l -i "$OUTPUTISO" > "$OUTPUTDIR"/ls-lrt.txt || { printf "%b" "FAILED.\n" ; exit 1 ; } eject $SOURCECD || { printf "%b" "FAILED.\n" ; exit 1 ; } 

Dies funktioniert gut mit ISO9660-formatierten CDs, schlägt jedoch (nicht überraschend) mit UDF-formatierten CDs und DVDs fehl. Hat jemand eine Idee von solchen Tools, die ich bauen kann, um ein ähnliches Skript für DVDs zu verwenden?

3

3 Antworten auf die Frage

0
kubanczyk

Das Standardwerkzeug ist

dvd+rw-mediainfo /dev/dvd 

Ich würde nicht erwarten, dass es mit CDs funktioniert. In diesem Fall muss man ein Skript erstellen:

cdrwtool ... -i 

Um das Dateisystem zu überprüfen, würde ich udffsck (aka fsck.udf) oder udf_test (von udfct) versuchen, obwohl ich mit beiden keine Erfahrung habe.

An dem Punkt, an dem Sie das isoinfo -ltatsächlich tun müsstenmount -t udf -o ro ... && ls -lrt && umount ...

0
toddkaufmann

ddist nicht die beste Methode zum Kopieren des Bildes und schlägt fehl, wenn ein Lesefehler auftritt.
Das mit Abstand beste Programm, das ich gefunden habe, ist dvdisaster .

Es wird nicht nur erneut gelesen, wenn Fehler auftreten,
sondern es kann auch eine Fehlerkorrekturdatei erstellt werden.
Außerdem wird ein Oberflächenscan-Diagramm erstellt
(wenn einige Bereiche länger dauern, um zu lesen, schlagen die Medien möglicherweise aus).

Selbst wenn Lesefehler vorliegen, .ecckönnen Sie das Image wiederherstellen, wenn Sie die Datei zuvor erstellt haben (und eine neue Kopie brennen).

Ich behalte immer noch die Ausgabe von dvd+rw-mediainfo /dev/dvdoder cdrecord -atip dev=/dev/cd(je nach Medium, um den Hersteller zu erhalten), plus .dvdisaster.logeine Liste mit Fehlern (für spätere Nachverfolgung und um zu sehen, ob eine Korrelation mit den Herstellern besteht).

Es gibt eine Reihe von CDs, die ich vor Jahren als "unlesbar" markiert habe und die dvdisastersich erholen konnte. Funktioniert auch auf Video-DVDs (zumindest die, die ich gebrannt habe).

Die Möglichkeit, einen Oberflächenscan durchzuführen, hängt von Ihren Hardwarefunktionen ab (neuere Laufwerke sollten damit umgehen?). Funktioniert für mich auf Ubuntu mit einem billigen (<20 USD, Optiarc 'DVD RW AD-7260S') internen Dual-Layer-Brenner. Unter OS X zwar kein Erfolg, aber das scheint eher eine Systemsoftware zu sein, die versucht, die Kontrolle über das Laufwerk zu übernehmen.

0
ZaB

readcd von wodim / cdrecord kann beliebige Blockgrößen verarbeiten und das unlesbare Volumen überspringen. Sie benötigen möglicherweise IOUSB-Treiber von developer.apple.com, damit es funktioniert.

Haben Sie eine Stromquelle für ein DVD-Laufwerk außerhalb eines USB-Kabels? DVD-Laser verbraucht mehr Strom als CD.

Auch ISO-Label-Lesetools werden offensichtlich nicht mit UDF umgehen ...