可以dd引导当前磁盘吗?


23

我有一个运行在实时USB磁盘上的FreeNAS副本。我想对此做一个备份。

在尝试避免破坏完美运行的系统的同时,我是否可以dd在操作系统运行时访问磁盘?

还是我必须关闭机器并运行dd另一台机器?

Answers:


16

您可以dd在正在运行的磁盘上运行。当磁盘结构发生重大变化时,应避免这样做。此外fschk,一旦完成,您就应该到达目的地。备份期间系统越安静越好。

如果要使用“ dd”,运行冷备份(卸载文件系统)是最佳选择。

备份正在运行的系统有更好的选择。

  • tarcpio将读取文件,并很好地处理打开的文件。您可能会错过备份过程中发生的某些更改。
  • rsync行为类似于tar打开文件,并且在备份过程中缺少更改。它可以用于执行初始备份,并且可以很好地执行增量备份。运行增量备份时,它可以跳过复制文件的未更改部分。

如果要备份具有数据库数据文件的文件系统,请调查对热备份的支持。


-使用更高级的工具好点tarcpiorsync所有的工作在文件系统中,所以这可能是合适的。ddOTOH绕过FS直接与磁盘块配合使用。
Piskvor 2012年

16

技术上讲,这是可行的(例如,“自行解决”),但极不可取,尤其是在磁盘的任何分区可写的情况下。

想象一下这种情况:

  • dd 从一开始就开始读取磁盘,然后愉快地进入磁盘末尾。
  • 到一半时,操作系统会将文件写入磁盘。但是,该文件有些零散-它的一部分在物理上位于磁盘的开头,而另一部分在结尾。
  • 对于操作系统来说没问题-它可以很好地写入文件,并将其从写入缓存中推出;现在,它已正确写入磁盘。
  • 问题出在您的备份上:dd已经过去并复制了文件的第一部分,因此到达第二部分时它将捕获不一致的状态-每个部分都来自不同的版本!

如果您能够将USB磁盘上的所有分区重新安装为只读分区,则不会出现此问题(强调“ 不应 ”);但是,这需要大量的前期安装/离线准备工作以及/分区的启动时间设置-我认为您通常无法/即时重新安装R / O,因此有很多事情需要R / W进行访问。

因此,运行副本可能不会破坏正在运行的系统,但不会为您提供可行的备份,从而使任务变得毫无意义。我强烈建议离线复制-这将需要关闭机器。


1
感谢您提供了一个很好的答案,我希望能有一个简单的出路,但是您是正确的,我无法想象您指出的结果会带来好的结果。
stuartc 2012年

1
@stuartc:它将需要FS驱动程序的主要合作-将自复制开始以来发生的每个更改以及复制是否达到一致状态通知复制过程。如果这是一个主要问题,请查看支持快照的文件系统,例如btrfs
Piskvor 2012年

4

您永远不应创建已挂载分区的映像。无论您是否从中启动。

但是,尝试卸载从中引导的分区将很困难。


4

为此,我dump(8)在FreeBSD上使用。例如dump -auLf /mnt/some-other-disk/root.dmp /

-L选项允许通过拍摄快照来复制活动文件系统。

可以使用还原转储restore(8)

它可能仅适用于UFS。我不确定。


0

令人惊讶的是,有多少备份技巧没有提及以下内容:

备份和还原时,通常需要使linux系统(以及大多数多线程OS)处于静止状态。

通过在尝试对其进行映像时不运行操作系统,可以最轻松地实现此目的。

对于备份和还原,可以挂载它,并且实际上必须是挂载的,但不是由正在运行的OS作为其根(/)。


原因:在每个包含Linux的多任务操作系统中,都有同时运行的代码线程影响文件,这使得无法进行准确的系统范围的文件集备份或还原。

特别是,在抓取文件时,可能还有其他一些任务来创建或删除文件,以使您的备份在任何给定的时间都无法代表文件系统的真实且准确的映像。如果尝试还原此备份,则数据将损坏,这将导致崩溃和其他异常。


选项:备份需要通过特殊的软件和/或磁盘系统(例如,Windows上的Acronis可以备份正在运行的OS)或外部辅助OS来访问您要尝试运行的非OS文件来完成。备份或还原。

!!! 因此,当您看到网页告诉您例如使用Deja-dup进行备份时,这仅适用于/home,然后仅当您没有/home在运行deja-dup时影响任何程序时才起作用。(即使那样,除非您真的知道什么可能通过守护程序触及您的文件,否则您可能仍要交叉手指。)


0

我已经在测试环境中成功完成了此任务,最后使用fsck和rsync来提高获得良好设备复制的机会。


1
您能解释一下如何使用rsync来改进用它制作的整个磁盘(整个文件系统)转储  dd吗?(而且,如果您有权rsync使用它,为什么不将其用作主要备份工具而不是辅助的辅助工具?)…………………………………………请不要发表评论;编辑  您的答案,使其更清晰,更完整。
斯科特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.