我有一个损坏的磁盘,我需要从中复制一个 60G 的文件。
有时磁盘会重置,我无法完成复制。
我想尝试复制部分切片并将它们全部放在一起。
我怎样才能做到这一点?
答案1
使用ddrescue
,它是为此类场景设计的。
它使用日志文件来跟踪已成功复制或以其他方式复制的数据部分。因此,只要维护日志文件,您就可以根据需要多次停止和重新启动它。
答案2
使用dd
。
它可以做很多事情,但您需要以下形式:
dd if=<source> of=<destination> bs=<block size> count=<blocks> skip=<offset>
例如,要从文件中复制第 2 到第 4 KB,您可以执行以下操作:
dd if=in.dat of=out.dat bs=1K count=2 skip=2
鉴于您想要执行的具体操作,您还可以尝试添加conv=sync,noerror
:
dd if=in.dat of=out.dat bs=1K count=2 skip=2 conv=sync,noerror
使其noerror
在遇到错误时尝试继续,并sync
使其用零填充失败的块。因此,理想情况下,您会获得所需的文件,但无法读取的块为零。但是,这取决于您的硬盘实际上会做什么。有些硬盘在看到错误时就会关闭,然后您仍然无法获取数据。