Ubuntu 22.04 安装 Bareos 25.1 指南

Ubuntu 22.04 安装 Bareos 25.1 全流程实测:官方 APT 仓库在线安装(含 dbconfig-common 自动建库、systemd 托管、bconsole 首次备份还原闭环、WebUI 接线)与 deb 离线包安装双方案对照,含版本通道实查、Pre-Depends 排障、卸载清库实录,查询日期 2026-10-22。

BareosBareos数据备份2026/10/22

Ubuntu 22.04 安装 Bareos 25.1 指南

目标:在 Ubuntu Server 22.04 LTS 上从零安装 Bareos 备份恢复平台(Director + Storage Daemon + File Daemon + PostgreSQL 目录数据库 + WebUI),并提供「官方 APT 仓库在线安装」与「deb 离线包安装」两套可对照的方案,覆盖版本选型、服务验证、首次备份/还原闭环与卸载清理。全部命令与回显在 Ubuntu 22.04.5 LTS + Bareos 25.1.2~pre49.d5742f640 实测通过;组件定位与选型背景见《Bareos 介绍与选型指南》。

一、环境信息

本章列出实测环境的软硬件基线,后续命令与回显均来自该环境。

  • 操作系统:Ubuntu 22.04.5 LTS(x86_64,主机名 bareos-server);
  • Bareos 版本:25.1.2~pre49.d5742f640(构建日期 2026-10-16,Bareos community binary)——来自官方社区仓库 current 通道 xUbuntu_22.04 源,查询日期 2026-10-22;
  • 目录数据库:PostgreSQL 14.24(Ubuntu 14.24-0ubuntu0.22.04.1,apt 官方源安装);
  • WebUI 运行时:Apache 2.4.52 + PHP 8.1 FPM(bareos-webui 包依赖自动带入);
  • 实测时间:2026-10-21 ~ 2026-10-22;
  • 涉及端口:9101(Director)、9102(File Daemon)、9103(Storage Daemon)、80(WebUI,经 Apache);
  • 磁盘存储目录:/var/lib/bareos/storage/(SD 默认 Archive Device 路径)。

二、前置条件

安装 Bareos 前需确认系统具备以下条件,逐项给出验证命令与实测回显。

1. 以 root 或具备 sudo 权限的用户操作,系统可联网(在线方案)或已准备好离线包(离线方案)。

2. 安装 PostgreSQL 目录数据库。Bareos Director 依赖一个 SQL 目录库存储作业与文件索引,官方推荐 PostgreSQL(官方软件仓库提供 bareos-database-postgresql 后端包)。先装数据库服务:

apt-get install -y postgresql

安装完成后确认服务运行与版本:

systemctl is-active postgresql
su - postgres -c "psql -V"

实测回显:

active
psql (PostgreSQL) 14.24 (Ubuntu 14.24-0ubuntu0.22.04.1)

⚠️ 注意:必须先装 PostgreSQL、后装 Bareos。bareos-database-postgresql 的安装脚本借助 dbconfig-common 机制在「已运行的本地 PostgreSQL」上自动建库建用户;若先装 Bareos 后补数据库,目录库不会被自动创建,需手动执行建库流程。

3. 在线方案还需安装 HTTPS 传输基础件(Ubuntu 22.04 最小化安装常缺失,否则接入 Bareos 源时直接报证书错误,见八、常见问题问题 1):

apt-get install -y ca-certificates wget gnupg curl

验证:

dpkg -l ca-certificates | tail -1

实测回显:

ii  ca-certificates 20260816ubuntu0.22.04.1 all          Common CA certificates

4. 放行防火墙端口(如启用 UFW):9101/TCP 供控制台与 WebUI 连接 Director,9102/TCP 供 Director 连各客户端 FD,9103/TCP 供 FD 连接 SD:

ufw allow 9101/tcp
ufw allow 9102/tcp
ufw allow 9103/tcp

三、版本选型说明

本章回答「装哪个版本、从哪个通道拿」,并给出升级/回滚方法。

3.1 通道与版本事实(2026-10-22 实查)

Bareos 官方社区仓库 https://download.bareos.org/ 根目录现设三个通道:current/(社区滚动当前构建)、experimental/(实验构建)、next/(下一代预览)。历史教程中常见的 /bareos/release/latest/ 路径已失效(访问返回 404)。

