翻抽屉的时候找到一个大概 10 年前的金士顿 U 盘,尝试插进电脑,虽然分区正常,但已经不能正常读取文件,卷标、所有文件名、目录名全部变成乱码。
印象里可能储存了重要数据,遂尝试恢复。
Step 1:全盘拷贝
考虑到 U 盘的闪存芯片多半已岌岌可危,当务之急是尽快制造一个全盘的数据镜像,再做打算。
能全盘拷贝的工具很多,但这里需要的是一个能稳定读取可能有坏扇区的磁盘的工具。这方面最出名的应该是 GNU ddrescue。然而坏消息是 ddrescue 只支持 Linux。我在搜索 ddrescue 的替代 时还发现了 TestDisk 以及衍生软件 PhotoRec。遗憾的是,它俩虽然支持多平台,也支持各种分区格式和恢复分区表,但偏偏没有全盘拷贝的功能。
另一个更坏的消息是,我搜索了一下发现,Windows 实际上对损坏磁盘很不友好,在插入时就会尝试进行各种读取和写入,因此更有可能加剧损坏。我的结论是:不要用 Windows 做数据恢复,更不要把损坏 U 盘反复插入 Windows……
最后,我在 Linux Live ISO 里完成了对全盘的拷贝。好消息是,坏块非常少,不到 100 个(大约 400KB?)。

(上图来自网络,当时没截图)
Step 2:数据恢复
之后的流程就可以抛开 U 盘慢慢研究了。

我手头的数据恢复工具也不多,用过的拢共就 DiskGenius 和 FINALDATA 两个。DiskGenius 是从官网下载的免费版,支持扫描文件(但不能恢复);FINALDATA 是图吧工具箱附带的远古版:

DiskGenius 支持直接载入全盘镜像来读写,但 FINALDATA 因为年代过于久远,没有这么先进的功能了,只能想办法欺骗它这是一个磁盘。Windows 下有没有办法挂载一个镜像为虚拟磁盘呢?还真有的:ImDisk Toolkit。

(不过在写这个帖子的时候,我才知道 ImDisk Toolkit 已经停止开发了,原作者重新开了一个新项目,名为 Arsenal Image Mounter。)
总之,挂载上之后,就能直接恢复和读取文件了。
最后结果是,文件恢复得挺好,90% 的图片和视频都找回来了。可喜可贺,可喜可贺。(都是隐私内容,就不放图了……)
顺便问问各位朋友是否有恢复光盘的经验?我这里还有几个上世纪末的老碟片,伤痕累累,内容是视频,直接放进光驱里只能读取出一半视频,剩下一半都是文件格式错误,无法播放了。视频文件后缀是 .DAT,mediainfo 读出的格式是这样的:
General
Complete name : .\AVSEQ01.DAT
Format : CDXA/MPEG-PS
File size : 20.6 MiB
Duration : 2 min 1 s
Overall bit rate mode : Constant
Overall bit rate : 1 423 kb/s
Frame rate : 25.000 FPS
Video
ID : 224 (0xE0)
Format : MPEG Video
Format version : Version 1
Format settings : BVOP
Format settings, BVOP : Yes
Format settings, Matrix : Default
Format settings, GOP : M=3, N=15
Duration : 2 min 1 s
Bit rate mode : Constant
Bit rate : 1 170 kb/s
Maximum bit rate : 1 152 kb/s
Width : 352 pixels
Height : 288 pixels
Display aspect ratio : 4:3
Frame rate : 25.000 FPS
Standard : PAL
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.462
Time code of first frame : 00:00:00:00
Time code source : Group of pictures header
GOP, Open/Closed : Open
GOP, Open/Closed of first frame : Closed
Stream size : 16.9 MiB (82%)
Audio
ID : 192 (0xC0)
Format : MPEG Audio
Format version : Version 1
Format profile : Layer 2
Duration : 2 min 0 s
Bit rate mode : Constant
Bit rate : 224 kb/s
Channel(s) : 2 channels
Sampling rate : 44.1 kHz
Frame rate : 38.281 FPS (1152 SPF)
Compression mode : Lossy
Stream size : 3.23 MiB (16%)
不知道有没有办法恢复出剩下的视频?