• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gescheitert] Defekte CD retten

Hallo,

bedauerlicherweise habe ich eine CD mit Erinnerungsfotos nicht rechtzeitig umkopiert. Jetzt kann ich sie nicht mehr lesen.
Die CD dürfte 10-13 Jahre alt und mit Windows 98 oder XP gebrannt worden sein. Der PC und Brenner existieren nicht mehr.

Linux (DVD Laufwerk von 2013) zeigt eine leere CD an, ein XP Rechner (DVD Laufwerk von 2010) meldet defekte Sektoren.
Notfalls kann ich die CD einem Bekannten geben der noch einen XP Rechner mit einem alten CD read only Laufwerk hat.

Gibt es ein Linux Programm das fehlerhafte Sektoren ignoriert und den verfügbaren Rest liest?

Bei Heise habe ich ein Windows Programm gefunden H2CDimage. Ich habe das noch nicht ausprobiert. Aber so was in der Art für Linux wäre nicht schlecht.

Grüße
Georg
 
Hallo, Georg,

Kannst Du die CD mit 'dd' lesen?

Beispiel:

Devicenamen eruieren (CD darf nicht gemounted sein; falls nötig, 'umount' machen):
Code:
file -s /dev/sr*
Kopieren (angenommen die CD ist '/dev/sr0'):
Code:
dd if=/dev/sr0 of=<wohin>/cd_copy.iso
Das iso kannst Du jetzt "bearbeiten"... (z.B. Rechts-click auf iso, mit ark anschauen?)

Gruss,
Roland
 
Ich war unlängst in einer ähnlichen Situation und konnte zumindest ca. 75% der Daten einer völlig zerkratzen Bilder-CD wiederherstellen. Ich hatte dazu das genommen: http://www.cgsecurity.org/wiki/PhotoRec_DE

