rsync不能实现字节级全盘克隆,仅同步已挂载文件系统内容;必须排除/proc、/sys、/dev、/run、/tmp、/mnt、/media、/lost+found等虚拟或临时目录,并使用-aAX参数保留ACL、SELinux上下文等关键元数据,恢复时需挂载虚拟文件系统、重装引导并校验fstab。

rsync 不能真正“全盘克隆”——它不复制磁盘结构、MBR、分区表或未格式化空间,只同步已挂载的文件系统内容。如果你需要的是 dd 那种字节级镜像(比如恢复后直接能启动),别用 rsync;但如果你要的是可启动、可选择恢复、节省空间的“逻辑全盘备份”,rsync 是更实用的选择。
rsync 全盘备份必须排除哪些目录
直接 rsync -a / /backup/ 会失败或损坏备份,因为这些路径是虚拟文件系统,实时生成,不可复制:
-
/proc、/sys、/dev:内核接口,挂载即存在,备份无意义且报错 -
/run、/tmp:运行时临时数据,重启即清空 -
/mnt、/media:可能挂载了其他设备,误同步会导致混乱 -
/lost+found:ext 文件系统特有,无需备份 -
/boot/efi/EFI/Microsoft/(如双系统):避免把 Windows 引导项带过去
正确写法示例:rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /backup/rootfs/
为什么加 -aAX 而不是只用 -a
-a 确实包含递归、保留权限、时间戳、符号链接等,但它不覆盖三类关键元数据:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
-A:保留 ACL(访问控制列表),比如setfacl设置的细粒度权限 -
-X:保留扩展属性(xattr),包括 SELinux 上下文(security.selinux)、capability(如ping的cap_net_raw) - 缺一者,恢复后可能无法登录(ACL 失效)、服务启动失败(SELinux context 错误)、二进制无法执行(capability 丢失)
Debian/Ubuntu 默认不启用 SELinux,但 CentOS/RHEL 8+ 默认开启,-X 不是可选项,是必须项。
恢复时最容易被忽略的三件事
从 Live 环境还原后无法启动?大概率卡在这几步:
- 没重新挂载
/dev、/proc、/sys到目标根目录(mount --bind缺一不可) - 没重装引导:即使文件全对,
/boot下的内核和 initramfs 没更新,或 GRUB 配置未重写,grub-install和update-grub必须在 chroot 中执行 - 没校验
/etc/fstab:原系统 UUID 可能和恢复目标盘不一致,需用blkid核对并修正,否则启动卡在 “Failed to mount /”
不要跳过 chroot 步骤——哪怕只是运行一条 ls /boot,也能确认 /boot 是否真的被同步进去了。
增量备份时 --delete 很危险,但不用又不准
--delete 让备份目录“严格等于”源目录:源删了,备份里也删。问题在于:
- 如果误删
/etc后立刻执行备份,备份里也跟着丢,失去回滚依据 - 远程备份时网络中断,
rsync可能只删了部分文件,导致备份半残
更稳妥的做法:
- 首次用完整备份(不带 --delete)
- 后续增量用 --delete-after(删操作放在传输完成后)+ --dry-run 先预览
- 或改用 --link-dest 做硬链接快照,每次备份都是独立目录,天然防误删

















