分区表损坏(USB闪存盘)


9

这是一个8 GB Patriot拇指驱动器,我已经广泛使用了大量数据。今天,它被检测到,但所有数据都消失了:编辑至少一些数据仍然存在,但分区表就没了)


编辑 @Sathya(谢谢)这里的相关输出来自sudo fdisk -l

Disk /dev/sdc: 8019 MB, 8019509248 bytes
247 heads, 62 sectors/track, 1022 cylinders
Units = cylinders of 15314 * 512 = 7840768 bytes

Disk /dev/sdc doesn't contain a valid partition table

看起来它是/ dev / sdc,具有8 GB ......并且没有分区表。

我试图挂载/ dev / sdc(然后dmesg | tail):

/media> sudo mount /dev/sdc mytmp
mount: wrong fs type, bad option, bad superblock on /dev/sdc,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

/media> dmesg | tail
[   24.300000]  sdc: unknown partition table
[   24.320000] sd 2:0:0:0: Attached scsi removable disk sdc
[   24.370000] usb-storage: device scan complete
[   26.870000] EXT2-fs error (device sdc): ext2_check_descriptors: Block bitmap for group 1 not in group (block 0)!
[   26.870000] EXT2-fs: group descriptors corrupted!
[   50.420000] unhashed dentry being revalidated: .DCOPserver_eeepc-brendanma__0
[   50.430000] unhashed dentry being revalidated: .DCOPserver_eeepc-brendanma__0
[   50.430000] unhashed dentry being revalidated: .DCOPserver_eeepc-brendanma__0
[ 5565.470000] EXT2-fs error (device sdc): ext2_check_descriptors: Block bitmap for group 1 not in group (block 0)!
[ 5565.470000] EXT2-fs: group descriptors corrupted!

编辑 @Col:来自testdisk的结果

Disk /dev/sdc - 8013 MB / 7642 MiB - CHS 1022 247 62
Current partition structure:
     Partition                  Start        End    Size in sectors

Partition sector doesn't have the endmark 0xAA55

在我击中之后[proceed],它说:

Structure: Ok.


Keys A: add partition, L: load backup, Enter: to continue

“结构:好的。” 似乎让人放心...将“A:添加分区”使我的旧数据可访问(如果它仍然存在),还是会创建一个新的,新的分区?

另一个选择是“ [ MBR Code ] Write TestDisk MBR code to first sector” - 这样做会更好吗?


编辑我发现至少我的一些数据仍在闪存驱动器上,使用下面的内容,并搜索更少的英文文本(如“the”):

cat /dev/sde | tr -cd '\11\12\40\1540-\176' | less

(驱动器从“/ dev / sdb”更改为“/ dev / sde”,因为我今天连接了一些额外的驱动器)。我已经知道“/ dev / sde1”将是第一个分区; 和“/ dev / sde”是整个驱动器。因为unix将这些设备视为文件,所以您可以使用它们上的所有普通unix文件命令cat,然后像处理任何其他数据流一样处理它们。在tr上述除去不可打印的字符(“\ 40”是空间,这是我希望保留)。更少,您可以使用“/”进行搜索,类似于Vim。

如何恢复我的数据(假设它仍在那里)?如果只有分区表被破坏,是否有标准的“分区恢复工具”?有没有办法“重新分区”而不删除所有内容?


@ChrisF答案不起作用......我无法在那里回复 - 所以我在这里(见问题的编辑)。
13

@ 13ren - 如果您在两个网站上使用相同的OpenID,则可以关联您的帐户。但是现在请发送电子邮件至team@superuser.com并要求他们进行协会。我在此期间合并了这两个问题。
BinaryMisfit

1
@ 13ren - 我知道你不能回应那里。我正在为主持人提供链接,以便他们找到问题。
ChrisF

谢谢ChrisF,抱歉我误解了。我按照你的建议发了一封电子邮件。@Diago感谢合并,我现在可以发表评论。我会再次给他们发电子邮件。
13

1
插入驱动器,并做一个sudo fdisk -l,你可以用输出更新帖子吗?
Sathyajith Bhat

Answers:


6

可能值得在设备上运行testdisk,听起来你的分区表可能已经流行了。Testdisk应该能够恢复您的数据。


@col感谢,但我没有testdisk -我想sudo testdiskman testdisk。我只是apt-get安装它,它检测到8GB的/ dev / sdc(添加到问题中)。我不想继续前进,直到我了解更多。
13年

@Col,我已经尝试过了,并将结果添加到了问题
2009年

如果你感到紧张,可能值得使用dd在你的硬盘上创建一个usb棒的图像,我认为这应该适用于一个无法安装的驱动器,因为它可以一点一点地复制。
Col

谢谢,这是个好主意!但是如何用dd复制文件?手册页谈到“文件”......哦,/ dev / sdc算作“文件”吗?所以我可以将整个/ dev / sdc复制到一个常规文件,如“ dd /dev/sdc mybackupfile
13ren

1
现在我已经获得了一些声望点,所以我可以投票给你!
13年

1

不用担心,您的数据没有消失 - 无论图形界面说什么,您都对未安装的磁盘表示正确。

您可以通过执行以下操作(以root身份)来安装它:

mount /dev/sdb1 /media/Patriot\ Memory

在那里我觉得sdb1是指您的USB记忆棒-这可能是sdc1sdd1


或者甚至sda1,取决于计算机的年龄(即,如果其中的硬盘是IDE的硬盘)
Matthew Scharley

@Michiel谢谢 - 但它说“坐骑:找不到媒介”。使用sdc1和sdd1给出“mount:特殊设备/ dev / sdc1不存在”,这让我觉得“sdb1”确实存在但是有些错误。它已经工作了几个月,而且我所知道的没有任何改变 - 所以我担心这是某种硬件故障
13

1

虽然可以重建分区表,但您应该首先拍摄设备的图像。你可以这样做dd if=/dev/sdb of=~/memstick.img- 根据需要改变路径。

完成后,运行PhotoRec,它应该能够提取那里的所有文件。如果您拥有所需的一切,请格式化并重新开始,如果没有,您可以尝试进一步的数据恢复。


1

ddrescue是您需要的工具。根据您从testdisk等发布的输出,我认为您无法以任何其他方式抢救分区表并访问数据。

http://www.forensicswiki.org/wiki/Ddrescue

ddrescue是一种数据恢复工具。它将数据从一个文件或块设备(硬盘,光盘等)复制到另一个,在读取错误时努力挽救数据。

ddrescue的基本操作是全自动的。也就是说,您不必等待错误,停止程序,读取日志,以反向模式运行等等。

如果使用ddrescue的日志文件功能,则可以非常有效地挽救数据(仅读取所需的块)。您也可以随时中断救援,并在以后同一时间恢复。

当Ddrescue在输入中找到坏扇区时,它不会向输出写入零,如果没有要求,则不会截断输出文件。因此,每次在同一输出文件上运行它时,它都会尝试填补空白,而不会消除已经获救的数据。

如果你有两个或多个损坏的文件副本,cdrom等,并且在所有文件上运行ddrescue,一次一个,使用相同的输出文件,你可能会获得一个完整且无错误的文件。这是因为在不同输入文件上的相同位置处具有受损区域的概率非常低。使用日志文件,只从第二个和后续副本中读取所需的块。

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.