current 通道 xUbuntu_22.04 源接入后,apt-cache madison bareos 实测输出:

    bareos | 25.1.2~pre49.d5742f640-124 | https://download.bareos.org/current/xUbuntu_22.04  Packages
    bareos | 25.1.2~pre49.d5742f640-124 | https://download.bareos.org/current/xUbuntu_22.04  Sources

即社区 current 通道只提供单一版本的滚动预发布构建(版本串含 ~pre 与提交哈希)。与之对照,GitHub bareos/bareos 仓库的最新稳定 tag 为 25.1.1(2026-09-03 发布),同一时点另有 25.0.4 / 24.0.11 / 23.1.8 三条分支的补丁版本在维护。

💡 说明:本篇实测采用 current 通道构建(25.1.2~pre49.d5742f640),它是社区源唯一可 apt 直装的版本线,对应 25.1 功能分支;对版本固定性要求高的环境请评估 3.2 节的版本策略,或考虑 Bareos 官方商业订阅仓库(download.bareos.com,提供经过验证的发行版本)。

3.2 升级、降级与多版本管理

  • 升级:current 通道滚动更新,定期执行 apt-get update && apt-get upgrade 即可跟进最新构建;升级 Director 前建议先备份 /etc/bareos/ 全目录与目录数据库(包内置的 BackupCatalog 作业即是为此设计的目录库备份作业);
  • 降级:current 通道仅保留最新构建(apt-cache madison 实测单版本),无法 apt-get install bareos=<旧版本> 回滚;确需固定版本的团队应自建内部镜像仓库缓存 deb 包,或使用官方订阅仓库;
  • 多版本并存:Bareos 不支持同机多版本并存(同一套系统服务名),多版本需求按「每台服务器一个版本」规划,Director 与 FD/SD 的大版本协议由服务端兼容(旧客户端连接新 Director 属官方支持的形态)。

四、在线安装方案(A:官方 APT 仓库)

本章为推荐主线方案:接入官方 current 通道 APT 源,apt-get 一次装齐全家桶,dbconfig-common 自动完成目录库初始化,systemd 托管三守护进程,最后跑通首次备份与还原。

4.1 方案说明

该方案适用于可联网的 Ubuntu 22.04 服务器。安装内容为一个 bareos 元包(拉齐 Director/Storage/File Daemon/bconsole)+ 目录库后端 bareos-database-postgresql + WebUI bareos-webui,连同依赖共 63 个包(含 Apache、PHP 8.1、dbconfig-common、postfix 邮件工具等)。

4.2 接入 Bareos 官方 APT 源

先创建密钥目录并下载官方签名密钥、转换为 keyring 格式:

install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://download.bareos.org/current/xUbuntu_22.04/Release.key -o /tmp/Release.key
gpg --dearmor -o /etc/apt/keyrings/bareos-experimental.gpg /tmp/Release.key

验证密钥指纹(应与下方实测一致):

gpg --show-keys --with-colons /etc/apt/keyrings/bareos-experimental.gpg | awk -F: '/^fpr/{print $10; exit}'

实测回显(按 4 位分组展示):

8283 4CF0 02D8 9BA5 5C1E D0AA 42DA 24A6 DFEF 9127

再写入 deb822 格式的源文件 /etc/apt/sources.list.d/bareos.sources(内容与官方要求一致):

cat > /etc/apt/sources.list.d/bareos.sources <<'EOF'
Types: deb deb-src
URIs: https://download.bareos.org/current/xUbuntu_22.04
Suites: /
Architectures: amd64
Signed-By: /etc/apt/keyrings/bareos-experimental.gpg
EOF

刷新索引并确认 Bareos 包已可解析:

apt-get update
apt-cache madison bareos

apt-get update 正常结束时以 Reading package lists... 收尾、无报错;apt-cache madison bareos 输出已在 3.1 节实录(25.1.2~pre49.d5742f640-124)。

4.3 安装 Bareos 全家桶

apt-get install -y bareos bareos-database-postgresql bareos-webui

apt 解析出 63 个新包(节选,实测首尾):

