用之前,看清恢复路径。
安装前提、操作示例、兼容记录与已知限制。
版本边界:下列命令来自既有项目文档,保留历史 v1.7.1 使用语境。新单机免费闭源方案尚待落实至交付文件,旧包不因此自动改变许可。
兼容范围与历史验证
本表是跨版本的历史测试记录汇总,是历史证据,不代表新版本已经完成验证,也不是 v1.7.1 对每一格的重新测试。基础腿为 0.9–1.4.1 系列版本实测;2026-10 的备份/恢复矩阵战役以 1.4.1 客户端统一复跑表中各台三腿(整盘备份恢复 / 文件集 / 同盘快照),spool 预检复验为 1.7.1;altserver 部署侧现行 1.7.1。
下表只列有真实环境端到端实测记录的组合:✓=已实机验证,◐=部分验证(见脚注),—=未验证(尚无实测记录,不等于不支持)。整盘克隆 / 服务器备份恢复的 ✓ 均含「克隆盘或恢复盘单盘启动成功」这一关;同盘快照的 ✓ 指 create→sync→activate 进快照→deactivate 回源→remove 全程。证据来源为项目 README 的兼容表(main 分支,2026-10-25 核对)。
| 操作系统 | 固件 | 测试平台 | 整盘克隆 | clone --sync | 同盘快照 | 服务器备份/恢复 | PXE 恢复 | altserver 部署 | 管理台 |
|---|---|---|---|---|---|---|---|---|---|
| Debian 12 | BIOS | KVM-SeaBIOS | ✓ | — | ✓ | ✓ | ✓ | — | — |
| Debian 12 | UEFI + Secure Boot | KVM-OVMF、物理机 | ✓ | — | ✓ | ✓ | ✓ | ✓¹ | ✓¹ |
| Debian 13 | BIOS | KVM-SeaBIOS | — | — | ✓ | ✓ | — | — | — |
| Debian 13 | UEFI + Secure Boot | KVM-OVMF、物理机 | — | — | ✓² | ✓² | — | — | — |
| Ubuntu 20.04 | BIOS | KVM-SeaBIOS | — | — | ✓ | ✓ | — | — | — |
| Ubuntu 20.04 | UEFI + Secure Boot | KVM-OVMF | — | — | ✓ | ✓ | — | — | — |
| Ubuntu 22.04 | BIOS | KVM-SeaBIOS | — | — | ✓ | ◐³ | — | — | — |
| Ubuntu 22.04 | UEFI + Secure Boot | KVM-OVMF | — | — | ✓ | ✓ | — | — | — |
| Ubuntu 24.04 | BIOS | KVM-SeaBIOS | — | — | ✓ | ✓ | — | — | — |
| Ubuntu 24.04 | UEFI + Secure Boot | KVM-OVMF | — | — | ✓ | ✓ | — | — | — |
| CentOS 7 | BIOS | KVM-SeaBIOS、物理机、VMware⁴ | ✓ | ✓ | ✓ | ✓ | — | — | — |
| CentOS 7 | UEFI + Secure Boot | — | — | — | — | — | — | — | — |
| Rocky 8 | BIOS | KVM-SeaBIOS | ✓ | — | ✓ | ✓ | — | — | — |
| Rocky 8 | UEFI + Secure Boot | — | — | — | — | — | — | — | — |
| Rocky 9 | BIOS | — | — | — | — | — | — | — | — |
| Rocky 9 | UEFI + Secure Boot | KVM-OVMF | ✓ | — | ✓ | ✓ | — | — | — |
| Rocky 10 | BIOS | — | — | — | — | — | — | — | — |
| Rocky 10 | UEFI + Secure Boot | KVM-OVMF | ✓ | — | ✓ | ✓ | — | — | — |
| Oracle Linux 7 | BIOS | KVM-SeaBIOS | ✓ | — | ✓ | ✓ | — | — | — |
| Oracle Linux 7 | UEFI + Secure Boot | KVM-OVMF | ✓ | — | ✓ | ✓ | — | — | — |
| Oracle Linux 8 | BIOS | KVM-SeaBIOS | ✓ | — | ✓ | ✓ | — | — | — |
| Oracle Linux 8 | UEFI + Secure Boot | KVM-OVMF | ✓ | — | ✓ | ✓ | — | — | — |
| Oracle Linux 9 | BIOS | KVM-SeaBIOS | ✓ | — | ✓ | ✓ | — | — | — |
| Oracle Linux 9 | UEFI + Secure Boot | KVM-OVMF | ✓ | — | ✓ | ✓ | — | — | — |
| Oracle Linux 10 | BIOS | KVM-SeaBIOS | ✓ | — | ✓ | ✓ | — | — | — |
| Oracle Linux 10 | UEFI + Secure Boot | KVM-OVMF | ✓ | — | ✓ | ✓ | — | — | — |
| 麒麟 Kylin V10 SP3 | BIOS | KVM(验证中) | — | — | — | — | — | — | — |
| 麒麟 Kylin V10 SP3 | UEFI + Secure Boot | KVM(验证中) | — | — | — | — | — | — | — |
| 统信 UOS 20 | BIOS | KVM-SeaBIOS(验证中) | — | — | — | — | — | — | — |
| 统信 UOS 20 | UEFI + Secure Boot | KVM(验证中) | — | — | — | — | — | — | — |
脚注:¹ altserver 常驻部署在物理机(Debian 12)上,历经 1.4.1 → 1.7.1 多次升级与管理台各期功能的实测;其余行未在该系统上单独部署 altserver。² 本行 ✓ 为 KVM 来宾证据;物理机(Debian 13)仅实测同盘快照 create/sync/status 与 altboot UEFI 按盘切换——整盘克隆、服务器备份/恢复与快照 activate/remove 在物理机未测。³ 见下方已知限制(缺陷 D-2)。⁴ VMware 证据来自一台 VMware 来宾(CentOS 7.4 物理部署环境):BIOS 模式下整盘克隆(含跨模式克隆出 UEFI 盘)与快照系统运行实测;已知 caveat:VMware 的通用 UEFI 条目无 PARTUUID,altboot 的「BootCurrent 与 BootOrder 首位不一致」按盘警告不触发。⁵ 非 LVM 普通分区布局(Debian 12 来宾,UEFI + Secure Boot)另有整盘克隆、服务器备份/恢复与本地目录模式的完整实测(同盘快照不适用)。⁶ 信创两行验证进行中:麒麟两台待建机;UOS 的 BIOS 台已建机并完成 SSH/SELinux 标签问题的定性修复,三腿待跑——结论落地后更新本表。
安装包:Debian 系 .deb(amd64 / arm64),RHEL 系 .rpm(x86_64 / aarch64);SUSE / Arch 暂无预编译包,用源码编译安装(需先获得源码);裸二进制仅 amd64。发行版通过 /etc/os-release 识别,关键路径和工具名运行时探测,衍生版一般也能直接工作。启动模式:UEFI + GPT、传统 BIOS + GPT、MBR 源盘均支持,目标盘始终为 GPT。本站不写“所有 Linux 都支持”——未验证的组合请以实测为准。
历史已知问题(v1.7.1)——Ubuntu 22.04 BIOS 特定布局恢复(缺陷 D-2)。curtin 安装、fstab 以 by-id dm-uuid 引用 LV 的系统:备份成功、恢复完成、根系统单盘启动通过,但恢复系统的 /var 未挂载。原因:恢复 finalize 的 fstab 守卫误注释了这类 fstab 中非根 LV 的挂载行;数据无损、已定性。同版本 UEFI 台与非 by-id 形态的系统不受影响。该缺陷已修复(v1.8.0),但 v1.8.0 未发布——v1.7.1 不适用该修复。详见项目 docs/distro-ubuntu.md。本节为历史说明,不代表新版本仍有或已修复该问题。
服务端能力与边界
下列能力见既有 README 与服务端部署文档;历史网站以 v1.7.1 为交付语境。本次未取得 v1.7.1 标签源码及实际包进行独立交叉验证,服务端交付前须核对所购版本。
- 内容寻址块存储、去重:重复块不重复上传与存储。
- 集快照:每次提交留存恢复点;本地目录模式没有集快照。
- Web 管理台:查看客户端、备份集与占用;须配置管理员口令。
- 每机令牌与归属:注册客户端后启用每机模式;客户端受备份归属限制,超级令牌具有管理权限。这不等同于独立存储或完全隔离。
- PXE:另行部署救援引导环境后,从服务器恢复到目标盘。本站不提供救援镜像下载。
本页不承诺高可用、数据库应用一致性、不可删除存储或防勒索恢复。备份提交留存的集快照不构成这些保证;同盘快照也不能替代异机备份。
快速入门
警告:克隆会删除目标盘的全部数据。动手前先核对磁盘身份:确认 /dev/sdb 就是目标盘,不是系统盘或其他数据盘。克隆前工具会打印 LV 规划(每个 LV 的目标大小、共需空间 vs 目标盘容量),二次确认后才清盘;目标盘上有已挂载分区时拒绝操作。
把当前系统盘完整克隆到 /dev/sdb,并把主启动盘切到 clone 盘。示例不加 -y,保留二次确认;确认无误后才可用 -y 跳过确认:
altroot clone -t /dev/sdb # 把当前系统盘完整克隆到 /dev/sdb
altboot -p /dev/sdb # 把主启动盘切到 clone 盘
reboot # 重启后即从 clone 盘启动
安装前提
五件套本体是静态二进制(不依赖任何运行库),但整盘克隆 / 恢复要驱动一串外部工具。装 Release 包时,声明依赖由包管理器自动拉齐,装完 postinstall 还会逐项自检(缺什么当场打印清单与本发行版的安装命令,只警告、不拦安装);手工部署二进制须按表自行装齐;altroot clone / restore 在动目标盘之前再做一次必需工具预检,硬必需缺失会一次性列清并停下。
| 依赖 | 用途 | 条件 |
|---|---|---|
| bash | 发行版工具链与 chroot 内脚本的运行环境 | 必需 |
| lvm2(pvcreate / vgcreate / lvcreate) | 建目标 VG / LV、同盘快照 | LVM 布局必需 |
| grub 工具(grub-install / grub2-install) | 给目标盘安装引导 | 必需 |
| mkfs.vfat(dosfstools) | 给目标 ESP 建 FAT 文件系统 | 仅 UEFI 目标 |
| efibootmgr | 建 / 改 UEFI 启动项 | 仅 UEFI 场景 |
| mkfs.xfs(xfsprogs)/ mkfs.ext4(e2fsprogs) | 给目标 LV / 分区建文件系统 | 按源文件系统类型 |
| rsync | 文件级复制的主通道 | 可选:缺失时自动改用 tar 兜底 |
| tar | rsync 缺失时的兜底复制通道 | 基础系统自带 |
| gdisk(sgdisk) | 仅便于人工排查分区表 | 可选(GPT 由程序原生读写) |
一次装齐的现成命令(老系统把 dnf 换成 yum;UEFI 机器把 grub-pc 换成 grub-efi-amd64,arm64 机为 grub-efi-arm64):
# Debian / Ubuntu
apt-get install -y bash lvm2 rsync grub-common grub-pc efibootmgr dosfstools xfsprogs e2fsprogs
# RHEL 系(CentOS / Rocky / Oracle Linux 等)
dnf install -y bash lvm2 rsync grub2-tools grub2-common efibootmgr dosfstools xfsprogs e2fsprogs
本站仅准备提供 altroot RPM / DEB 包(新版本准备中,暂未开放下载)。历史发行包的工具组成与许可须以该包随附文件为准,见下载说明。
备份示例
整盘备份到服务器
# 服务器(任意一台机器上常驻运行)
altserver --listen :8443 --data /srv/altroot-backups --token <令牌>
# 默认自签 HTTPS,启动时打印证书 SHA-256 指纹;--http 为明文模式(仅限可信内网)
# 客户端
export ALTROOT_TOKEN=<令牌>
altroot backup --server https://srv:8443 [--name NAME] [--force] [--spool-dir DIR]
altroot backups --server https://srv:8443 # 列出服务器上的备份
altroot backups --server https://srv:8443 --snapshots NAME # 列出某个备份的全部集快照
altroot rm-backup --server https://srv:8443 --name NAME # 删除备份
客户端首次连接自签服务器时要核对证书指纹并确认(之后钉住保存),或用 --pin <指纹> 直接指定。备份为文件级热备份;上传先入暂存区,服务器在提交时逐个校验,全部通过才算备份成立,半截上传不算数。
整盘备份到本地目录
altroot backup --to /mnt/backups [--name NAME] [--force] # 写入本地目录(布局同服务器数据目录)
警告:整盘恢复会删除目标盘的全部数据。动手前先核对磁盘身份:确认 /dev/sdX 就是目标盘,不是系统盘或其他数据盘。
altroot restore --from /mnt/backups --name NAME /dev/sdX # 从本地目录整盘恢复
本地模式维持整包格式不变;本地备份集可直接拷入服务器数据目录使用,服务器数据目录拷出后也能本地恢复。目标目录位于被备份文件系统内时会被自动排除(目录恰为其挂载根则拒绝),写入前还会做空间预检。
文件级备份
altbackup docs-20261023 /srv/docs /etc/myapp.conf # 备份为文件集(可多路径)
altbackup list # 列出本客户端的文件集
altbackup files docs-20261023 # 列出集内条目
altbackup snapshots docs-20261023 # 列出该集的全部快照
altbackup rm docs-20261023 # 删除文件集
altbackup rm docs-20261023@20261023T041500Z # 只删除该集的一个快照
恢复流程
从服务器整盘恢复
警告:整盘恢复会删除目标盘的全部数据。动手前先核对磁盘身份:确认 /dev/sdX 就是目标盘,不是系统盘或其他数据盘。
altroot restore --server https://srv:8443 --name NAME /dev/sdX
altroot restore --server https://srv:8443 --name NAME /dev/sdX --snapshot ID # 恢复指定快照而非最新
恢复时按清单取块重组 tar 流、先验整流 SHA-256 再解包。快照 ID 是提交时刻的 UTC 时间戳,形如 20261023T041500Z(同一秒内多次提交依次加 -2、-3 后缀),字典序即时间序。
文件级恢复
altrestore docs-20261023 # 恢复到原始绝对路径
altrestore docs-20261023@20261023T041500Z # 恢复指定快照而非最新
altrestore docs-20261023 /srv/docs --to /tmp/out # 只恢复某子路径、改根到 /tmp/out
altrestore docs-20261023 --overwrite # 允许覆盖已存在文件
altrestore 默认不覆盖:目标已存在的文件逐个跳过并报告,结束汇总「已恢复 / 跳过(已存在)/ 失败」;每个文件都先重组校验整文件哈希、通过才落盘。
同盘快照回滚
altroot snapshot create [--with-var] # 在同 VG 建快照 LV
altroot snapshot sync # 增量同步快照到最新
altroot snapshot status # 看快照状态
altroot snapshot activate # 把 GRUB 默认启动项切到快照(二次确认)
altroot snapshot deactivate # 切回原系统
altroot snapshot remove # 删除快照(二次确认)
默认只克隆 /(root LV);/var、/home 等独立挂载点默认不纳入,快照启动后继续挂载原来的它们。snapshot activate 只是改 GRUB 默认项,不动 UEFI;只想验证一次快照可用 altboot --next "Debian GNU/Linux (altroot)" && reboot(下次启动进快照,再重启自动回到原系统)。
启动目标切换
altboot # 显示当前主/备启动设置
altboot -p /dev/sda # 主启动:从 /dev/sda 启动(调 BootOrder,UEFI 层)
altboot -a /dev/sdb # 备用启动:把 /dev/sdb 放到 BootOrder 第二位
altboot --next /dev/sda # 只下一次从 /dev/sda 启动
altboot --next 1 # 只下一次进菜单项 1(编号就是 altboot 列表左侧的标号)
GRUB 层切换需要 GRUB_DEFAULT=saved;若当前不是 saved,altboot 会先说明、经确认后自动改好并重生成 grub.cfg。
限制
- 整盘克隆:UEFI + GPT 与传统 BIOS + GPT 均支持;源盘既无 ESP 也无 BIOS boot 分区时无法判断启动方式。BIOS 下
altboot -p /dev/sdX不可用(无 UEFI BootOrder),请在 BIOS 里调整启动顺序。 - 跨模式克隆(
--boot-mode):BIOS 源克隆 UEFI 目标时,若源系统未安装签名版 GRUB / shim,目标盘的 UEFI loader 为未签名版,开启 Secure Boot 的机器会拒绝启动;需要 Secure Boot 的环境请先在源系统装好签名包再克隆。 - LV 文件系统:仅 ext4 / xfs / swap。
- 不支持
/boot在 LVM 内或与/同 LV 的布局(需要独立/boot分区)。 - 复制范围:root VG(
/所在的 VG)里所有已挂载的 LV 全量复制,未挂载的 LV 跳过;swap 始终复制(原大小不变)。文件级复制,不是 dd 扇区镜像。 clone --sync仅支持 LVM 布局(分区布局明确拒绝),且与--lv-size互斥。- 本地目录模式没有集快照(
--snapshots/--snapshot在本地模式会明确报错)。
常见问题
两种「快照」有什么区别?
本地同盘快照是同盘 LVM 快照——本机 VG 内的一个 LV 副本,靠改 GRUB 默认项在本机切换启动;而服务器上的集快照是服务器端备份集的历史版本,靠 --snapshot / @<ID> 按时间点恢复。两者不是一回事、互不影响。
本站提供哪些安装包?
仅列出 altroot RPM / DEB 包(新版本准备中,暂未开放下载),含 x86_64 / amd64 与 aarch64 / arm64。本站不提供裸二进制、服务端、救援镜像或源码下载。
没有 rsync 能克隆吗?
能。拷贝优先用 rsync,缺失时自动降级为 tar 管道(属性 / ACL / xattr / SELinux 上下文照常保留),仅提示、不拦截。
克隆后两块盘能同时在线吗?
能。目标盘身份全新:新分区表 / PARTUUID、新文件系统 UUID、新 VG 名;fstab 全量 UUID 重映射。盘符会随启动顺序变化,工具内部只认 PARTUUID / UUID。
备份 / 恢复的日志在哪?
日志:/var/log/altroot.log、/var/log/altboot.log;状态:/var/lib/altroot/altroot.state。
更多问题 待确认
本页只收录了项目 README 中已确认的内容;其他问题待用户确认后补充。