备份根文件系统

备份根文件系统

我最近在系统中安装了一块 SSD,并将部分 Linux 安装移到了 SSD 上。为了安全起见,我想用 rsync 备份整个根文件系统(只是克隆,没有版本控制,没有增量备份等),但我心里有些想法。

  • 我的文件系统是分布式的。/var 和 /tmp 位于不同的磁盘上。
  • 我知道一些根目录是虚拟的,但我需要排除它们吗?(/proc,/dev 等)
    • 如果我将它们排除,是否需要在备份驱动器上创建虚拟/空白版本?
  • 或者有没有什么简单的工具可以自动化这个过程。

问题是,我是否能简单地使用 rsync 和一堆开关并排除来备份实时 Linux 系统,或者我应该使用任何其他工具来执行此操作?

提前致谢。

PS:我精通Linux。高级/棘手的方法不是问题。

答案1

我知道一些根目录是虚拟的,但我需要将它们排除吗?(/proc、/dev 等)如果我排除它们,我是否需要在备份驱动器上创建虚拟/空白版本?

是的,您需要将它们排除。

至于是否应该有虚拟版本 - 为了让你的 init 脚本挂载它们,这些目录需要作为空文件夹存在。所以是的 - 你需要包含存根或空目录。

问题是,我是否能简单地使用 rsync 和一堆开关并排除来备份实时 Linux 系统,或者我应该使用任何其他工具来执行此操作?

例如,我经常使用 运行备份rsync -av --delete /src /dst;但是,请注意rsync 根本不处理锁定/并发访问。如果您写入当前正在使用的文件,您将获得各种运行。

当然,有一种方法可以解决这个问题。假设当前没有发生写入,您可以执行:

/bin/mount -no remount,ro /dev/rootdevice

在你的 rsync 之前,然后:

/bin/mount -no remount,rw /dev/rootdevice

之后(以 root 身份)。

如果你想要备份一个真正实时的、支持写入的文件系统,你需要一些可以执行写时复制的东西,例如Linux 卷快照

答案2

我会建议使用 cpio 创建一个档案,然后复制它。我说 cpio 是因为它用于初始 ramdisk,因此它理解虚拟目录。尝试

find / -depth -name | cpio -o >/path/archive.cpio

:)

相关内容