我有几个大磁盘,上面有备份/存档材料。他们是外部4。对于那些将存储几年而无需再次读取整个光盘的磁盘,我一直在考虑一种刷新磁盘磁性状态的方法。驱动器的保质期似乎在我一直在寻找答案的地方都是一个争论的问题,但似乎在存储几年(比如 5 左右)之后,以某种方式刷新数据是明智的(? )
我看过这个建议:
dd if=/dev/sda of=/dev/sda
安全吗?有用吗?
我想做的是除了 afsck
或 a之外的另一件事dd if=/dev/sda of=/dev/null
,两者都可能会发现磁盘上现有的磁性丢失。
我想要做的是在磁盘上的磁电荷降低到可读水平以下之前刷新磁性数据。我怎样才能做到这一点?
答案1
一般来说,如果不读取/写入全部磁盘,您就无法真正刷新整个磁盘。fsck
不太可能提供您需要的东西 - 它与文件系统不是底层设备,因此它主要只是扫描文件系统元数据(索引节点和其他文件系统结构)。
badblocks -n
可能是一个选项dd if=X of=X
。在任何情况下,您可能希望使用大块来加快速度(对于dd
类似bs=16M
、 for badblocks
this 的内容-b 16777216
,或者-b $((1<<24))
在合理的 shell 中)。您可能还想使用conv=fsync
with dd
。
至于dd
使用相同输入和输出设备的安全性 - 它从输入读取块并将其写入输出,所以它应该是安全的(我已经多次重新加密这样的加密分区,通过使用相同的底层设备和不同的密码,然后dd
从一个到另一个) - 至少对于某些类型的物理介质:例如叠瓦驱动器它是 100% 防故障的,这对我来说绝对不是显而易见的。
答案2
我不知道如何使用 *nix 中的任何本机工具来执行此操作,但我多年来所做的事情是运行一个名为 Spinrite 的产品GRC.com。
它有几种模式,其中一种是通过运行每个扇区来刷新表面/数据,反转每个位的状态几次,然后将其恢复到原来的状态。
我每年都会在我的驱动器上这样运行几次,并不是我想大声说出来,而是我觉得我的硬盘驱动器很少有问题,而且还不少。
它的成本约为 80-90 美元 IIRC,但该成本是相对的,具体取决于您认为数据对您的价值。