在挂载时使用 dd 克隆磁盘 - 风险?

ale*_*ity 7 dd cloning

我想使用 dd 克隆硬盘。因为我想让机器上的进程持续处于活动状态,所以我想在文件系统仍处于挂载状态时执行此操作。我知道这不是做到这一点的“理想”方式,但从谷歌搜索来看,这也是可能的。

克隆被用作备份;万一硬盘出现故障,我希望有一个映像 dd 回到新硬盘上。正在运行的操作系统存在于我要克隆的磁盘上。

我正在运行的进程确实做了一些磁盘 I/O,但不是我想克隆的磁盘。据我所知,在我执行此操作时,只有操作系统/系统进程会读取或写入磁盘。我想知道的是,这种光线使用是否可能会破坏整个克隆图像?我想如果在 dd 读取它们时写入它们,则存在损坏一些文件的危险,但我不知道破坏备份的可能性有多大。任何人都可以分享一些见解吗?

没有将它放在磁盘上并尝试启动它,有什么方法可以验证图像的完整性吗?

谢谢!

Gil*_*il' 5

如果幸运的话,一旦您尝试挂载副本,就会检测到文件系统损坏。如果你不走运,它会在以后被发现。

除了在复制过程中修改的文件之外,您也有可能设法获得文件系统的一致副本。但我不会指望它。只要您不创建、删除或移动任何文件,它就可以与 ext4 一起使用,这样目录就不会被修改。

如果您复制一个以只读方式安装的文件系统,当然,一切都会好起来的。除了您不应该使用dd,请cat改用。

有几种可靠的方法来克隆磁盘。选择其中一种,而不是实际上保证腐败的一种。

  • 一些文件系统提供克隆功能,例如btrfs。我不认为 ext4 可以。
  • 如果文件系统在 Linux 的本机分区方案上,即LVM卷,您可以制作 LVM 快照。这要求您使用 LVM,而不是将文件系统直接放在其他一些分区方案上,例如 MBR 或 GPT。您将得到一个未完全卸载的文件系统,但代表了某个时间点原始文件的一致快照。
  • 如果可以将文件系统放到 RAID-1 阵列上,则可以通过向阵列添加成员、等待它同步并分离新成员来克隆它。在这里,您也将拥有一致但不干净的快照。您可以围绕现有文件系统创建 RAID-1 卷,但这需要离线步骤将文件系统缩小 128kB。
  • 您可以进行文件级备份。这不会让您对文件系统有一个一致的看法,因为复制文件需要时间,但它至少可以保证备份期间未修改的每个文件都将被正确备份。

  • 这应该位于“man dd”的顶部:“如果幸运的话,一旦您尝试挂载副本,就会检测到文件系统损坏。如果你运气不好的话,直到稍后才会被发现。 (2认同)