首页/数据/备份与容灾速查/FSArchiver 文件系统归档

FSArchiver 文件系统归档

在文件系统层面打包与恢复:支持压缩与在异构磁盘上还原,适合把系统分区迁移或备份成可移植的归档文件。

备份与容灾速查数据更新于 2026-10-13

FSArchiver 是什么

FSArchiver 在文件系统层面做归档:savefs 把一个分区的文件系统内容打包成 .fsa 文件,restfs 把它还原到目标分区。与 dd 整盘镜像不同,它按文件系统语义抓取,归档与底层磁盘布局解耦,因此可以恢复到大小不同、布局不同的磁盘上,并支持多线程压缩,适合系统盘迁移与分区级备份。

基本信息

适用平台Linux,目标文件系统需被本机内核支持(ext4、xfs、btrfs 等)
粒度整个分区或文件系统,不做单文件挑选
常用子命令savefs 备份、restfs 恢复、archinfo 查看归档信息
压缩与线程支持多级压缩,-j 指定压缩线程数
权限要求读写块设备需要 root
已知限制LVM 逻辑卷、软 RAID 成员与引导加载器需要额外处理步骤

典型使用场景

  • 系统盘迁移:从旧机器抓一份归档,恢复到新机器容量更大的分区
  • 分区级定期备份:比整盘 dd 体积小,且不依赖目标盘几何结构
  • 换盘扩容:旧盘装不下时把归档恢复到更大的新分区
  • 装机标准化:把调试好的系统做成归档,批量还原到同型号机器
  • 临时快照式留存:重大变更前先抓一份归档,变更失败可整体回退

备份与恢复

备份与恢复
fsarchiver savefs -j 4 -o /backup/rootfs.fsa /dev/sda2   # 4 线程压缩打包 sda2
fsarchiver savefs -c 'mypass' -j 4 -o /backup/enc.fsa /dev/sda2  # 加密归档
fsarchiver archinfo /backup/rootfs.fsa                     # 查看归档元信息
fsarchiver restfs /backup/rootfs.fsa id=0,dest=/dev/sdb2   # 恢复到目标分区(会格式化)
grub-install /dev/sdb && update-grub                       # 恢复后重装引导
# 恢复系统盘时建议在救援环境或 LiveCD 下操作,避免写入中分区

archinfo 输出读法

字段含义正常/异常
Filesystem归档内的文件系统类型必须与目标分区上的工具链匹配
Compression使用的压缩算法与级别目标机版本不支持该算法时无法解包
Files saved归档包含的文件数明显偏少说明抓取中途被中断
Original size原始数据量与源分区已用空间应大致相当
Size归档实际体积接近原始大小说明压缩几乎没起作用
Volume / Partitions归档内的卷与分区编号多分区归档恢复时必须逐个指定 id 与 dest
restfs 会格式化目标分区:执行前务必确认 dest 指向的是正确设备。误写到在线数据盘属于不可逆操作,恢复窗口与操作人都要提前确认。
LVM 逻辑卷、软 RAID 成员、加密卷不能简单按分区归档,需要在卷层或文件系统层分别处理,具体步骤以官方文档并结合自身环境验证后再执行。

易错点

  • 恢复后忘记重建引导:目标盘上数据齐全但无法启动,恢复手册必须包含 grub 步骤
  • 归档跨发行版或跨内核版本还原:模块与 initramfs 不匹配,系统可能停在启动早期
  • 对正在写入的数据库目录做分区归档:只能保证文件系统一致,不保证应用一致,数据库应先用原生工具做一致备份
  • 归档文件与目标分区同时放在一块盘上:磁盘损坏时两者一起丢,归档必须落在不同物理介质

数据来源与参考

  • FSArchiver 官方文档(savefs / restfs)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