Re: Seltsamer Effekt beim DVD-R brennen und wieder einlesen
Peter Funk <pf@artcom-gmbh.de> wrote:
> Guten Morgen,
> ich benutze ein selbst geschriebenes Bash-Skript, um regelmässig Daten
> auf DVD-R Medien zu archivieren. In diesem Skript erzeuge ich zuerst
> eine .iso-Datei mit dem Dienstprogramm mkisofs. Um sicher zu gehen,
> dass meine Daten auch korrekt auf dem Medium angekommen sind, mache
> ich in meinem Skript im Prinzip folgendes (Die Variable $IMAGE_NAME
> ist Name der Datei ohne die Endung .iso):
> ...
> # Checksumme der .iso-Datei berechnen:
> sha256sum $IMAGE_NAME.iso > $IMAGE_NAME.sha256
> # Brennen:
> growisofs -dvd-compat -Z /dev/dvd=$IMAGE_NAME.iso
> # Berechne Anzahl der wieder einzulesenden Bloecke:
> EXTENDS=$(( $(ls -l $IMAGE_NAME.iso | awk '{ print $5 }') / 2048 ))
> # Warten, bis sich das DVD-Laufwerk "beruhigt" hat:
> sleep 10
> # Medium einmal auswerfen:
> eject /dev/dvd
> # Medium gleich wieder einziehen:
> eject -t /dev/dvd
> # Medium wieder einlesen:
> dd if=/dev/dvd bs=2048 count=$EXTENDS \
> | sha256sum >${IMAGE_NAME}_DVD.sha256
> # Die beiden Checksummen vergleichen:
> SHA_ISO=$(cat $IMAGE_NAME.sha256 | awk '{ print $1 }')
> SHA_DVD=$(cat ${IMAGE_NAME}_DVD.sha256 | awk '{ print $1 }')
> if [ "$SHA_DVD" = "$SHA_ISO" ]
> then echo "DVD SHA256 Checksummen Vergleich war erfolgreich"
> ...
> else ...
> Das funktioniert soweit alles.
> Wenn ich aber das Öffnen und Schließen der Schublade mittels "eject"
> und "eject -t" weg lasse, dann funktioniert das Skript nicht mehr:
> Das nachfolgende 'dd' liest dann nur noch einen einzigen Block ein.
> Erst nachdem die DVD einmal ausgeworfen und wieder eingelegt wurde,
> gelingt das Wiedereinlesen und Überprüfen der DVD.
> Warum ist das so?
> Ist das möglicherweise ein Treiber-Problem?
> Wir haben das optische Laufwerk ausgetauscht. Daran lag es nicht.
Die anderen Brenn-Programme machen dies auch so, vermutlich aus dem
gleichen Grund.
Ich denke, die Laufwerke brauchen diesen Trigger, um das Medium neu
einzulesen, bevor sie Daten liefern.
S°
--
Sigmentation fault. Core dumped.
Reply to: