这是 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
”——这样做会更好吗?
编辑我发现至少我的一些数据仍然在闪存驱动器上,通过使用下面的方法,并在 less 中搜索英文文本(例如“ 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”是空格,我想保留它)。在 less 中,您可以使用“/”进行搜索,类似于 Vim。
我怎样才能恢复我的数据(假设它仍然在那里)?如果只是分区表损坏,是否有标准的“分区恢复工具”?有没有办法在不删除所有内容的情况下“重新分区”?
答案1
可能需要在设备上运行 testdisk,听起来您的分区表可能已经弹出。Testdisk 应该能够恢复您的数据。
答案2
别担心,您的数据并没有丢失 --- 无论图形界面上显示的是什么,您关于磁盘未安装的说法都是对的。
您可以通过执行以下操作(以 root 身份)来挂载它,例如:
mount /dev/sdb1 /media/Patriot\ Memory
我思考指sdb1
的是你的 USB 记忆棒——它可能是sdc1
或sdd1
答案3
虽然可以重建分区表,但您首先应该做的是获取设备映像。您可以根据dd if=/dev/sdb of=~/memstick.img
需要更改路径来执行此操作。
完成后,运行相簿,应该能够提取其中的所有文件。如果您已获得所需的一切,请格式化该记忆棒并重新启动,如果没有,您可以尝试进一步的数据恢复。
答案4
救援是您需要的工具。根据您发布的输出,我认为您无法通过其他任何方式挽救分区表并访问数据测试磁盘ETC。
http://www.forensicswiki.org/wiki/Ddrescue
救援是一款数据恢复工具。它将数据从一个文件或块设备(硬盘、光驱等)复制到另一个文件或块设备,在发生读取错误时尽力挽救数据。
ddrescue 的基本操作是全自动的。也就是说,您不必等待错误、停止程序、阅读日志、以反向模式运行它等。
如果您使用 ddrescue 的日志文件功能,数据恢复将非常高效(仅读取所需的块)。您还可以随时中断恢复,稍后在同一点恢复。
Ddrescue 在输入中发现坏扇区时不会将零写入输出,并且不会在未要求时截断输出文件。因此,每次在同一个输出文件上运行它时,它都会尝试填补空白,而不会清除已挽救的数据。
如果您有文件、光盘等的两个或更多个损坏的副本,并且使用相同的输出文件对所有副本逐个运行 ddrescue,则您可能会获得完整且无错误的文件。这是因为不同输入文件的相同位置出现损坏区域的可能性非常低。使用日志文件,只会从第二个和后续副本中读取所需的块。