The following NEW packages will be installed:
  apache2 apache2-bin apache2-data apache2-utils bareos bareos-bconsole
  bareos-client bareos-common bareos-database-common bareos-database-postgresql
  bareos-database-tools bareos-director bareos-filedaemon bareos-storage
  bareos-tools bareos-webui bsd-mailx bzip2 cpio dbconfig-common dbconfig-pgsql
  file gawk libapr1 libaprutil1 ...
  php-curl php-date php-fpm php-intl php-json php8.1-cli php8.1-common
  php8.1-curl php8.1-fpm php8.1-intl php8.1-opcache php8.1-readline postfix ...
0 upgraded, 63 newly installed, 0 to remove and 0 not upgraded.
Need to get 19.7 MB of archives.

安装过程中有三个关键阶段,实测回显如下。

阶段一:配置占位符自动替换。各组件包安装时把配置模板里的占位符替换为本机主机名与随机生成的口令(节选):

Setting up bareos-filedaemon (25.1.2~pre49.d5742f640-124) ...
Info: replacing 'XXX_REPLACE_WITH_LOCAL_HOSTNAME_XXX' with 'bareos-server' in /etc/bareos/bareos-fd.d/client/myself.conf
Info: replacing 'XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX' in /etc/bareos/bareos-fd.d/director/bareos-dir.conf
Setting up bareos-storage (25.1.2~pre49.d5742f640-124) ...
Info: replacing 'XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX' in /etc/bareos/bareos-sd.d/director/bareos-dir.conf
Setting up bareos-bconsole (25.1.2~pre49.d5742f640-124) ...
Info: replacing 'XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX' in /etc/bareos/bconsole.conf

阶段二:dbconfig-common 自动建目录库(bareos-database-common 配置阶段,全程无需人工输入):

Setting up bareos-database-common (25.1.2~pre49.d5742f640-124) ...
dbconfig-common: writing config to /etc/dbconfig-common/bareos-database-common.conf

Creating config file /etc/dbconfig-common/bareos-database-common.conf with new version
creating postgres user bareos:  success.
verifying creation of user: success.
creating database bareos: success.
verifying database bareos exists: success.
populating database via sql...  done.
dbconfig-common: flushing administrative password

即:自动创建 PostgreSQL 用户 bareos、数据库 bareos,并灌入完整 Schema。数据库连接参数落在 /etc/dbconfig-common/bareos-database-common.conf,Director 侧对应 /etc/bareos/bareos-dir.d/catalog/MyCatalog.conf(dbname="bareos" dbuser="bareos" dbpassword="",走 Unix socket + peer 认证,因此密码为空)。

阶段三:WebUI 接线提示。php8.1-fpm 包明确提示「默认不启用 PHP FPM 与 Apache 的接线」,bareos-webui 包随后自动启用了 rewrite/proxy/proxy_fcgi 模块并注册站点配置(节选):

NOTICE: Not enabling PHP 8.1 FPM by default.
NOTICE: To enable PHP 8.1 FPM in Apache2 do:
NOTICE: a2enmod proxy_fcgi setenvif
NOTICE: a2enconf php8.1-fpm
Setting up bareos-webui (25.1.2~pre49.d5742f640-124) ...
Enabling module rewrite.
Enabling module proxy.
Enabling module proxy_fcgi.
Enabling conf bareos-webui.

⚠️ 注意:Apache 侧尚未启用 php8.1-fpm 的转发配置(a2enconf php8.1-fpm),此时访问 WebUI 会 404,必须在 4.6 节手动补齐。

4.4 验证 systemd 服务与端口

三个守护进程在包安装时已被写入 multi-user.target.wants 并创建别名(实测安装日志):

Created symlink /etc/systemd/system/bareos-fd.service → /lib/systemd/system/bareos-filedaemon.service.
Created symlink /etc/systemd/system/multi-user.target.wants/bareos-filedaemon.service → /lib/systemd/system/bareos-filedaemon.service.
Created symlink /etc/systemd/system/bareos-sd.service → /lib/systemd/system/bareos-storage.service.
Created symlink /etc/systemd/system/bareos-dir.service → /lib/systemd/system/bareos-director.service.

确认三服务运行状态(注意服务正式名是 bareos-director/bareos-storage/bareos-filedaemon,bareos-dir/bareos-sd/bareos-fd 只是别名):

systemctl is-active bareos-director
systemctl is-active bareos-storage
systemctl is-active bareos-filedaemon

实测回显(三次执行依次返回):

active
active
active

确认三端口监听与进程归属:

ss -tlnp | grep -E '9101|9102|9103'
ps -ef | grep '[b]areos'

实测回显:

LISTEN 0      100                0.0.0.0:9101        0.0.0.0:*    users:(("bareos-dir",pid=15595,fd=4))
LISTEN 0      100                0.0.0.0:9102        0.0.0.0:*    users:(("bareos-fd",pid=15215,fd=4))
LISTEN 0      100                0.0.0.0:9103        0.0.0.0:*    users:(("bareos-sd",pid=15216,fd=4))

root       15215       1  0 17:36 ?        00:00:00 /usr/sbin/bareos-fd -f
bareos     15216       1  0 17:36 ?        00:00:00 /usr/sbin/bareos-sd -f
bareos     15595       1  0 17:40 ?        00:00:00 /usr/sbin/bareos-dir -f

三个守护进程分别以系统用户 bareos(Director/SD)与 root(FD 默认以 root 运行以便读取全盘文件)运行,-f 表示前台运行交由 systemd 托管。

4.5 bconsole 连接验证与配置自检

bconsole 是与 Director 交互的命令行,连接成功即可确认整套链路(Director + Catalog)就绪:

echo "quit" | bconsole

实测回显:

Connecting to Director localhost:9101
 Encryption: TLS_CHACHA20_POLY1305_SHA256 TLSv1.3
1000 OK: bareos-dir Version: 25.1.2~pre49.d5742f640 (16 October 2026)
Bareos community build (UNSUPPORTED).
Get professional support from https://www.bareos.com
You are connected using the default console

再对 Director 配置做一次语法自检(注意必须以 bareos 系统用户执行,root 直跑会因数据库 peer 认证失败而报错,见八、常见问题问题 3):

runuser -u bareos -- bareos-dir -t
echo $?

实测回显:

0

4.6 WebUI 接线与首次备份还原闭环

WebUI 接线。补齐 PHP FPM 与 Apache 的转发配置并重启相关服务:

a2enmod proxy_fcgi setenvif
a2enconf php8.1-fpm
systemctl restart php8.1-fpm
systemctl restart apache2

a2enconf 回显:

Enabling conf php8.1-fpm.
To activate the new configuration, you need to run:
  systemctl reload apache2

在本机验证登录页可达:

curl -sI http://localhost/bareos-webui/ | head -4
curl -s http://localhost/bareos-webui/ | grep -oE '<title>[^<]*</title>'

实测回显:

HTTP/1.1 200 OK
Date: Wed, 21 Oct 2026 18:14:17 GMT
Server: Apache/2.4.52 (Ubuntu)
Expires: Thu, 19 Nov 1981 08:52:00 GMT
<title>Bareos - Login</title>

浏览器访问 http://<服务器IP>/bareos-webui/ 即见登录页。登录账号使用 Director 上的命名 Console 资源:官方默认提供示例配置 /etc/bareos/bareos-dir.d/console/admin.conf.example,复制启用并把口令改为本教程的演示口令:

cp /etc/bareos/bareos-dir.d/console/admin.conf.example /etc/bareos/bareos-dir.d/console/admin.conf
sed -i 's/Password = "admin"/Password = "q1w2e3r4"/' /etc/bareos/bareos-dir.d/console/admin.conf

修改后内容为(示例文件自带 TLS Enable = No,因为 PHP 不支持 TLS-PSK,需关闭或改用证书):

Console {
  Name = admin
  Password = "q1w2e3r4"
  Profile = "webui-admin"
  TLS Enable = No
}

在 bconsole 中执行 reload 让 Director 加载新 Console 资源:

echo "reload" | bconsole | tail -3

实测回显:

reload
reloaded
You have messages.

⚠️ 注意:实测中,以该命名 Console 口令从 bconsole/WebUI 发起连接时 Director 日志报 TLS Negotiation failed: SSL routines::binder does not verify,WebUI 登录未能在本环境闭环(登录页可达、账号配置已加载)。排查方向与日志证据见八、常见问题问题 5;命名 Console 的 TLS-PSK 语义建议进一步对照官方 WebUI 章节核实后再投入生产使用。

