问题:
我有一张 SanDisk 128 GB Micro SD 卡,以前放在我的 Android 手机里。我首先注意到(在手机上),SD 上的相册有时可以正确打开,有时根本无法打开。所以我取出卡将文件备份到我的电脑上。当我安装它时,我可以列出并查看所有文件,有时我甚至可以复制一些文件,但大多数情况下,复制过程会冻结并最终出现错误:
Error splicing file: Input/output error
我尝试复制一个 wav 文件时,它总是失败,奇怪的是,我曾经成功播放了一半,但在尝试向前跳转时,它就卡住了。所以看起来有些文件没问题,有些文件不行,但有时似乎很随意。
我尝试过的:
- 我尝试将其安装在两台不同的计算机的两个不同的读卡器上,包括 Windows 和 Ubuntu,并使用标准拖放、cp 和 teracopy 进行复制,结果出现了相同的行为。
- 我已经在 Windows 中运行了 checkdisk,并打开了修复错误,但是它在一段时间后就结束了,没有任何输出,问题仍然存在。
- 我想尝试从 ubuntu 18.04 中的磁盘实用程序运行“检查/修复文件系统”,但该选项不可用(灰色)。我尝试在磁盘中卸载卡,但仍然无法运行检查/修复实用程序。
我已经安装了 testdisk 和 photorec,但尚未试用,因为它们似乎更适合恢复已删除的文件,而且我不确定如何(或者是否需要)将它们用于我的目的。另外,我可以将 Photorec 设置为恢复所有文件,而不仅仅是恢复特定文件类型吗?
问:有人知道发生了什么事吗?或者我该如何修复这个错误?说清楚一点,我并不想继续使用这张卡,只想恢复尽可能多的数据。
总结:我可以列出我的 Micro SD 上的所有文件,甚至可以读取某些文件的部分内容,但复制大量数据会因输入/输出错误而失败。
磁盘“sdm”的 fdisk -l:
Disk /dev/sdm: 119,1 GiB, 127865454592 bytes, 249737216 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
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/sdm1 32768 249737215 249704448 119,1G 7 HPFS/NTFS/exFAT
答案1
小心,那张卡正在死去,而你可能会让情况变得更糟。
如果你确实需要这些文件,请联系数据恢复公司,让他们来做他们的工作。这会很贵。
如果您可以承担风险,请制作ddrescue
卡的映像并处理只读映像而不是卡本身。ddrescue
旨在首先提取易于访问的数据,然后更努力地处理有问题(且风险更高)的扇区。如果它卡住了,加热或冷却卡可能会有所帮助。有时是温度起作用,有时是改变温度的过程。
获得映像后,尝试安装它并从中复制文件。此时您不应该收到读取错误,因为您现在正在从功能正常的设备读取,但某些文件可能已损坏,无法读取数据。
photorec
由于文件系统似乎可以运行,因此不需要文件雕刻工具。testdisk
也是不必要的,您的分区很好。
类似这样的工具chkdsk
不会有帮助,因为问题不只是文件系统损坏,硬件也是。尝试修复它只会给卡带来更多压力。chkdsk
如果从映像中恢复时遇到文件系统错误,则运行此操作是有意义的,但您应该在克隆卡而不是原始卡上执行此操作。