Veeam Agent for Linux 是一款企业级的免费备份工具,支持完整磁盘备份、增量备份和裸机恢复。相比传统的 rsync、Timeshift 或 dd 镜像,Veeam 提供了更专业的备份恢复解决方案,特别适合需要完整系统恢复能力的场景。

教程概述

本教程将带你完成在 Ubuntu 24.04 桌面版上安装和配置 Veeam Agent for Linux 的完整过程。内容包括:

  • 环境准备:系统要求和前置条件
  • 安装配置:Veeam Agent 安装与图形化配置
  • 备份策略:SMB/NAS 备份目标设置与调度
  • 备份机制:增量备份与保留策略详解
  • 恢复操作:文件恢复与裸机恢复流程
  • 最佳实践:日常维护与常见问题处理

一、为什么选择 Veeam

在选择备份方案时,需要考虑以下因素:

方案 裸机恢复 增量备份 空间效率 适用场景
rsync 不支持 支持 文件同步
Timeshift 不支持 支持 系统快照
dd 镜像 支持 不支持 完整磁盘克隆
Veeam 支持 支持 企业级备份

Veeam 的优势:

  • 支持完整的裸机恢复(Bare-metal Restore)
  • 智能 block-level 备份,只备份已用块并压缩
  • 支持 SMB/NFS 网络存储作为备份目标
  • 提供图形化配置界面(TUI)
  • 免费版功能足够个人和小型团队使用

二、环境准备

1. 系统要求

  • 操作系统:Ubuntu 24.04 LTS(已安装)
  • 权限:需要 root 或 sudo 权限
  • 存储:NAS 或其他支持 SMB/NFS 的网络存储设备

2. 安装 SMB 支持

如果备份目标是 SMB 共享,需要安装 cifs-utils

1
sudo apt install cifs-utils

3. 准备备份目标

在 NAS 上创建备份目录,并确保:

  • 创建专用备份账号(非管理员权限)
  • 创建备份目录结构,如 veeam-backup/<主机名>
  • 确保账号对该目录有读写权限

三、下载和安装 Veeam

1. 下载官方仓库包

访问 Veeam Agent for Linux 官方下载页面

下载流程:

  1. 点击 Download Free Agent 按钮
  2. 根据提示填写注册信息(首次下载需要注册 Veeam 账号)
  3. 在下载页面选择 Veeam Agent for Linux
  4. 下载适用于 Debian/Ubuntu 的仓库包文件

下载的文件名格式如下(版本号可能不同):

1
veeam-release-deb_13.0.1_amd64.deb

将文件保存到 ~/Downloads 目录。

2. 安装仓库包

使用 apt install 命令安装本地 deb 包,该方式会自动处理依赖关系:

1
2
cd ~/Downloads
sudo apt install ./veeam-release-deb_13.0.1_amd64.deb

命令解释:

  • apt install ./:安装本地 deb 包,使用 ./ 前缀表示当前目录下的文件
  • 相比 dpkg -iapt install 会自动解决依赖问题
  • 该包会将 Veeam 官方软件源添加到系统的 /etc/apt/sources.list.d/ 目录

预期输出:

1
2
3
4
Reading package lists... Done
Building dependency tree... Done
...
Setting up veeam-release-deb (13.0.1) ...

3. 更新软件源索引

安装仓库包后,需要更新软件源索引以获取 Veeam 软件包信息:

1
sudo apt update

预期输出(部分):

1
2
3
Get:1 https://repository.veeam.com/backup/linux/agent/dpkg/debian/x86_64 noble InRelease
...
Reading package lists... Done

如果看到 Veeam 仓库的获取信息,说明仓库包安装成功。

4. 安装 Veeam Agent 及依赖

1
sudo apt install blksnap veeam

命令解释:

  • blksnap:Veeam 使用的 block-level 快照驱动模块,用于在备份时创建一致性快照
  • veeam:Veeam Agent for Linux 主程序,包含命令行工具和 TUI 界面

安装过程说明:

安装过程中会自动执行以下操作:

  1. 下载并安装 Veeam Agent 及其依赖包
  2. 构建 DKMS 内核模块(blksnap 驱动)
  3. 加载快照驱动到内核

预期输出(部分):

1
2
3
4
5
6
7
Setting up blksnap-dkms (2.4.0.27) ...
Building initial module for 6.8.0-xx-generic
Done.
blksnap.ko:
Running module version sanity check.
...
Setting up veeam (6.3.0.101) ...

注意:如果系统内核更新后,DKMS 会自动为新内核重新编译 blksnap 模块。

