![大文件读取错误](https://linux22.com/image/1275827/%E5%A4%A7%E6%96%87%E4%BB%B6%E8%AF%BB%E5%8F%96%E9%94%99%E8%AF%AF.png)
我有一个 MPG 文件,2.1 GB。我尝试将其从我的 Windows 计算机复制到 Linux 计算机。只有大约 1GB 的数据被复制(生成的文件播放正常),然后我收到读取错误。
因此,在源机器上,我尝试使用 RAR 将其拆分为多个文件。(我使用了“存储”模式)。它一直进行到 48%,rar 进程再次因“读取错误”而停止。
如果我使用源机器上的 VLC 打开 2 GB 的文件,我就可以快进到视频的后半部分并播放。
那么我该如何恢复整个视频呢?基本上,我想把文件分成两部分 - 比如说前 47% 和后 51%(假设通过剪切有问题的部分,错误就会消失)。我不知道该怎么做。任何帮助都值得感激。
编辑:
我有 cygwin,所以尝试了“split”命令(分成 100MB 的碎片)。但是,split 命令在文件的相关部分挂起(在创建 10 个文件后)。所以基本上,有没有办法以某种方式恢复文件的后半部分?
答案1
在 Unix 中,您可能可以使用该dd
命令,我也在某处看到过 Windows 实现。但是既然您已经提到了 cygwin,那么您应该已经有一个了dd
。
但由于仍不清楚硬盘驱动器上的错误位置,您可能能够或无法恢复更多文件。
您真正想要的是类似 cygwin 包的东西ddrescue
。与dd
此不同,它会忽略读取错误,但它的命令行语法不同,因此请阅读手册页。
答案2
获取一个名为 Drive Snapshot 的程序并使用它来创建硬盘的快照映像:
驱动器快照
http://www.drivesnapshot.de/
当在源磁盘上遇到读取错误时,Drive Snapshot 将智能地处理它,最终的结果是您将获得在磁盘上发生读取错误的位置有空白的视频文件。
我使用这个程序来为用户恢复数据。如果文件系统是 NTFS 或 FAT32,则默认选项是仅复制已分配的数据(尽管您也可以选择复制所有扇区,但您不需要此选项)。如果文件系统是 Drive Snapshot 无法识别的,那么它将只为您复制所有扇区。
稍后您可以使用该映像写入新的(替换)硬盘。如果新磁盘较大,Drive Snapshot 将为您提供增加分区大小以填充新磁盘的选项(但仅适用于 FAT32 和 NTFS 分区)。
或者,您可以直接将图像作为虚拟驱动器号安装,然后直接从那里复制文件。