是否可以添加当前启动的磁盘?

stu*_*rtc 27 linux freebsd freenas

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

在试图避免破坏一个完美运行的系统时,我能dd在操作系统运行时访问磁盘吗?

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

Bil*_*hor 21

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

如果你想使用`dd',运行冷备份(卸载文件系统)是最好的选择。

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

  • tarcpio将读取文件并合理地处理打开的文件。您可能会错过备份期间发生的一些更改。
  • rsync行为类似于tar打开文件和备份期间丢失的更改。它可以用来做初始备份,也可以很好地做增量备份。运行增量备份时,它可以跳过复制文件的未更改部分。

如果您使用数据库数据文件备份文件系统,请调查对热备份的支持。


Pis*_*ing 18

这在技术上可行的(如“在脚下射击”),但非常不可取,特别是如果磁盘的任何分区是可写的。

想象一下这个场景:

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

如果您能够以只读方式重新挂载U盘上的所有分区,则不应出现此问题(强调“不应”);这需要为/分区进行大量的前期安装/离线准备和启动时间设置- 我认为您通常无法/即时重新安装r/o,会有很多事情需要 r/w 挂起使用权。

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

  • 感谢您的出色回答,我希望有一个简单的出路,但您是对的,我无法想象您指出的内容会产生一个好的场景。 (2认同)
  • @stuartc:这需要 FS 驱动程序的“主要”合作 - 通知复制过程自复制开始以来发生的每个更改,以及它是否达到一致的状态。如果这是一个主要问题,请研究支持快照的文件系统,例如“btrfs”。 (2认同)

Der*_*ler 5

您永远不应该创建已安装分区的映像。不管你是否从它启动。

但是您将很难尝试卸载从中启动的分区。


max*_*ost 5

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

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

转储可以通过使用来恢复restore(8)

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