我想使用 Ubuntu 备份 (Déjà Dup) 将整个系统备份到外部硬盘上。在进行完整备份时,我可以使用操作系统(更改文件)吗?这会对备份文件产生什么影响(例如,如果我在备份期间更改了某个文件,备份中会有该文件的新版本还是旧版本)?
谢谢
答案1
虽然这是可能的,但我肯定会不是建议这样做。最重要的原因是您在两个层面上创建了不一致的备份:
- 音量不一致
- 文件不一致
对此唯一可行的解决方案是:
- 使用快照。这可以使用 LVM 或新一代文件系统(如 BtrFS)来实现。这将对整个卷进行快照,就像您拍摄它的照片一样。仍然可以进行更改/写入,但备份过程是从之前拍摄的只读快照运行的。
- 挂载文件系统为只读并从那里备份。重要的缺点是:在以只读方式挂载根文件系统期间,您将无法运行系统。
音量不一致
该卷本身包含数千个正在复制的文件当你仍在写入时. 如果各个文件的状态不一致,某些应用程序就会感到困惑。
假设某个应用程序将首选项存储在 中,~/.config/appname/theprefs.xml
并且内容引用系统上其他位置的外部文件,例如~/Pictures/myface.png
。如果在文件夹 之后备份首选项设置文件~/Pictures
,那么在您需要在某天之后恢复它时,备份可能无法正常工作。
文件不一致
类似于单个文件可能处于不一致状态,文件本身也可能处于不一致状态。文件的内容可能会发生变化当你进行备份时. Rsync 和大多数其他水下备份应用程序(如 Deja Dup)将不是锁定文件以供读取。另请参阅:rsync 对于并发文件访问如何表现?。
这可能会导致灾难性的后果,因为整个文件的结构可能会被破坏。这种情况发生的可能性主要取决于文件的大小和对文件执行的写入操作的数量。
举例说明什么不是去做。
复制或备份...
- 机器运行时的虚拟机磁盘映像。
- 数据库文件(例如 MySQL
/var/lib/mysql
),而表没有被读锁定。(对于这个例子,像 Percona Toolkit 这样的工具可以帮你解决这个问题。)
答案2
是的,但备份后您的机器可能会慢一点。这取决于您编辑文件时备份的时间。假设您在备份期间编辑文件,则它已经备份了旧版本,并且您的编辑不会显示在备份中,直到下一次备份。