Accidentally dd'ed an image to wrong drive / overwrote partition table + NTFS partition start
I screwed up and set the wrong output for dd
when trying to copy a freenas ISO, overwriting the wrong external hard drive.
- External drive is only used for data storage, system is entirely intact
- Drive had a single NTFS partition filing the entire device (2TB WD elements)
- Drive is EFI GPT
- Drive was mounted at the time, with maybe a couple kB of data written/read after running
dd
- Drive is just a few months old and healthy (regular SMART / fs checks)
- I have not reboot the OS (crunchbang)
-
/proc/partition
still holds the correct information (and has been stored) - Have
dd
's output (records in / out / bytes) -
testdrive
did not find any partitions on quick or deep search - running photorec to recover the more important data (a couple recent plaintext files that hadn't been backed up yet). Vast majority of disk content (> 80%) is unnecessary media files.
- Have Windows available on a separate computer
My current plan is to let photorec do it's thing, then recreate the mbr with gparted and use cfdisk to create another NTFS partition using the sector information from /sys/block/.../. Is that a good course of action (that is, a chance of success)? Or anything else I should try first?
Possibly relevant information:
dd if=FreeNAS-8.0.4-RELEASE-p3-x86.iso of=/dev/sdc:
194568+0 records in
194568+0 records out
99618816 bytes (100 MB) copied
grep . /sys/block/sdc/sdc*/{start,size}:
/sys/block/sdc/sdc1/start:2048
/sys/block/sdc/sdc1/size:3907022848
cat /proc/partitions:
major minor #blocks name
** Snipped **
8 32 1953512448 sdc
8 33 1953511424 sdc1
current fdisk -l output:
WARNING: GPT (GUID Partition Table) detected on '/dev/sdc'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sdc: 2000.4 GB, 2000396746752 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdc doesn't contain a valid partition table
Solution 1:
You can recreate your partition table with:
sfdisk --no-reread /dev/sdc << EOF
unit: sectors
disk1 : start= 2048, size= 3907022848, Id=07, bootable
disk2 : start= 0, size= 0, Id= 0
disk3 : start= 0, size= 0, Id= 0
disk4 : start= 0, size= 0, Id= 0
EOF
It doesn't mean you'll be able to recover from your partition though, of course. But ntfsfix
might be able to help.