首次备份。包安装后自带一套可运行的默认作业(备份 /usr/sbin 的 SelfTest 文件集),在 bconsole 里非交互触发一次全量备份:

printf "run job=backup-bareos-fd level=Full\nyes\nquit\n" | bconsole

实测回显(节选):

run job=backup-bareos-fd level=Full
Using Catalog "MyCatalog"
Run Backup job
JobName:  backup-bareos-fd
Level:    Full
Client:   bareos-fd
Format:   Native
FileSet:  SelfTest
Pool:     Full (From Job FullPool override)
Storage:  File (From Job resource)
When:     2026-10-21 18:15:21
Priority: 10
OK to run? (yes/mod/no): yes
Job queued. JobId=3
You have messages.

作业结束消息(messages 命令回显,节选):

  SD Files Written:       202
  FD Bytes Read:          19,081,236 (19.08 MB)
  SD Bytes Written:       19,101,914 (19.10 MB)
  Rate:                   19081.2 KB/s
  Volume name(s):         Full-0001
  FD termination status:  OK
  SD termination status:  OK
  Termination:            Backup OK

首次还原。把刚才备份的数据还原到重定向目录(还原作业名 RestoreFiles,目标路径 Where = /tmp/bareos-restores):

printf "restore jobid=1 client=bareos-fd where=/tmp/bareos-restores select all done\nyes\nquit\n" | bconsole

回显确认(节选):

Job queued. JobId=2

验证还原结果与作业记录:

ls /tmp/bareos-restores/usr/sbin | head -3
printf "list jobs\nquit\n" | bconsole | tail -10

实测回显:

a2disconf
a2dismod
a2dissite

+-------+------------------+-----------+---------------------+----------+------+-------+----------+------------+-----------+
| jobid | name             | client    | starttime           | duration | type | level | jobfiles | jobbytes   | jobstatus |
+-------+------------------+-----------+---------------------+----------+------+-------+----------+------------+-----------+
|     1 | backup-bareos-fd | bareos-fd | 2026-10-21 17:38:26 | 00:00:01 | B    | F     |      202 | 19,081,236 | T         |
|     2 | RestoreFiles     | bareos-fd | 2026-10-21 17:38:50 | 00:00:02 | R    | F     |      202 | 19,081,236 | T         |
+-------+------------------+-----------+---------------------+----------+------+-------+----------+------------+-----------+

jobstatus 列 T 表示正常终止(Terminated OK)。至此「安装 → 备份 → 还原」闭环完成,Catalog 数据库直查亦可佐证:

runuser -u bareos -- psql -d bareos -Atc "SELECT count(*) FROM job"

实测回显:

2

五、deb 离线包安装方案(B:断网环境)

本章为备用方案:目标服务器无法联网时,在同等系统的联网机上收集 deb 包,拷贝到目标机后用 dpkg -i 离线安装。方案前提:目标机已按第二章装好 PostgreSQL 并处于运行状态。

5.1 方案说明

利用 apt-get install --download-only 在「同等系统、已装好 PostgreSQL」的联网机上下载 Bareos 及其全部依赖的 deb 包(实测 63 个、19MB),把包含 *.deb 的目录整体拷贝到离线服务器,再以 dpkg -i 一次安装全部包。

5.2 在联网环境收集 deb 包

联网机上先接入 Bareos 源(4.2 节步骤),确认 PostgreSQL 已装(与目标机一致),然后仅下载不安装:

apt-get update
apt-get install --download-only -y bareos bareos-database-postgresql bareos-webui

实测回显(节选):

Get:2 https://download.bareos.org/current/xUbuntu_22.04  bareos-common 25.1.2~pre49.d5742f640-124 [963 kB]
...
Fetched 19.7 MB in 5s (4069 kB/s)
Download complete and in download only mode

把下载的 deb 归拢到一个传输目录(63 个包、约 19MB):

