恢复后挂载ddrescue映像(在我的头上)


18

我在安装恢复映像时遇到问题。我试图以多种方式挂载映像。

quark@DS9 ~ $ sudo mount -t ext4 /media/jump1/1recover/sdb1.img /mnt
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so


quark@DS9 ~ $ sudo mount -r -o loop /media/jump1/1recover/sdb1.img recover
mount: you must specify the filesystem type

quark@DS9 ~ $ sudo mount /media/jump1/1recover/sdb1.img mnt
mount: you must specify the filesystem type

nautilus说它甚至没有提供有关我刚刚制作的文件的详细信息,它的容量为160gb。

quark@DS9 ~ $ file /media/jump1/1recover/sdb1.img
/media/jump1/1recover/sdb1.img: data


quark@DS9 ~ $ mmls /media/jump1/1recover/sdb1.img
        Cannot determine partition type

我不确定自己做错了什么,或者不确定我是否从一开始就错误地启动了此过程。我在下面概述了我已经完成的工作。我一无所知,如果有人为我提供帮助,我将不胜感激。

我从一开始就做了什么

我的笔记本电脑有两个硬盘驱动器。

其中一个具有Win7 / Linux Mint双启动系统文件。第二个包含我的/ home文件夹。

笔记本电脑震撼了,/ home磁盘损坏了。我尝试了LiveCD恢复,但失败了。甚至不会在安装了磁盘的情况下加载Live会话。所以我转向ddrescue。

quark@DS9 ~ $ sudo fdisk -l

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009fc18

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   112642047    56320000    7  HPFS/NTFS/exFAT
/dev/sda2       138033152   312580095    87273472   83  Linux
/dev/sda3       112644094   138033151    12694529    5  Extended
/dev/sda5       112644096   132173823     9764864   83  Linux
/dev/sda6       132175872   138033151     2928640   82  Linux swap / Solaris

Partition table entries are not in disk order

Disk /dev/sdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0002a8ea

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *          63   312576704   156288321   83  Linux

Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xed6d054b

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1              63  1953520064   976760001    7  HPFS/NTFS/exFAT
  • sda-内部160g,保存所有系统文件和所有计算机功能。
  • sdb-160g内部(破碎),包含大约140g我想恢复的数据。
  • sdc-1T外部,包含恢复映像。唯一有空间做所有这些事情的地方。

在此站点上,https://apps.education.ucsb.edu/wiki/Ddrescue

我使用此脚本创建了损坏的硬盘驱动器的映像。我将目的地更改为外部USB驱动器。

#!/bin/sh 

prt=sdb1
src=/dev/$prt
dst=/media/jump1/1recover/$prt.img
log=$dst.log

sudo time ddrescue --no-split $src $dst $log
sudo time ddrescue --direct --max-retries=3 $src $dst $log
sudo time ddrescue --direct --retrim --max-retries=3 $src $dst $log

一切似乎都顺利进行了:

quark@DS9 ~ $ sudo bash recover1 


Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued:         0 B,  errsize:       0 B,  errors:       0
Current status
rescued:   160039 MB,  errsize:    4096 B,  current rate:    35588 B/s
   ipos:      3584 B,   errors:       1,    average rate:   22859 kB/s
   opos:      3584 B,     time from last successful read:       0 s
Finished                   
12.78user 1060.42system 1:56:41elapsed 15%CPU (0avgtext+0avgdata 4944maxresident)k
312580958inputs+0outputs (1major+601minor)pagefaults 0swaps


Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued:   160039 MB,  errsize:    4096 B,  errors:       1
Current status
rescued:   160039 MB,  errsize:    1024 B,  current rate:        0 B/s
   ipos:      1536 B,   errors:       1,    average rate:       13 B/s
   opos:      1536 B,     time from last successful read:     1.3 m
Finished                       
0.00user 0.00system 3:43.95elapsed 0%CPU (0avgtext+0avgdata 4944maxresident)k
238inputs+0outputs (3major+374minor)pagefaults 0swaps


Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued:   160039 MB,  errsize:    1024 B,  errors:       1
Current status
rescued:   160039 MB,  errsize:    1024 B,  current rate:        0 B/s
   ipos:      1536 B,   errors:       1,    average rate:        0 B/s
   opos:      1536 B,     time from last successful read:     3.7 m
Finished                       
0.00user 0.00system 3:43.56elapsed 0%CPU (0avgtext+0avgdata 4944maxresident)k
8inputs+0outputs (0major+376minor)pagefaults 0swaps

从我站着的地方看,它运作良好。这是日志:

# Rescue Logfile. Created by GNU ddrescue version 1.14
# Command line: ddrescue --direct --retrim --max-retries=3 /dev/sdb1 /media/jump1/1recover/sdb1.img /media/jump1/1recover/sdb1.img.log
# current_pos  current_status
0x00000600     +
#      pos        size  status
0x00000000  0x00000400  +
0x00000400  0x00000400  -
0x00000800  0x254314FC00  +

我不确定如何进行。这是否意味着我所有的数据都丢失了?

感谢任何输入!


5
+1用于以清晰易读的方式提供大量详细的相关信息。
Scott Severance,2012年

Ubuntu Wiki上有一个很好的数据恢复页面:help.ubuntu.com/community/DataRecovery
Wilf

Answers:


7

我找到了解决方案,错过了这个感觉有点愚蠢。非常感谢你们的回应!

我检查了图像是否有错误,然后成功挂载了!

sudo fsck -y /dev/sda2/backup.img

它修复了错误,然后在以下方面没有问题:

sudo mount /dev/sda2/backup.img /mnt/recoverydata


4

这是我在类似情况下必须做的-以防万一有人像我一样偶然发现这个问题。

我的映像也不会挂载,生成相同的错误(错误的超级块)。但是,fsck也失败,并显示以下错误:

fsck from util-linux 2.20.1
e2fsck 1.42 (29-Nov-2011)
fsck.ext2: Superblock invalid, trying backup blocks...
fsck.ext2: Bad magic number in super-block while trying to open /mnt/download/rescue.img

The superblock could not be read or does not describe a correct ext2
filesystem.  If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>

阅读完DataRecovery(由Takkat提供的链接,谢谢!)之后,我尝试了以下操作,并且有效:

apt-get install sleuthkit
mmls /path/to/image

这产生了以下输出:

DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors

     Slot    Start        End          Length       Description
00:  Meta    0000000000   0000000000   0000000001   Primary Table (#0)
01:  -----   0000000000   0000000062   0000000063   Unallocated
02:  00:00   0000000063   2930272064   2930272002   Linux (0x83)
03:  -----   2930272065   2930277167   0000005103   Unallocated

然后,我将63乘以512得到32256并装入图像,如下所示:

mount -o loop,offset=32256 /path/to/image /mnt/temp

我希望这也会对其他人有所帮助。


2

除了塔卡特的答案外,我想提出另一种可能的方法。考虑到您的映像几乎可以肯定被损坏,因此某些数据可能无法通过数据恢复工具充分恢复。

SpinRite以不同的方式解决了这个问题。它不是对映像进行操作,而是对磁盘进行操作,以获取更多的数据,而普通工具无法恢复该数据。我用它来显着增加可恢复的数据量。如果幸运的话,以后您将可以正常安装磁盘足够长的时间以进行适当的备份。

不过,SpinRite确实有一个主要缺点。它花费相当多的钱。如果其他工具对您有用,那么比省钱。但是,如果您需要更多,SpinRite绝对值得一试。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.