View previous topic :: View next topic |
Author |
Message |
Goverp Advocate
Joined: 07 Mar 2007 Posts: 2167
|
Posted: Wed Mar 20, 2024 5:06 pm Post subject: Recover data from damaged DVD-RW |
|
|
A friend asked me if I could recover his home movie of a cruise, recorded on a mini DVD-RW (1.4GB) using a Sony handicam. Which he dropped. Which physically damaged the disk...
Side 2 looks OK, except when you squint and notice a nick about half way out, and with more care you can see a bit of delamination around the nick.
ddrescue and photorec between them recovered about 400 MB from this, as mpegs, so that's good.
Side 1 (the one with the maker's label) is worse; opposite the nick there's a large amount of delamination outwards to the edge of the disk. But the inner third looks undamaged. However, all the tools I can find stop as soon as they start, and swear blind the disk is only 2048 bytes long.
dvd+rw+mediainfo says:
Code: | INQUIRY: [HL-DT-ST][DVDRAM GH15F ][EG00]
GET [CURRENT] CONFIGURATION:
Mounted Media: 14h, DVD-RW Sequential
Media ID: TDK502sakuM3
Current Write Speed: 2.0x1385=2770KB/s
Write Speed #0: 2.0x1385=2770KB/s
GET [CURRENT] PERFORMANCE:
Write Performance: 2.0x1385=2770KB/s@[0 -> 716799]
Speed Descriptor#0: 02/716799 R@3.3x1385=4584KB/s W@2.0x1385=2770KB/s
READ DVD STRUCTURE[#10h]:
Media Book Type: 00h, DVD-ROM book [revision 0]
Legacy lead-out at: 716800*2KB=1468006400
READ DVD STRUCTURE[#0h]:
Media Book Type: 32h, DVD-RW book [revision 2]
Last border-out at: 2045*2KB=4188160
READ DISC INFORMATION:
Disc status: appendable
Number of Sessions: 1
State of Last Session: incomplete
"Next" Track: 0
Number of Tracks: 0
READ FORMAT CAPACITIES:
unformatted: 716192*2048=1466761216
00h(800): 716192*2048=1466761216
10h(10): 716192*2048=1466761216
15h(10): 716192*2048=1466761216
READ CAPACITY: 0*2048=0 |
which IIUC says either it's never been written, though the friend swears he recorded at least 15 minutes on BOTH sides.
My last attempt was to try "spacing over" whatever control guff the disk has, using as root:
Code: | ryzen ~ # ddrescue -n -i32Ki -s300Mi -d /dev/sr0 side2.iso side2.map
ddrescue: Can't start reading at pos 32Ki.
Input file is only 2Ki bytes long.
|
Is that a vain hope because the DVD reader hardware cannot be cirumvented, is the friend wrong and the other side has never been used, are there other tools, etc.?
I note with ignorance that the other side has a different media type: 13h, DVD-RW Restricted Overwrite - in full:
Code: | INQUIRY: [HL-DT-ST][DVDRAM GH15F ][EG00]
GET [CURRENT] CONFIGURATION:
Mounted Media: 13h, DVD-RW Restricted Overwrite
Media ID: TDK502sakuM3
Current Write Speed: 2.0x1385=2770KB/s
Write Speed #0: 2.0x1385=2770KB/s
GET [CURRENT] PERFORMANCE:
Write Performance: 2.0x1385=2770KB/s@[0 -> 716799]
Speed Descriptor#0: 02/716799 R@3.3x1385=4584KB/s W@2.0x1385=2770KB/s
READ DVD STRUCTURE[#10h]:
Media Book Type: 00h, DVD-ROM book [revision 0]
Legacy lead-out at: 716800*2KB=1468006400
READ DVD STRUCTURE[#0h]:
Media Book Type: 32h, DVD-RW book [revision 2]
Last border-out at: 2045*2KB=4188160
READ DISC INFORMATION:
Disc status: appendable
Number of Sessions: 1
State of Last Session: incomplete
"Next" Track: 1
Number of Tracks: 1
READ FORMAT CAPACITIES:
no media: 716192*2048=1466761216
00h(800): 716192*2048=1466761216
10h(10): 716192*2048=1466761216
15h(10): 716192*2048=1466761216
READ TRACK INFORMATION[#1]:
Track State: incomplete incremental,damaged
Track Start Address: 0*2KB
Next Writable Address: 678672*2KB
Free Blocks: 37520*2KB
Fixed Packet Size: 16*2KB
Track Size: 716192*2KB
READ CAPACITY: 0*2048=0 |
_________________ Greybeard |
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54572 Location: 56N 3W
|
Posted: Wed Mar 20, 2024 7:41 pm Post subject: |
|
|
Goverp,
Can you share the map file from the recovered side?
The thinking is like this ...
Fake a a mapfile for ddrescue that says that nothing is recovered but describes the space to be recovered.
Feed this fake mapfile to ddrescue so it does not try to read the media to determine anything about the media as its already in the mapfile.
Being lazy, I would make a copy of the mapfile you already have and edit that to describe one disk surface.
My memory of these disks it that they were turned over to use the second side. A bit like 8mm film was 16mm then split down the middle during processing. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
|
Goverp Advocate
Joined: 07 Mar 2007 Posts: 2167
|
Posted: Thu Mar 21, 2024 10:56 am Post subject: |
|
|
NeddySeagoon wrote: | ...
The thinking is like this ...
Fake a a mapfile for ddrescue that says that nothing is recovered but describes the space to be recovered.
Feed this fake mapfile to ddrescue so it does not try to read the media to determine anything about the media as its already in the mapfile.
... |
Sneaky! I like that - it's essentially what I was trying to do with the -i -s options, but that didn't work for the reasons above. So I need a fake map that marks out the first say 400 MiB or so, less a bit at the start; should be easy, and as you say, I have the mapfile for the other side for a starter. I'll give it a try. _________________ Greybeard |
|
Back to top |
|
|
Goverp Advocate
Joined: 07 Mar 2007 Posts: 2167
|
Posted: Thu Mar 21, 2024 1:55 pm Post subject: |
|
|
Tried this:
Code: | # Mapfile. Created by GNU ddrescue version 1.27
# Command line: ddrescue -n -d -b4096 -i8192 /dev/sr0 dvdside2.iso dvdside2.map
# Start time: 2024-03-21 13:45:51
# Current time: 2024-03-21 13:45:51
# Copying non-tried blocks... Pass 1 (forwards)
# current_pos current_status current_pass
0x00002000 ? 1
# pos size status
0x00000000 0x00001000 +
0x00001000 0x16CA7000 ?
0x16CA8000 0x7FFFFFFFE9357FFF + |
and with command line:
Code: | ddrescue -n -d -b$b -i$start /dev/sr0 dvdside2.iso dvdside2.map
|
where b is a blocksize is a multiple of 4 in the range 2000-4096, and start=b+b,
and got consistently
Code: | ddrescue: /dev/sr0: Unaligned read error. Is sector size correct? |
(Same result without specifying -i.)
I guess it was a good idea, but the DVD-ROM hardware is too smart to be fooled. _________________ Greybeard |
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54572 Location: 56N 3W
|
Posted: Thu Mar 21, 2024 5:27 pm Post subject: |
|
|
Goverp,
I thought the DVD physical block size was 32k. Or maybe 16k?
but the 2k logical block size was faked.
A long time ago I used DVD+RWs as big floppies. They only have a write like of about 1000 cycles, so writing is chunks smaller than the physical block size was a very bad thing.
Mounting RW was to be avoided too as the writing then clearing the dirty bit cost two writes.
Maybe that 32x/16k block size was a property of the UDF filesystem and not the media itself?
Mabe it was just too long ago :) _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
|
Goverp Advocate
Joined: 07 Mar 2007 Posts: 2167
|
Posted: Thu Mar 21, 2024 8:09 pm Post subject: |
|
|
Neddy, thanks for looking at this. I think we've reached the end of the road on this one:
The ISOBuster web site says the hardware does 32KiB sectors (actually even bigger, containing ECC coded stuff), but the interface maps that into 2KiB sectors, and there is no way to read the raw data.
Looking at that dvd+rw-mediainfo, it's very consistent with nothing ever having been written to this side of the disk - it's in sequential mode, and there are no tracks.
I tried finalizing the session with
Code: | growisofs -M /dev/sr0=/dev/zero |
and that told me I had to use "-Z" rather than "-M", which IIUC means no session has ever been written, so again, looks like this side has never been used, and my friend got confused. _________________ Greybeard |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|