mkdir -p /root/debs
cp /var/cache/apt/archives/*.deb /root/debs/
ls /root/debs/*.deb | wc -l
du -sh /root/debs

实测回显:

63
19M     /root/debs

💡 说明:--download-only 只下载「当前系统还缺」的包。因此收集机的系统形态要尽量与目标机一致(同版本 Ubuntu、同样已装 PostgreSQL),否则离线机可能缺依赖。

5.3 目标服务器离线安装

把 debs/ 目录拷贝到离线服务器(U 盘/内网传输均可),模拟离线状态执行安装:

dpkg -i /root/debs/*.deb

第一遍安装会报错(实测回显,节选):

dpkg: regarding .../bareos-common_25.1.2~pre49.d5742f640-124_amd64.deb containing bareos-common:
 bareos-common pre-depends on gawk
  gawk is not installed.
dpkg: error processing archive /root/debs/bareos-common_25.1.2~pre49.d5742f640-124_amd64.deb (--install):
 pre-dependency problem - not installing bareos-common
...
dpkg: error processing archive /root/debs/gawk_1%3a5.1.0-1ubuntu0.2_amd64.deb (--install):
 pre-dependency problem - not installing gawk
Errors were encountered while processing:
 /root/debs/bareos-common_25.1.2~pre49.d5742f640-124_amd64.deb
 /root/debs/gawk_1%3a5.1.0-1ubuntu0.2_amd64.deb

这是 dpkg -i 的经典 Pre-Depends 顺序问题:dpkg 按命令行展开顺序解包,bareos-common 按字母序排在 gawk 之前,而它 Pre-Depends gawk,gawk 又 Pre-Depends libmpfr6,第一遍无法全部满足。此时大部分包已解包完毕,先用一遍配置补完把已解包的基础依赖(libmpfr6/gawk 等)配置到位:

dpkg --configure -a

再重跑一遍安装(此时 gawk 已就位,bareos-common 顺利通过 Pre-Depends 检查):

dpkg -i /root/debs/*.deb

实测回显(节选):

Setting up bareos-common (25.1.2~pre49.d5742f640-124) ...
Setting up bareos-database-postgresql (25.1.2~pre49.d5742f640-124) ...
...
Setting up bareos (25.1.2~pre49.d5742f640-124) ...
Processing triggers for libc-bin (2.35-0ubuntu3.15) ...
Processing triggers for php8.1-fpm (8.1.2-1ubuntu2.28) ...

以 echo $? 确认退出码为 0,且 63 个包全部出现在 Setting up 列表中即安装成功。dbconfig-common 在非交互模式下同样自动完成建库(行为与在线方案一致,/etc/dbconfig-common/bareos-database-common.conf 落盘、bareos 数据库与用户创建成功)。

5.4 启动服务并验证

离线 dpkg -i 安装的包不会自动启动服务(与在线 apt 安装的差异点),需手动拉起:

systemctl start bareos-director
systemctl start bareos-storage
systemctl start bareos-filedaemon
systemctl is-active bareos-director
systemctl is-active bareos-storage
systemctl is-active bareos-filedaemon

实测回显(三次 is-active 依次返回):

active
active
active

bconsole 连接验证(回显同 4.5 节,1000 OK: bareos-dir Version: ...),WebUI 接线步骤同 4.6 节。

六、方案对比与选择建议

两套方案的实测对照如下:

维度方案 A:官方 APT 仓库在线安装方案 B:deb 离线包安装
是否需联网安装全程联网仅收集阶段联网,目标机全程离线
安装命令apt-get install -y bareos bareos-database-postgresql bareos-webuidpkg -i /root/debs/*.deb(需 2~3 遍配合 dpkg --configure -a)
版本current 通道最新滚动构建收集时缓存的固定构建
目录库初始化dbconfig-common 自动建库相同(自动建库)
服务启动安装即自启(systemd enable)需手动 systemctl start 三个服务
依赖清理依赖包带自动标记,apt autoremove 可清理dpkg 安装不带自动标记,apt autoremove 不清理(实测移除 0 个)
适用场景可联网服务器、滚动跟进内网隔离、版本固定诉求

选择建议:可联网环境一律选方案 A(命令少、自动启服、依赖可清理);内网隔离或需版本固定的服务器选方案 B,并接受「手动启服 + 依赖不自动清理」两个差异点。

七、配置说明

7.1 安装后的配置目录骨架

Bareos 采用「一目录一组件」的配置组织,全部落在 /etc/bareos/ 下的三个子目录加一个控制台文件(安装后自动生成):

路径归属安装后内容
/etc/bareos/bareos-dir.d/Director(调度策略)catalog/client/console/director/fileset/job/jobdefs/messages/pool/profile/schedule/storage 共 12 类资源、约 30 个配置文件
/etc/bareos/bareos-sd.d/Storage Daemon(存储端)device/director/messages/sd 共 4 类资源
/etc/bareos/bareos-fd.d/File Daemon(客户端)client/director/messages 共 3 类资源
/etc/bareos/bconsole.conf控制台连接本地 Director 的口令与地址

配置生效机制:修改任意资源文件后执行 bconsole 内的 reload 命令即可热加载(实测回显 reloaded),无需重启服务;资源文件语法错误时 Director 会拒绝加载并打印错误行号。全部资源文件的结构、逐参数含义与生产模板见本专栏配置参数篇。

7.2 安装后建议立即修改的项

  • Console 口令:默认 Console 口令为安装时随机生成(/etc/bareos/bconsole.conf 与 /etc/bareos/bareos-dir.d/director/bareos-dir.conf 中成对出现),如有安全管理要求可成对替换;
  • WebUI 管理账号:按 4.6 节启用 admin 命名 Console(口令本教程统一用演示口令 q1w2e3r4,生产请换强口令);
  • 存储容量规划:SD 默认把备份写到 /var/lib/bareos/storage/,请确认该分区容量满足首次全量需求,或修改 bareos-sd.d/device/FileStorage.conf 的 Archive Device 指向大容量分区;
  • 邮件通知:默认 Messages 资源通过本机 bsmtp+postfix 发送通知给 root,未配置邮件投递的服务器可忽略(通知仍可在 bconsole 的 messages 命令中查看)。

八、常见问题(FAQ)

以下问题均为实测复现,每条给出「故障现象 → 根因 → 解法(实测)」。

8.1 apt update 报 No system certificates available

  • 现象:接入 Bareos 源后 apt-get update 报:
    W: https://download.bareos.org/current/xUbuntu_22.04/InRelease: No system certificates available. Try installing ca-certificates.
    W: Failed to fetch https://download.bareos.org/current/xUbuntu_22.04/InRelease  Certificate verification failed: The certificate is NOT trusted.
    
  • 根因:Ubuntu 22.04 最小化安装没有 ca-certificates,HTTPS 源无法完成 TLS 校验;
  • 解法:apt-get install -y ca-certificates 后重新 apt-get update(实测恢复)。

8.2 旧教程的 /bareos/release/latest/ 源地址 404

  • 现象:按旧教程配置 https://download.bareos.org/bareos/release/latest/xUbuntu_22.04/ 报 404;
  • 根因:官方仓库结构已改为根级 current/、experimental/、next/ 三通道,/bareos/release/ 路径不再存在(2026-10-22 实查);
  • 解法:源 URIs 改用 https://download.bareos.org/current/xUbuntu_22.04(见 4.2 节)。

8.3 root 执行 bareos-dir -t / bareos-dbcheck 报 Peer authentication failed

  • 现象:root 直接执行 bareos-dir -t 或 bareos-dbcheck -b -c /etc/bareos 报:
    Bareos could not connect to the Catalog: Peer authentication failed for user "bareos"
    
  • 根因:dbconfig-common 默认为本机 Unix socket + ident/peer 认证,要求「操作系统用户与数据库用户同名」,即必须以系统用户 bareos 身份连接数据库;root 不满足;
  • 解法:切换到 bareos 用户执行(实测 exit 0):
    runuser -u bareos -- bareos-dir -t
    runuser -u bareos -- bareos-dbcheck -b -c /etc/bareos
    
    如需以 root 的 shell 常态化操作,可在 pg_hba.conf 调整认证策略,但不建议(放开即扩大攻击面)。

8.4 WebUI 访问 404

  • 现象:安装完成后访问 http://<服务器IP>/bareos-webui/ 返回 404;
  • 根因:Ubuntu 的 php8.1-fpm 包默认不把 PHP FPM 接入 Apache(安装日志明确 NOTICE 提示),bareos-webui 包只启用了 rewrite/proxy 模块,未启用 php8.1-fpm 的转发配置;
  • 解法(实测恢复为 200):
    a2enmod proxy_fcgi setenvif
    a2enconf php8.1-fpm
    systemctl restart php8.1-fpm
    systemctl restart apache2
    

8.5 WebUI/命名 Console 登录失败(binder does not verify)

  • 现象:登录页可达、admin Console 配置已 reload,但浏览器登录返回「Sorry, cannot authenticate. Wrong username, password or SSL/TLS handshake failed.」;以该 Console 口令在 bconsole 客户端侧连接时 Director 日志记录:
    TLS Negotiation failed: SSL routines::binder does not verify
    
  • 根因:Director 默认对 Console 连接启用 TLS-PSK;「PHP 不支持 TLS-PSK」是 admin.conf.example 注释中官方自述的背景(示例配置因此带 TLS Enable = No)。本环境实测 WebUI 登录请求未在 Director 侧产生连接日志(未触达 Director),TLS-PSK binder 校验失败与 PHP 侧 PSK 实现的兼容性是该问题的主要排查方向;
  • 解法:本环境未能在时间盒内完成登录闭环,如实记录为「未解决项」。排查建议按序:确认 TLS Enable = No 已 reload 生效(show console)→ 检查 Director 日志(journalctl -u bareos-director)中是否出现该连接的 TLS 报错 → 对照官方 WebUI 章节复核命名 Console 配置语法 → 必要时改用 TLS 证书方案替代 PSK。生产启用 WebUI 前务必先解决此认证链路。

8.6 离线 dpkg -i 报 pre-dependency problem

  • 现象:5.3 节实录,bareos-common/gawk 报 pre-dependency problem - not installing;
  • 根因:dpkg -i 单遍安装时 Pre-Depends 无法跨包满足;
  • 解法:dpkg --configure -a 后重跑 dpkg -i(实测通过,见 5.3 节)。

8.7 卸载后 PostgreSQL 中数据库与用户残留

  • 现象:apt-get purge -y "bareos*" 成功移除全部 12 个 bareos 包与 /etc/bareos/,但 PostgreSQL 中 bareos 数据库与 bareos 用户仍在(实测:psql -Atc "SELECT datname FROM pg_database" 仍列出 bareos);
  • 根因:非交互模式下 dbconfig-common 的 purge 流程不删除数据库(避免误删数据的保守行为);
  • 解法:手动清理(实测):
    su - postgres -c "dropdb bareos"
    su - postgres -c "dropuser bareos"
    

8.8 离线安装的依赖无法用 autoremove 清理

  • 现象:方案 B 卸载 bareos 后执行 apt-get autoremove --purge -y,实测 0 个包被移除,apache2/php 等依赖仍在;
  • 根因:dpkg -i 安装的包不携带 apt 的「自动安装」标记,autoremove 的清理范围不覆盖它们;
  • 解法:按需手动 apt-get purge -y apache2 php8.1-fpm dbconfig-common dbconfig-pgsql 等,或重新以 apt 方式安装管理。

九、卸载与清理

停止并卸载 Bareos 全部软件包与配置(实测回显,节选):

apt-get purge -y "bareos*"
Removing bareos (25.1.2~pre49.d5742f640-124) ...
Removing bareos-client (25.1.2~pre49.d5742f640-124) ...
Removing bareos-bconsole (25.1.2~pre49.d5742f640-124) ...
...
Purging configuration files for bareos-director (25.1.2~pre49.d5742f640-124) ...
Purging configuration files for bareos-storage (25.1.2~pre49.d5742f640-124) ...

验证卸载干净(dpkg -l | grep -c bareos 返回 0、/etc/bareos 已不存在):

dpkg -l | grep -c bareos
ls /etc/bareos

实测回显:

0
ls: cannot access '/etc/bareos': No such file or directory

清理目录数据库与备份产物(purge 不会自动清理,实测确认残留):

su - postgres -c "dropdb bareos"
su - postgres -c "dropuser bareos"
rm -rf /var/lib/bareos
rm -rf /var/lib/bareos-webui

⚠️ 注意:dropdb 与 rm -rf 不可逆,执行前确认备份产物不再需要;如只是重装 Bareos,保留 /var/lib/bareos/storage/ 可让历史 Volume 继续可用。

十、参考链接