altrootdisk
新版产品方案预览 · 新版本准备中,暂未开放下载
DOCUMENTATION

用之前,看清恢复路径。

安装前提、操作示例、兼容记录与已知限制。

版本边界:下列命令来自既有项目文档,保留历史 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 12BIOSKVM-SeaBIOS✓—✓✓✓——
Debian 12UEFI + Secure BootKVM-OVMF、物理机✓—✓✓✓✓¹✓¹
Debian 13BIOSKVM-SeaBIOS——✓✓———
Debian 13UEFI + Secure BootKVM-OVMF、物理机——✓²✓²———
Ubuntu 20.04BIOSKVM-SeaBIOS——✓✓———
Ubuntu 20.04UEFI + Secure BootKVM-OVMF——✓✓———
Ubuntu 22.04BIOSKVM-SeaBIOS——✓◐³———
Ubuntu 22.04UEFI + Secure BootKVM-OVMF——✓✓———
Ubuntu 24.04BIOSKVM-SeaBIOS——✓✓———
Ubuntu 24.04UEFI + Secure BootKVM-OVMF——✓✓———
CentOS 7BIOSKVM-SeaBIOS、物理机、VMware⁴✓✓✓✓———
CentOS 7UEFI + Secure Boot————————
Rocky 8BIOSKVM-SeaBIOS✓—✓✓———
Rocky 8UEFI + Secure Boot————————
Rocky 9BIOS————————
Rocky 9UEFI + Secure BootKVM-OVMF✓—✓✓———
Rocky 10BIOS————————
Rocky 10UEFI + Secure BootKVM-OVMF✓—✓✓———
Oracle Linux 7BIOSKVM-SeaBIOS✓—✓✓———
Oracle Linux 7UEFI + Secure BootKVM-OVMF✓—✓✓———
Oracle Linux 8BIOSKVM-SeaBIOS✓—✓✓———
Oracle Linux 8UEFI + Secure BootKVM-OVMF✓—✓✓———
Oracle Linux 9BIOSKVM-SeaBIOS✓—✓✓———
Oracle Linux 9UEFI + Secure BootKVM-OVMF✓—✓✓———
Oracle Linux 10BIOSKVM-SeaBIOS✓—✓✓———
Oracle Linux 10UEFI + Secure BootKVM-OVMF✓—✓✓———
麒麟 Kylin V10 SP3BIOSKVM(验证中)———————
麒麟 Kylin V10 SP3UEFI + Secure BootKVM(验证中)———————
统信 UOS 20BIOSKVM-SeaBIOS(验证中)———————
统信 UOS 20UEFI + Secure BootKVM(验证中)———————

脚注:¹ 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 标签源码及实际包进行独立交叉验证,服务端交付前须核对所购版本。

本页不承诺高可用、数据库应用一致性、不可删除存储或防勒索恢复。备份提交留存的集快照不构成这些保证;同盘快照也不能替代异机备份。

快速入门

警告:克隆会删除目标盘的全部数据。动手前先核对磁盘身份:确认 /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 兜底
tarrsync 缺失时的兜底复制通道基础系统自带
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。

限制

常见问题

两种「快照」有什么区别?

本地同盘快照是同盘 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 中已确认的内容;其他问题待用户确认后补充。