5. 验证安装

确认 Veeam 安装成功:

1
sudo veeamconfig --version

预期输出:

1
v13.0.1.94

验证 blksnap 内核模块是否加载:

1
lsmod | grep blksnap

预期输出:

1
blksnap               xxx  0

如果没有输出,可以手动加载模块:

1
sudo modprobe blksnap

6. 启动 Veeam 服务

Veeam Agent 服务通常会自动启动,可以验证服务状态:

1
sudo systemctl status veeamservice

预期输出(部分):

1
2
3
● veeamservice.service - Veeam Agent for Linux
Loaded: loaded (/lib/systemd/system/veeamservice.service; enabled)
Active: active (running) since ...

如果服务未启动,手动启动并设置开机自启:

1
2
sudo systemctl start veeamservice
sudo systemctl enable veeamservice

四、配置备份任务

1. 启动图形化配置界面

1
sudo veeam

进入 Veeam 的 TUI(文本用户界面)配置界面。

2. 创建新备份任务

C 键创建新任务(Create Job),输入任务名称:

1
Job name: <主机名>

3. 选择备份模式

选择 Entire Machine(整机备份):

1
(X) Entire Machine

该模式将备份整个系统盘,包括:

  • EFI 分区(/boot/efi
  • 根分区(/
  • 支持裸机恢复

4. 选择备份卷

选择要备份的磁盘,通常是系统盘:

1
nvme0n1

5. 配置备份目标(SMB)

选择 Shared folder 作为备份目标类型,填写 SMB 连接信息:

配置项 示例值
服务器 192.168.5.5
共享文件夹 share-name/veeam-backup/<主机名>
用户名 backup-user
密码 <SMB账号密码>
Retention 14 days

注意事项:

  • 共享文件夹路径不要以 / 开头
  • 建议使用专用备份账号,避免使用管理员账号
  • Retention 设置保留的恢复点数量

6. 配置备份计划

设置每日自动备份时间:

1
Daily at 06:00

勾选所有工作日。

7. 确认并完成

查看配置摘要:

1
2
3
4
5
Job name: <主机名>
Destination: //192.168.5.5/share-name/veeam-backup/<主机名>
Volumes: nvme0n1
Schedule: Every day at 06:00
Retention: 14 days

Finish 完成配置。首次备份会自动创建全量备份(.vbk 文件)。


五、备份机制详解

1. 备份文件类型

文件扩展名 说明
.vbk 全量备份文件(Full Backup)
.vib 增量备份文件(Incremental Backup)
.vbm 备份元数据文件

2. 备份链结构

1
2
3
4
5
Full (vbk)
├── Incremental (vib) - Day 2
├── Incremental (vib) - Day 3
├── Incremental (vib) - Day 4
└── ...

3. Retention 策略

以 14 天保留策略为例:

  • 保留最近 14 个恢复点
  • 超过保留期限后,自动删除旧的备份链
  • 删除旧链后,自动创建新的全量备份

4. 备份效率

Veeam 使用智能 block-level 备份技术:

  • 只备份已使用的磁盘块
  • 自动压缩数据
  • 例如:953GB 磁盘(使用 134GB)可能只生成约 40GB 的备份文件

六、常用管理命令

1. 任务管理

1
2
3
4
5
6
7
8
9
10
11
# 列出所有备份任务
sudo veeamconfig job list

# 手动启动增量备份
sudo veeamconfig job start --name "<任务名>"

# 手动启动全量备份
sudo veeamconfig job start --name "<任务名>" --full

# 查看任务日志
sudo veeamconfig log --job "<任务名>"

2. 备份管理

1
2
3
4
5
# 列出所有恢复点
sudo veeamconfig backup list

# 停止挂载的恢复会话
sudo veeamconfig session stop --mount

3. 图形界面

1
2
# 启动 TUI 界面
sudo veeam

七、文件恢复(Recover Files)

当需要恢复误删文件或旧版本文件时,可以使用文件恢复功能。

1. 启动文件恢复

1
sudo veeam

R 键选择 Recover Files

2. 选择恢复点

从列表中选择需要的恢复点(按日期选择)。

3. 访问备份文件

备份内容会挂载到 /mnt/backup/ 目录:

1
2
3
4
5
# 浏览备份内容
ls /mnt/backup/

# 复制需要的文件
cp /mnt/backup/home/user/document.txt ~/

4. 修复文件权限

恢复的文件可能属于 root 用户,需要修改权限:

1
sudo chown $(whoami):$(whoami) ~/document.txt

5. 卸载恢复挂载点

完成恢复后,卸载挂载点:

1
sudo veeamconfig session stop --mount

八、制作恢复介质

恢复介质(Recovery ISO)用于裸机恢复场景,强烈建议提前制作并妥善保存

1. 创建恢复 ISO

1
sudo veeam

选择 M(Misc)→ Create Recovery Media

生成的 ISO 文件可用于:

  • 使用 BalenaEtcher 写入 U 盘
  • 添加到 Ventoy 启动盘
  • 保存到安全位置备用

2. 注意事项

  • 建议每 3 个月更新一次恢复 ISO
  • 确保恢复 ISO 与当前 Veeam 版本兼容
  • 测试恢复 ISO 能否正常启动

九、裸机恢复流程

当系统磁盘损坏需要完整恢复时,使用裸机恢复功能。

1. 准备工作

  • 替换损坏的硬盘(容量需大于等于原盘)
  • 使用恢复 ISO 启动 U 盘

2. 恢复步骤

  1. 从 U 盘启动进入恢复环境
  2. 选择 Bare-metal Recovery
  3. 连接 SMB 备份库(输入服务器地址和凭据)
  4. 选择要恢复的恢复点
  5. 选择 Entire Machine Restore
  6. 确认目标磁盘(系统会自动重建分区表)
  7. 等待恢复完成
  8. 重启系统

3. 恢复结果

  • 系统与备份时完全一致
  • 所有分区(GPT/EFI/root)自动重建
  • 应用程序和配置全部保留

十、验证备份可恢复性

定期验证备份是否可恢复是运维的最佳实践。

验证方法

  1. 使用恢复 ISO 启动(可使用虚拟机测试)
  2. 进入恢复流程
  3. 连接备份库并选择恢复点
  4. 到分区确认步骤时按 Cancel 取消

如果能够看到正确的分区布局信息,说明备份数据完整可恢复。


十一、排除大数据目录

如果有大型数据目录(如 Docker 数据、项目文件)不需要随系统备份,可以将其迁移到独立磁盘。

方案

  1. 将大数据目录(如 /home/user/docker/home/user/project)迁移到独立磁盘
  2. 使用 bind mount 挂载回原路径
  3. Veeam 只备份系统盘,不会包含独立磁盘的内容

配置示例

编辑 /etc/fstab

1
2
/mnt/data/docker    /home/user/docker    none    bind    0    0
/mnt/data/project /home/user/project none bind 0 0

十二、最佳实践

日常维护建议

  • 每月手动触发一次全量备份
  • 每 3 个月更新恢复 ISO
  • 每半年模拟恢复一次,验证备份有效性
  • 监控备份任务执行状态

空间管理

  • 定期检查备份目标存储空间
  • 磁盘空间不足时,可适当缩短 Retention 周期
  • 清理不需要的旧备份

十三、常见问题

Q:为什么全量备份文件比磁盘容量小很多?

A:Veeam 使用 block-level 备份,只备份已使用的磁盘块,并进行压缩。例如 953GB 磁盘(使用 134GB)可能只生成约 40GB 的备份文件。

Q:能否恢复到空白新硬盘?

A:完全可以。裸机恢复功能会自动重建分区表和所有分区。

Q:增量备份链中删除了某个文件怎么办?

A:Veeam 会在备份链中正确记录文件删除操作。你可以选择文件删除之前的恢复点来恢复该文件。

Q:SMB 连接失败怎么办?

A:检查以下项目:

  • 确保安装了 cifs-utils
  • 确认 NAS 的 SMB 服务已启用
  • 检查用户名和密码是否正确
  • 确认网络连通性(可用 ping 测试)

十四、命令速查表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 图形界面
sudo veeam

# 任务管理
sudo veeamconfig job list
sudo veeamconfig job start --name "<任务名>"
sudo veeamconfig job start --name "<任务名>" --full

# 日志查看
sudo veeamconfig log --job "<任务名>"

# 备份管理
sudo veeamconfig backup list
sudo veeamconfig session stop --mount

# 版本查看
sudo veeamconfig --version

总结

通过本教程,你已经完成了 Veeam Agent for Linux 的完整配置:

  • 安装配置:成功安装 Veeam 并配置了 SMB 备份目标
  • 自动备份:设置了每日自动增量备份计划
  • 恢复能力:掌握了文件恢复和裸机恢复的操作方法
  • 维护技能:了解了日常管理命令和最佳实践

Veeam 提供了企业级的备份恢复能力,配合 NAS 存储可以实现可靠的系统保护。建议定期验证备份的可恢复性,确保在需要时能够顺利恢复系统。

参考资源