我想使用 dd 克隆硬盘。因为我想让机器上的进程持续活动,所以我想在文件系统仍然挂载的情况下执行此操作。我知道这不是“理想”的方式来做到这一点,但从谷歌搜索看来这是可能的。
克隆被用作备份;如果发生硬盘故障,我希望将映像恢复到新硬盘上。正在运行的操作系统位于我要克隆的磁盘上。
我运行的进程确实执行了一些磁盘 I/O,但不执行我希望克隆的磁盘。据我所知,当我执行此操作时,只有操作系统/系统进程会读取或写入磁盘。我想知道的是,这种光的使用是否有可能毁掉整个克隆图像?我想如果在 dd 读取它们的同时写入一些文件,则存在损坏一些文件的危险,但我不知道破坏备份的可能性有多大。有人可以分享一些见解吗?
除了将其放在磁盘上并尝试启动它之外,有什么方法可以验证映像的完整性吗?
谢谢!
答案1
如果幸运的话,一旦您尝试挂载副本,就会检测到文件系统损坏。如果你运气不好的话,直到稍后才会被发现。
您也有可能设法获得文件系统的一致副本,但复制过程中修改的文件除外。但我不会指望它。只要您不创建、删除或移动任何文件,它就可以与 ext4 一起使用,这样目录就不会被修改。
当然,如果您复制以只读方式安装的文件系统,一切都会好起来的。除了那个你不应该使用dd
,cat
改为使用。
有多种可靠的方法来克隆磁盘。选择其中之一,而不是实际上必然导致腐败的一项。
- 某些文件系统提供克隆功能,例如BTFS。我认为 ext4 不会。
- 如果文件系统采用 Linux 的本机分区方案,即左心室容量卷,您可以制作 LVM 快照。这要求您使用 LVM,而不是将文件系统直接放在其他分区方案(例如 MBR 或 GPT)上。您将留下一个未完全卸载的文件系统,但代表原始文件系统在某个时间点的一致快照。
- 如果您可以将文件系统放到 RAID-1 阵列上,则可以通过向阵列添加成员、等待其同步并分离新成员来克隆它。在这里,您也将获得一致但不干净的快照。您可以围绕现有文件系统创建 RAID-1 卷,但这需要离线步骤将文件系统缩小 128kB。
- 您可以进行文件级备份。这不会让您获得一致的文件系统视图,因为复制文件需要时间,但它至少保证备份期间未修改的每个文件都将得到正确备份。
答案2
在运行服务器时运行 dd 没有什么坏处。备份的完整性主要取决于服务器的功能以及分区托管的内容。
大多数静态内容根本没有问题,但数据库或日志分区可能会出现一些问题。我建议停止数据库分区上的数据库服务器。
如果您还备份基于事务的文件系统,则备份应该立即恢复。
dd 主要用于备份某些服务器,但是您还需要在更高级别完成文件备份。
dd 作为克隆替代方案效果很好如果服务器已针对备用介质启动,并且根本没有任何活动。
正如上一篇文章所说,除非您有使用 dd 的特定需要,否则有更好的选择,免费的和商业的。
仅举几例:
Clonezilla
Systemimager
转储/恢复
答案3
dd 实用程序是一个非常基本的工具。它在您指向的任何原始字节级别上运行。这样做的结果是,如果有东西正在写入文件,您可能会在写入期间复制该文件,这可能会导致文件损坏,而且肯定是一个完全错误的文件。
安全地执行此操作所需的操作已在各种备份程序中实现。使用其中之一是最简单的。