我在外部硬盘 (不是 SSD,而是磁盘) 上备份了一堆目录。
备份仅保存在单个磁盘上(是的,我知道,一个带有副本的额外硬盘是个好主意;但目前情况并非如此)。此外,磁盘上没有文件的双重副本。
HDD 的可用空间(选项 1)比我的文件占用的空间大得多(选项 2)比我的文件占用的空间小(但仍然是一个不错的数量)
我将光盘放在原包装中:塑料袋,类似“鸡蛋纸盒”的包装纸,塑料盒内。光盘放在我家的一个房间里,盒子从未暴露在阳光或雨水中等。
我的问题是:我是否应该定期对磁盘进行某些操作以最大程度地延长数据寿命?例如,将所有内容读到其他地方,或读写回来,或以某种方式重新调整磁盘上数据的物理位置,甚至摇动磁盘,更改其物理位置,打开电源而不执行任何操作等。我希望对我描述的两种可选方案都有答案。
笔记:
- 我不想将这个问题具体到某个品牌的硬盘上,但如果你必须知道的话——这是东芝 STOR.E basics 750 GB 硬盘。不是我的选择,我只需要使用它。
- HDD 的手册没有提及这个问题。
- 备份代表这些文件夹过去某个时间的状态。假设保持此状态原样很重要,并且不存在相同数据的“主副本”。
- 虽然这可能与问题无关,但如果这些文件丢失,也不会造成灾难性的后果,我只是想增加预期的寿命。
- 即使我在两个硬盘上有两个副本,问题仍然同样重要:我应该对它们分别进行什么样的维护操作?
答案1
由于这里大多数发帖人似乎都忽略了这一点,因此我建议使用这篇优秀的帖子来回答你的问题的具体内容,应使用什么介质进行长期、大量数据存储(档案)?作为指南。我不会重新引用那里的参考资料和研究,因为他做得非常出色,阅读整篇文章比阅读本案例的摘要更好。
限制自己只将一个硬盘放在冷库(离线)中,在给出的两个选项中,你应该每隔几年或大约几年连接一次驱动器并启动它。这样做的最大原因是防止主轴润滑脂硬化和卡住。主轴润滑脂将要随着时间的推移,润滑脂会逐渐变硬,偶尔旋转磁盘可以显著延迟这种可能性。如果你想了解润滑脂对硬盘驱动器的重要性,可以看看硬盘驱动器电机制造商 Minebea 在研究润滑脂方面所付出的努力。本报告。
当磁盘连接时,您也可以运行一些 SMART 诊断程序来查找电子设备、硬件或盘片即将发生故障的迹象。尽管根据 FAST'07 上提出的研究,谷歌和卡内基·梅隆大学{当年获得“最佳论文奖”},SMART 测试可能表明失败,但“通过”测试可能并不表明身体健康。尽管如此,检查一下也不会有什么坏处。是的,这是一项古老的研究,但似乎没有人用任何新的东西来取代它。
让驱动器运行一段时间并访问数据也会恢复保存数据的磁场强度。一些人认为,根据大量传闻证据,这没有必要,但现有的研究似乎表明磁场减弱是可能的。我介绍了威斯康星大学麦迪逊分校的三篇论文:奇偶污染,数据损坏, 和磁盘指针损坏读完这些内容后,您可以判断他们的结论对您的数据有多大威胁,以及值得付出多少努力来防止这种威胁。
建议的策展程序
我不知道您使用什么操作系统、您拥有或喜欢什么工具,也不知道您选择什么文件系统。因此,我的建议只是通用的,允许您选择最适合您的配置和偏好的工具。
首先是存储设置。在将文件保存到硬盘之前,先创建它们的存档。这并不意味着压缩,也不意味着避免压缩。选择一种可以为您提供错误恢复或“自我修复”能力的存档格式。不要创建一个庞大的存档,而是将属于同一类的东西存档起来,创建一个存档库。如果您选择压缩,请确保它不会干扰错误恢复能力。对于大多数音乐、视频、电影和图片格式,进行压缩是没有意义的。这些文件格式已经压缩,尝试压缩它们很少会节省空间,有时会产生更大文件,而且会浪费您的时间和 CPU 能力。不过,还是将它们存档以进行上述错误恢复。然后使用您选择的摘要算法为每个存档文件创建一个校验和。这里的问题不是安全性,只是对文件的完整性检查,因此 MD5 应该足够了,但任何方法都可以。将校验和的副本与存档文件一起保存,和在同一硬盘的第二个位置 - 可能是用于存放校验和总集合的专用目录。所有这些都保存到磁盘中。接下来,也是非常重要的一点,还要在该硬盘上保存您用于创建校验和和恢复档案的工具(如果您使用了压缩,还要解压缩它们)。根据您的系统,这可能是程序本身,也可能是它们的安装程序。现在您可以按照自己的选择存储硬盘。
其次是存储。目前的硬盘驱动器可以合理地防止物理冲击(摇晃和弹跳冲击),但推动它也没有意义。按照你在问题中提到的方式存储它。我想补充一点,尽量避免它可能受到电磁力影响的区域。例如,不要和你的断路器面板放在同一个封闭的地方,也不要在你的 HAM 收音机上面。几英里外的闪电是你无法避免的,但吸尘器和电源是可以避免的。如果你想要极端一点,那就给它买一个法拉第屏蔽或法拉第袋。你的两个建议要么毫无意义,要么很糟糕。在存储时改变它的物理位置不会影响任何重要的事情,而摇晃它可以造成损坏,因为大多数驱动器都具有良好的 G 冲击保护,所以不应该如此,但这是可能的。
最后是定期措施。按照您选择的时间表(例如,每年或每两年一次),将其从存储中移除并重新连接到计算机。运行 SMART 测试,并实际读取结果。当 SMART 结果显示您应该更换磁盘时,请准备好更换磁盘,不是“下次”,而是“这次”。在连接时,检查所有存档文件的校验和。如果任何文件未通过检查,请尝试使用存档格式的错误恢复功能来恢复该文件,重新创建存档及其校验和并重新保存。由于您还给出了选项 2,即有“大量”可用空间,请将存档复制到新目录,然后删除原始文件。简单地“移动”它们可能根本不会移动它们。在许多较新的文件系统上,移动文件将更改其列出的目录,但文件内容将保留在原处。通过复制文件,您可以强制将其写入其他位置,然后您可以通过删除原始文件来释放空间。如果您有许多存档文件,则没有一个文件大到可以填满硬盘上的可用空间。验证或恢复所有文件并移动任何文件后,恢复您的包装并将其放回存储中,直到下次使用。
需要注意的额外事项。当您升级系统或更糟糕的是切换到不同的操作系统时,请确保您仍然能够在新配置中读取该硬盘。如果您有任何非纯文本的内容,请确保您不会失去读取保存的文件的能力。例如:MS-Word 文档可以包含以一种格式创建的方程式,但较新的版本无法读取这些方程式。请参阅这正是这个问题。然而,Word 并不是唯一可能造成麻烦的来源,即使是开源格式也不能保证你的数据是面向未来的。要了解这个领域的重大失误,请阅读失败的数字末日审判书项目。随着新技术的出现,请考虑更新您的收藏。如果您的电影保存为 AVI 文件,并且您更喜欢 MKV,请转换它们。如果您有文字处理文档并升级了程序,请以新格式重新保存已存档的文档。
答案2
从专业角度来看,您的选择是:
- 祈祷。
- 在多个设备上制作多个副本。
在您的“选项 1”(更多空间)中,您可以通过在同一硬件上制作多个副本来稍微增加成功率,但事实是硬件发生故障,导致整个磁盘无法读取的情况屡见不鲜。单一副本并不是可行的备份策略。
我不清楚这是否是实际备份(主设备上的文件)或存档(从主设备中删除的文件)。如果您关心存档情况,则额外的副本更为重要 - 在备份情况下理论上有一个主要副本,因此在您完全倒霉之前,您必须至少经历两次失败。
答案3
如果你有更多的自由空间比备份数据使用- 你的选项1在问题中 - 或者如果你有数据的多个副本,我有一个想法可以“做某事”;如果你认为 SpinRite 真的有助于硬盘“维护”和/或想要完全覆盖然后重写每一点数据,那么这就行了。
不管你应该做点什么还是不做,我不太确定……比特腐烂或数据降级似乎确实存在,而且诸如超级用户的这个和serverfault 上的这个似乎建议备份或者可能是纠错或容错 RAID(但对于仅单个硬盘,我会选择多个备份和哈希/CRC 检查,而不必担心如果 RAID 发生故障该怎么办)。
我倾向于更简单、更懒惰的“什么都不做”的方法,但以下至少是一个好方法“确保我每年仍能读取一次我的数据,并且也可以重写它”主意。
Linux DIY 模拟一些 SpinRite 维护功能
很多人似乎相信 SpinRite 确实有效,但它不是免费的,而且我运行的是 Linux,所以我听过 Steve Gibson 的SpinRite 如何工作?视频中他表示,SpinRite 现在所做的事情之一是:
- 读取整个驱动器
- 翻转并写入数据
- 再次阅读
- 将位翻转并写入
- 再次阅读
如果驱动器发现任何(小)问题,这应该“诱导驱动器本身将坏扇区与好扇区交换。”
你应该多久做一次?史蒂夫说“没有人真正知道频率是多少,但每隔几个月就足够了”。我只是猜测每 6 个月或每年左右一次。
badblocks
阅读/翻页/阅读/翻页的过程听起来几乎和badblocks
当它使用它的写入模式测试(-w
选项)时,它不会真正“位翻转”您的数据,但会破坏性地写入、读取和翻转分区上的所有位:
使用此选项,badblocks 通过在设备的每个块上写入一些模式(0xaa、0x55、0xff、0x00)、读取每个块并比较内容来扫描坏块。
并非巧合的是,这些模式以二进制表示为:10101010、01010101、11111111、00000000。
因此 badblocks 可以非常彻底地写入、读取和翻转位,而且它也是免费的。如果您已经mke2fs
运行 badblocks(使用badblocks -cc
),它将保存坏块列表,以便 ext2/3/4 可以避开它们(如果发现任何坏块)。
缺点是 badblocks 的写入测试 破坏性的,所以你需要至少两个分区为了使其工作(保存并写回您的数据)。
- 在硬盘上保留两份数据副本,每个不同的分区!。
这样,您就可以用 10、01、11、00 覆盖单个分区上的每一位,如果出现坏区,您的恢复机会将加倍。并为您的数据文件保留一个校验和/哈希列表,如 CRC32 或 MD5(尽管与 CRC 相比,MD5/SHA 非常慢,并且 CRC 不应错过随机错误) - 每隔几个月:
- 阅读您的备份副本并验证它仍然与校验和/哈希值匹配。
- “伪”位翻转分区与
badblocks -w
或mke2fs -cc
(只有一个分区,不要覆盖所有数据,只需一份副本!) - 将数据复制回刚刚翻转的分区
- “伪”位翻转另一个分区(尚未翻转)
- 将数据复制回刚刚翻转的分区
这类似于重新格式化并复制数据,但快速/标准格式通常不会写入每个扇区,因此您可能最终不会更改/翻转许多位
最好的解决方案永远是多台设备上的多个副本。
我读到过光学介质可以读取 10 年、20 年,甚至 50 多年,而且两个相同的磁盘/ISO 可以容纳gddrescue
(见下文)。
云存储通常免费提供几 GB 的文件,在那里存储文件(可选择加密)可能是一个好主意,尤其是当文件数量不断增加时。
此外,将文件保存在纠错档案中可能如果出现任何错误,这确实会有所帮助,但丢失一百万个文件中的其中一个文件可能不如丢失一百万个文件的整个存档那么糟糕。如果有任何单独的纠错软件,如 ECC-CRC,那可能会有所帮助,但我不知道有任何软件,而且额外的数据副本会更好。
顺便提一下,SpinRite 也“非常努力地”从硬盘坏扇区读取数据,从不同的方向和速度读取,这听起来也非常类似于gddrescue
,以防(或当)您在读取数据时遇到麻烦。 gddrescue 还可以从两份有错误的数据并希望将其拼凑成一个完整的好副本,我很想用制作两个(或更多)相同的数据分区副本dd
,但是如果 badblocks 确实发现任何坏扇区,您就无法避免它们,因为它会更改相同的副本。
答案4
无需进行维护无论如何。重新连接驱动器并启动它比让它持续运行的风险更高,而且比让它在盒子里睡觉的风险要高得多。因此,经常检查它实际上会增加损坏的可能性。
如何存储非常棒,但别忘了温度。不要太过分。您到底用什么作为备份驱动器?有些驱动器比其他驱动器耐用得多。
你可以做的事情,因为你确实有足够的空间,正如你所说,在 HDD 上制作相同数据的两个副本。如果出现坏扇区,您就没事了。据我所知,目前大多数驱动器的扇区损坏发生在驱动器的开头(前几个 GB),但这主要是由于操作系统(不是您的情况)。通常,坏扇区在大多数情况下最初会聚集在一起,因此在同一驱动器上拥有两个数据副本确实有帮助。
如果您只有几个关键文件,最好将它们保存在其他地方,以防万一。制作一个加密档案并将其放在棒子上或交给您信任的人。