Herunterladen, entpacken und in der Konsole starten.
(Offenbar ist es für openSUSE auch in den Quellen enthalten: http://pkgs.org/search/?keyword=PhotoRec+)

Edit: Übrigens auch bei Heise gelistet: http://www.heise.de/download/photorec.html ;)
 
Hallo,

Danke für eure Tipps.
Zunächst zum Verfahren von Roland
RME schrieb:
Hallo, Georg,

Kannst Du die CD mit 'dd' lesen?

Beispiel:

Devicenamen eruieren (CD darf nicht gemounted sein; falls nötig, 'umount' machen):
Code:
file -s /dev/sr*
Kopieren (angenommen die CD ist '/dev/sr0'):
Code:
dd if=/dev/sr0 of=<wohin>/cd_copy.iso
Das iso kannst Du jetzt "bearbeiten"... (z.B. Rechts-click auf iso, mit ark anschauen?)

Gruss,
Roland

Ich habe dein Verfahren mit einer funktionierenden (als positiv Test) und der defekten CD ausprobiert.
Von der funktionierenden CD konnte ich ein ISO File erstellen, allerdings nicht mit arc öffnen. Es kam die arc Fehlermeldung "ignoring out of order file @...."

Bei der defekten CD erhalte ich
Code:
$ file -s /dev/sr*
/dev/sr0: ERROR: cannot read `/dev/sr0' (Input/output error)
$ dd if=/dev/sr0 of=cd_copy.iso
dd: Lesen von „/dev/sr0“: Eingabe-/Ausgabefehler
0+0 Datensätze ein
0+0 Datensätze aus
0 Bytes (0 B) kopiert, 1,15289 s, 0,0 kB/s

Jetzt gehe ich erst mal auf ein OpenAir Konzert, voraussichtlich am Montag werde ich die anderen Möglichkeiten ausprobieren.

Grüße
Georg
 
Dein Laufwerk erkennt zwar, daß ein Medium eingelegt ist, kann es aber auf Grund dessen Fehler nicht ansprechen.

P6CNAT schrieb:
XP Rechner (DVD Laufwerk von 2010) meldet defekte Sektoren
Starte dort ein Live-System, mit dem Du dann eine Image-Datei zu erzeugen versuchen kannst (oder kopiere jene Dateien, die sich kopieren lassen). Wiederhole gegebenenfalls diese Aktion auf anderen PC Deines Freundes- und Bekanntenkreises, sofern die CD dort angesprochen wird.

Ein ISO-Image kannst Du mit einem Programm wie ISO Master öffnen, oder Du hängst es als loop device ins Dateisystem ein.
 
Hallo,

ich habe es jetzt auf zwei Linux Rechnern probiert, aber die CD wird nicht gelesen.

Zur Zeit lasse ich h2cdimage.exe auf einem Windows PC laufen. Da tut sich was, aber das Programm springt sehr sehr langsam und anscheinend zufällig von Sektor zu Sektor. In knapp 2 Stunden hat er 2% der CD probiert und 0,2% gelesen.
Dann wäre er in 5 Tagen durch :???:

Grüße
Georg
 
Hallo Georg,

Dann wäre er in 5 Tagen durch :-?
...da bin ich etwas skeptisch (Du wohl auch)...

Ich habe gesehen dass es eine Linux Version gibt welche zudem einiges neuer ist. Vielleicht willst Du das testen?

H2cdimage für Linux
>>> http://www.heise.de/ct/hotline/H2cdimage-fuer-Linux-319048.html

The dvdisaster project
>>> http://dvdisaster.net/en/

Download dvdisaster
>>> http://dvdisaster.net/en/download.html

Ich habe die Source heruntergeladen und kompiliert; ging ohne Probleme.

Das Main-Window:



Ist auch ergiebig dokumentiert... hab's aber (noch) nicht gelesen.

Gruss,
Roland
 
Hallo,

ich habe das Recovery der defekten CD abgebrochen und auf demselben PC eine Gegenprobe gestartet.
Hier ein bisschen Statistik:

Defekte CD:
72529 Sektoren gesamt
364 Sektoren gelesen, das sind 0,5% und hat fast 5h gedauert
5,3 % hat das Programm erfolglos probiert.
Loop mount der iso Datei unter Linux scheitert an "unknown filesystem type"

Test CD (auch mit Fotos):
21040 Sektoren gesamt
21040 Sektoren in 3-4 Sekunden gelesen
Loop mount der iso Datei unter Linux funktioniert einwandfrei.

Resumé:
Anscheinend ist die defekte CD dermaßen hinüber, dass trotz vieler Leseversuche nur ~10% der Sektoren noch lesbar sind.

Ich werde es noch mit dvdisaster versuchen, auch auf anderen Rechnern. Aber meine Hoffnung schwindet, dass ich die CD retten kann. Damit habe ich wieder eine Lektion auf die harte Tour gelernt, CD's fangen nach ~10 Jahren an sich aufzulösen.


Grüße
Georg
 
RME schrieb:
Ich habe die Source heruntergeladen und kompiliert; ging ohne Probleme.

Ähhm, ich bin nicht soo Sattelfest mit dem compilieren :eek:ps:.
Hier meine Schritte:
Code:
$ ./configure
Bash based configure V0.56

Build environment: Linux, using settings: linux-std

Configuring package dvdisaster, version 0.72.

Checking for gmake: yes
Checking for gcc: yes
Source directory:  /home/georg/Downloads/dvdisaster/dvdisaster-0.72.4
Package name:  dvdisaster-0.72.4
Installation prefix:  /usr/local
Binary directory:  /usr/local/bin
Man page directory:  /usr/local/man
Documentation directory:  /usr/share/doc
Documentation sub directory:  dvdisaster-0.72.4
Locale directory:  /usr/share/locale
PHP bind mount directory:  /var/www/dvdisaster
Build root: none (this is what you normally want)

Looking for includes and libraries:
Gtk+ 2.6.0 is required...
 pkg-config... failed

Error message(s) from pkg-config were:
Package gtk+-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+-2.0' found

Make sure you have the following packages installed:
- pkg-config (sometimes, the obvious is overlooked ;-)
- glib2
- pango
- atk
- gtk2

Some Linux distributions (e.g. SuSE) distinguish between
end-user packages of the libraries (e.g. 'gtk2') and
versions suitable for building programs (e.g. 'gtk2-devel').
You might have to install the development versions explicitly
even if you have already GTK+ or Gnome applications running
on your system.

$ 
$  cat configure.log

Looking for includes and libraries:

/* *** REQUIRE_GTK2 */

$ rpm -aq | grep -i gtk2
libwx_gtk2u_xrc-2_8-0-wxcontainer-2.8.12-17.1.1.x86_64
gtk2-data-2.24.18-2.4.2.noarch
libwx_gtk2u_gl-2_8-0-stl-2.8.12-17.1.1.x86_64
libwx_gtk2u_adv-2_8-0-wxcontainer-2.8.12-17.1.1.x86_64
gtk2-theme-oxygen-1.3.1-2.1.1.x86_64
gtk2-immodule-thai-2.24.18-2.4.2.x86_64
libwx_gtk2u_html-2_8-0-stl-2.8.12-17.1.1.x86_64
gtk2-immodule-amharic-2.24.18-2.4.2.x86_64
libwx_gtk2u_core-2_8-0-stl-2.8.12-17.1.1.x86_64
libwx_gtk2u_core-2_8-0-wxcontainer-2.8.12-17.1.1.x86_64
libwx_gtk2u_aui-2_8-0-wxcontainer-2.8.12-17.1.1.x86_64
gtk2-immodule-vietnamese-2.24.18-2.4.2.x86_64
libwx_gtk2u_xrc-2_8-0-stl-2.8.12-17.1.1.x86_64
gtk2-tools-2.24.18-2.4.2.x86_64
gtk2-metatheme-adwaita-3.6.5-3.8.1.noarch
libwx_gtk2u_adv-2_8-0-stl-2.8.12-17.1.1.x86_64
gtk2-immodule-inuktitut-2.24.18-2.4.2.x86_64
libwx_gtk2u_html-2_8-0-wxcontainer-2.8.12-17.1.1.x86_64
libcanberra-gtk2-module-0.30-3.2.2.x86_64
gtk2-theming-engine-adwaita-3.6.5-3.8.1.x86_64
gtk2-branding-openSUSE-12.2-4.4.1.noarch
libwx_gtk2u_aui-2_8-0-stl-2.8.12-17.1.1.x86_64
gtk2-engine-oxygen-1.3.1-2.1.1.x86_64
gtk2 habe ich installiert. Braucht man dafür den Sourcecode oder genügt das Paket "gtk2-devel - The GTK+ toolkit library (version 2) -- Development Files"?

Grüße
Georg
 
Hallo P6CNAT,

P6CNAT schrieb:
Code:
Looking for includes and libraries:
Gtk+ 2.6.0 is required...
 pkg-config... failed

Error message(s) from pkg-config were:
Package gtk+-2.0 was not found in the pkg-config search path.
Dann führe doch erstmal ein:
Code:
zypper in pkg-config
aus um diese Abhängigkeit zu lösen.
Denn ohne diese Bibliothek kann der Vorgang gar nicht erst starten.

Lieben Gruß aus Hessen
 
Mhh,

Das Runtime Paket von pkg-config war schon da. Die Anderen die configure anmahnt übrigens auch.
Code:
# zypper in pkg-config
Daten des Repositories laden ...
Installierte Pakete lesen ...
'pkg-config' ist bereits installiert.
Kein Aktualisierungskandidat für 'pkg-config-0.27.1-2.1.1.x86_64'. Die neueste Version ist bereits installiert.
Paketabhängigkeiten auflösen ...

Keine auszuführenden Aktionen.
Grüße
Georg
 
Hier ist meine "./configure" Ausgabe:
Code:
> ./configure
Bash based configure V0.56

Build environment: Linux, using settings: linux-std

Configuring package dvdisaster, version 0.72.

Checking for gmake: yes
Checking for gcc: yes
Source directory:  /home/user0/RME/Work/Tmp2/xxx/dvdisaster-0.72.4
Package name:  dvdisaster-0.72.4
Installation prefix:  /usr/local
Binary directory:  /usr/local/bin
Man page directory:  /usr/local/man
Documentation directory:  /usr/share/doc
Documentation sub directory:  dvdisaster-0.72.4
Locale directory:  /usr/share/locale
PHP bind mount directory:  /var/www/dvdisaster
Build root: none (this is what you normally want)

Looking for includes and libraries:
Gtk+ 2.6.0 is required...
 pkg-config... works
 test preprocessing... works
 Checking for GTK+ version >= 2.6.0. Found version 2.22.1. Okay.

Checking for locale.h: yes
Checking for libintl.h: yes
Checking for cpuid.h: yes
Checking for libintl: no
Checking for libcam: no

Checking for functions and symbols...
 getopt_long: yes
 gettext: yes
 round: yes
 O_LARGEFILE in fcntl.h: yes

Checking byte order... little endian

Checking for additional tools...
 xgettext: present
 msgmerge: present
 msgfmt: present
 gdk_pixbuf_csource: present

Additional configuration options:
 with nls: yes
 with memdebug: no
 with efence: no
 with embedded-src-path: yes

Collecting source files:
 bitmap build closure crc32 crcbuf curve debug ds-marker dvdisaster ecc-rs01 ecc-rs02 endian file galois help-dialogs heuristic-lec icon-factory large-io l-ec logfile maintenance main-window md5 medium-info memtrack menubar method misc preferences print-sense random raw-editor raw-sector-cache read-adaptive read-adaptive-window read-linear read-linear-window recover-raw rs01-common rs01-create rs01-fix rs01-verify rs01-window rs02-common rs02-create rs02-fix rs02-verify rs02-window rs-encoder scsi-freebsd scsi-layer scsi-linux scsi-netbsd scsi-unknown scsi-win32 show-manual smart-lec spiral udf welcome-window

Collecting methods:
 rs01 rs02

Configuring the tools ... OK

Configuration is complete.
Type 'make show' to verify the settings,
or enter 'make' to start the build immediately.

>

und hier das "make"
Code:
> make
Compiling: method-link.c
Compiling: bitmap.c
Compiling: build.c
Compiling: closure.c
Compiling: crc32.c
Compiling: crcbuf.c
Compiling: curve.c
Compiling: debug.c
Compiling: ds-marker.c
Compiling: dvdisaster.c
Compiling: ecc-rs01.c
Compiling: ecc-rs02.c
Compiling: endian.c
Compiling: file.c
Compiling: galois.c
Compiling: help-dialogs.c
Compiling: heuristic-lec.c
Compiling: icon-factory.c
Compiling: large-io.c
Compiling: l-ec.c
Compiling: logfile.c
Compiling: maintenance.c
Compiling: main-window.c
Compiling: md5.c
Compiling: medium-info.c
Compiling: memtrack.c
Compiling: menubar.c
Compiling: method.c
Compiling: misc.c
Compiling: preferences.c
Compiling: print-sense.c
Compiling: random.c
Compiling: raw-editor.c
Compiling: raw-sector-cache.c
Compiling: read-adaptive.c
Compiling: read-adaptive-window.c
Compiling: read-linear.c
Compiling: read-linear-window.c
Compiling: recover-raw.c
recover-raw.c: In function ‘ResetRawBuffer’:
recover-raw.c:186:18: warning: operation on ‘rb->bestFrame’ may be undefined
Compiling: rs01-common.c
Compiling: rs01-create.c
Compiling: rs01-fix.c
Compiling: rs01-verify.c
Compiling: rs01-window.c
Compiling: rs02-common.c
Compiling: rs02-create.c
Compiling: rs02-fix.c
Compiling: rs02-verify.c
Compiling: rs02-window.c
Compiling: rs-encoder.c
Compiling: scsi-freebsd.c
Compiling: scsi-layer.c
Compiling: scsi-linux.c
Compiling: scsi-netbsd.c
Compiling: scsi-unknown.c
Compiling: scsi-win32.c
Compiling: show-manual.c
Compiling: smart-lec.c
Compiling: spiral.c
Compiling: udf.c
Compiling: welcome-window.c
Linking  : dvdisaster
Updating cs.po
Updating cs.mo
Updating de.po
Updating de.mo
Updating it.po
Updating it.mo
Updating pt_BR.po
Updating pt_BR.mo
Updating ru.po
Updating ru.mo
Updating sv.po
Updating sv.mo
Compiling: codec.c
Compiling: decimate.c
Compiling: md5.c
Compiling: memory.c
Compiling: pngio.c
Compiling: pngpack.c
Linking  : pngpack
Unpacking images (may take a while) ... common cs de en ru - done
>

-/-
 
http://software.opensuse.org/package/dvdisaster?search_term=dvdisaster

Aber es wird Dir wohl nichts nützen:
[url schrieb:
http://dvdisaster.net/en/[/url]"]dvdisaster can not make defective media readable again. Contents of a defective medium can not be recovered without the error correction data.
 
Du benötigst noch 'gtk2-devel' (enthält 'gtk+-2.0.pc')

josef-wien schrieb:
Aber es wird Dir wohl nichts nützen:
http://dvdisaster.net/en/ schrieb:
http://dvdisaster.net/en/ hat geschrieben:
dvdisaster can not make defective media readable again. Contents of a defective medium can not be recovered without the error correction data.
Die CD bleibt natürlich so wie diese ist (nämlich unleserlich). Aber, mit der "error correction data" kann (hoffentlich) ein readable Image erzeugt werden.

-/-
 
Hallo zusammen,

ich habe gleich das fertige Paket installiert auf das josef-wien verweist :thumbs: und lasse es gerade mit der defekten CD laufen.

josef-wien schrieb:
http://software.opensuse.org/package/dvdisaster?search_term=dvdisaster

Aber es wird Dir wohl nichts nützen:
[url schrieb:
http://dvdisaster.net/en/[/url]"]dvdisaster can not make defective media readable again. Contents of a defective medium can not be recovered without the error correction data.

Sehr wahrscheinlich ist nichts mehr zu machen. Immerhin ist dvdisaster viel "geschwätziger" als h2cdimage, sagt, dass es sehr lange dauert und hat gleich mal etliche Sektoren übersprungen. Die Geschwindigkeit misst er schon gar nicht. Bin gespannt.

Hier nun das Ergebnis nach 4-5 h:
DVdisaster.jpg

Die CD hat sich aufgelöst. Immerhin habe ich bei der Aktion einige neue Sachen gelernt :)

Grüße
Georg
 
Oben