![克隆 HD、SSD 或 SD 卡是一种好的做法吗?](https://linux22.com/image/638978/%E5%85%8B%E9%9A%86%20HD%E3%80%81SSD%20%E6%88%96%20SD%20%E5%8D%A1%E6%98%AF%E4%B8%80%E7%A7%8D%E5%A5%BD%E7%9A%84%E5%81%9A%E6%B3%95%E5%90%97%EF%BC%9F.png)
如果需要创建多个相同的系统,克隆非常方便。但我有以下担忧。据我所知,在格式化文件系统甚至使用文件系统期间,坏的磁盘扇区可能会被文件系统标记为“坏”。克隆工具(如 dd 和类似工具)不会检查扇区质量,而是将所有扇区复制为与源介质上完全相同。如果我的这些假设有误,请纠正我。
我的问题是:
目标介质上是否存在坏扇区,但在克隆过程中不会被标记为“坏”,从而导致系统损坏或不稳定?
如果存在这样的风险,那么对于HDD,SDD,SD卡来说风险有多大?
最后,从各方面考虑,克隆才可以算是种好的做法吗?
如果答案众所周知,请将我引导至正确的信息来源,因为我无法在 Serverfault 或 Google 上找到令人满意的答案。谢谢。
答案1
在大多数情况下,生产驱动器不包含坏块,因为它们在第一次发生此类事件时就被丢弃了。这有一个合乎逻辑的原因:将硬盘的平均成本与专业系统管理员的平均工资进行比较。而且你甚至没有计算出该磁盘包含的数据的价值。
但如果我们看到假设的情况,即有坏块的驱动器可以保留在其专业的业务服务器环境中,那么也有可能处理这些情况。
正常情况下,硬盘上的坏块数量相对于没有问题的块数量来说只有少数。
有一些工具能够克隆磁盘映像,以处理坏扇区导致的读取错误。一个很好的例子是ddrescue
unix 世界中的工具。
克隆存在时发生坏块事件的风险。在我的职业生涯中,15 年内发生过 2 次。风险确实存在,但风险很低。您需要始终备份所有内容!
克隆通常是一件好事,尽管我克隆大部分不是通过块级复制,而是简单地重新格式化和文件级复制。(mke2fs
,然后cp -vfa
或tar -cvf - mountpoint/|nc targetserver
)。这可以处理坏块,并移动仅有的已使用的块。空块没有必要也进行复制,对于 SSD 系统来说,这甚至是一种非常糟糕的行为,因为它可能导致空签名的 SSD 块被零覆盖。
答案2
现代磁盘已将坏扇区重新映射功能内置于驱动器本身的逻辑中。这意味着文件系统中标记坏扇区的功能是过去的遗留物,不再有用。
这并不意味着您永远不会看到由于坏块而导致的读取错误。尝试从尚未重新映射的坏块读取将导致读取错误。在成功读取或覆盖数据之前无法进行重新映射。因此,一旦您将映像写入驱动器,目标驱动器上的坏扇区应该会再次变好(重新映射)。
并且源驱动器上标记为坏的块的数量通常为零或至少太小而不必担心。
由于这些原因,我不认为坏块是克隆磁盘时需要考虑的问题。
其他更重要的问题如下: - 目标磁盘是否足够大?即使根据官方规格大小相同的媒体,其内部也可能是不同的修订版本,因此大小略有不同。 - 任何软件是否会因为两个不同的文件系统具有相同的 ID 而感到困惑?
通过在介质末尾留出一些未分配的空间,可以避免与大小相关的问题。只有当您以后在同一台机器上使用两个克隆时,相同的文件系统 ID 才会成为问题。