Answers:
从技术上讲,这是可行的(例如,“自行解决”),但极不可取,尤其是在磁盘的任何分区可写的情况下。
想象一下这种情况:
dd
从一开始就开始读取磁盘,然后愉快地进入磁盘末尾。dd
已经过去并复制了文件的第一部分,因此到达第二部分时它将捕获不一致的状态-每个部分都来自不同的版本!如果您能够将USB磁盘上的所有分区重新安装为只读分区,则不会出现此问题(强调“ 不应 ”);但是,这需要大量的前期安装/离线准备工作以及/
分区的启动时间设置-我认为您通常无法/
即时重新安装R / O,因此有很多事情需要R / W进行访问。
因此,运行副本可能不会破坏正在运行的系统,但不会为您提供可行的备份,从而使任务变得毫无意义。我强烈建议离线复制-这将需要关闭机器。
btrfs
。
令人惊讶的是,有多少备份技巧没有提及以下内容:
备份和还原时,通常需要使linux系统(以及大多数多线程OS)处于静止状态。
通过在尝试对其进行映像时不运行操作系统,可以最轻松地实现此目的。
对于备份和还原,可以挂载它,并且实际上必须是挂载的,但不是由正在运行的OS作为其根(/)。
原因:在每个包含Linux的多任务操作系统中,都有同时运行的代码线程影响文件,这使得无法进行准确的系统范围的文件集备份或还原。
特别是,在抓取文件时,可能还有其他一些任务来创建或删除文件,以使您的备份在任何给定的时间都无法代表文件系统的真实且准确的映像。如果尝试还原此备份,则数据将损坏,这将导致崩溃和其他异常。
选项:备份需要通过特殊的软件和/或磁盘系统(例如,Windows上的Acronis可以备份正在运行的OS)或外部辅助OS来访问您要尝试运行的非OS文件来完成。备份或还原。
!!! 因此,当您看到网页告诉您例如使用Deja-dup进行备份时,这仅适用于/home
,然后仅当您没有/home
在运行deja-dup时影响任何程序时才起作用。(即使那样,除非您真的知道什么可能通过守护程序触及您的文件,否则您可能仍要交叉手指。)
tar
,cpio
和rsync
所有的工作在文件系统中,所以这可能是合适的。dd
OTOH绕过FS直接与磁盘块配合使用。