前言
FreeBSD 是一个类 UNIX 操作系统,因其卓越的稳定性、强大的 ZFS 文件系统和先进的网络协议栈,在服务器领域拥有众多忠实用户。本文将以 Proxmox VE (PVE) 虚拟机平台为例,手把手带你完成 FreeBSD 的完整安装过程。
适用版本 :FreeBSD 14.x / 15.x
虚拟化平台 :Proxmox VE 7.x / 8.x
目标读者:零基础友好,生产环境可参考
目录
-
PVE 虚拟机创建配置
-
启动与分辨率问题解决
-
安装类型选择(Distribution Sets vs Packages)
-
网络安装配置
-
磁盘分区(ZFS vs UFS)
-
ZFS 池详细配置
-
软件包选择
-
系统服务配置
-
用户创建与 Shell 选择
-
时区与加密设置
-
完成安装与首次登录
-
安装后首次配置建议
-
常见问题 FAQ
1. PVE 虚拟机创建配置
在 PVE Web 管理界面中创建虚拟机,推荐以下配置:
| 配置项 | 推荐设置 | 说明 |
|---|---|---|
| 操作系统 (OS) | Other |
PVE 没有 FreeBSD 专用选项,选 Other 即可 |
| BIOS | SeaBIOS |
兼容性更广;OVMF 也可用 |
| 机型 (Machine) | q35 |
现代芯片组,兼容性更好 |
| CPU | host 或 x86-64-v3 |
host 性能最好,x86-64-v3 兼容性平衡 |
| CPU 标志 | 启用 +aes 和 +pdpe1gb |
硬件加速加密 + 1GB 大页提升内存性能 |
| 内存 | ≥ 4GB | ZFS 最低建议 2GB,实际使用 4GB+ 更从容 |
| 硬盘 | 总线 VirtIO Block,大小 ≥ 20GB |
VirtIO 提供最佳磁盘性能 |
| 网络 | 网卡 VirtIO (paravirtualized) |
VirtIO 提供最佳网络性能 |
| 显示 | VirtIO-GPU |
关键! 解决分辨率问题 |
| QEMU Guest Agent | 启用 | 实现优雅关机、快照一致性 |
⚠️ 特别注意 :
VirtIO-GPU是虚拟显卡,不是显卡直通!它只是 PVE 模拟出的一个虚拟显示设备,无需物理显卡。
2. 启动与分辨率问题解决
如果从 U 盘启动 FreeBSD 后分辨率极低,通常是因为默认显示驱动未能正确识别显示器。解决方案:
方案一:在 PVE 中更换虚拟显卡(推荐)
- 进入虚拟机 硬件 → 显示 → 将显卡类型改为
VirtIO-GPU或QXL
方案二:引导时临时调整
在 FreeBSD 启动菜单按 3 或 Esc 进入引导提示符 (OK):
text
OK set efi_max_resolution="1920x1080"
OK boot
方案三:永久配置
安装完成后,在 /boot/loader.conf 中添加:
text
efi_max_resolution="1920x1080"
3. 安装类型选择(Distribution Sets vs Packages)
启动安装程序后,会看到:
text
Select Installation Type
Would you like to install the base system using
traditional distribution sets or packages (technology preview)?
[Distribution Sets] [Packages (Tech Preview)]
| 特性 | Distribution Sets(传统) | Packages (Tech Preview)(新技术) |
|---|---|---|
| 安装方式 | 从本地介质解压 tar 包 | 从远程仓库下载二进制包 |
| 更新方式 | freebsd-update |
pkg upgrade(统一管理) |
| 稳定性 | 极高,生产级 | 技术预览,仍在完善 |
| 未来趋势 | 计划在 FreeBSD 16 中移除 | 未来默认方式 |
✅ 建议选择 Distribution Sets (生产环境稳定优先)。如果是个人尝鲜,可选择 Packages (Tech Preview) 体验统一 pkg 管理。
4. 网络安装配置
如果使用 bootonly.iso 或 mini-memstick.img,安装程序会提示:
text
Network Installation
No base system packages are included in this installation media.
The next few screens will allow you to configure networking.
这是正常提示,直接按 [OK] 继续。
PVE 中的网络配置
-
网卡识别为:
vtnet0(VirtIO 网卡) -
推荐使用 DHCP 自动获取 IP
-
DNS 可填写公共 DNS:
8.8.8.8、1.1.1.1
⚠️ 确保 PVE 虚拟机网络桥接(
vmbr0)配置正确,宿主机可上网。
5. 磁盘分区(ZFS vs UFS)
text
Partitioning
How would you like to partition your disk?
[Auto (ZFS)] [Auto (UFS)]
[Guided Root-on-ZFS] [Guided UFS Disk Setup]
[Manual Disk Setup (experts)] [Shell]
| 方案 | 特点 | 建议内存 |
|---|---|---|
| Auto (ZFS) | 数据校验、快照、压缩、RAID-Z | ≥ 4GB(推荐) |
| Auto (UFS) | 经典、轻量、简单可靠 | ≥ 1GB |
✅ 建议:内存 ≥ 4GB 选 Auto (ZFS),内存 < 4GB 选 Auto (UFS)。
6. ZFS 池详细配置
选择 Guided Root-on-ZFS 后会进入详细配置界面:
操作步骤
-
选择磁盘 :用上下键移到
stripe: 0 disks,按空格键 ,选择vtbd0(PVE 中的 VirtIO 磁盘),回车确认。✅ 确认后变为
stripe: 1 disks -
Pool Name :保持默认
zroot -
Encrypt Disks? :选
NO(虚拟机环境由宿主机加密) -
Partition Scheme :保持默认
GPT (BIOS+UEFI) -
Swap Size :保持默认
2g -
Mirror Swap? :选
NO(单盘无需镜像) -
Encrypt Swap? :选
NO(增加 CPU 开销,虚拟机无用) -
ZFS Pool Options :保持默认
compression=on atime=off
配置完成后,按 Tab → [Select] → 然后选 [Install]
最后确认
text
Are you sure you want to destroy the current contents of the following disks:
da8
[YES] [NO]
选择 [YES] 继续(虚拟机磁盘为空,放心覆盖)。
7. 软件包选择
text
A minimal set of packages suitable for a multi-user system is always installed.
Select additional packages you wish to install:
[X] base (系统核心,必选)
[X] kernel (内核,必选)
[ ] debug (调试符号,建议取消)
[ ] devel (C/C++ 编译器,新手建议取消)
[X] lib32 (32位兼容库,建议保留)
[X] optional (附加工具/游戏,可选,建议取消)
[ ] src (系统源码,新手建议取消)
[ ] tests (测试套件,建议取消)
✅ 推荐配置 :保留 base、kernel、lib32;取消 debug、devel、src、tests、optional。
💡
optional不是必须的,它包含一些传统 BSD 游戏和附加文档,不装完全不影响系统运行。
8. 系统服务配置
text
Choose the services you would like to be started at boot:
[X] sshd ✅ 推荐(远程管理必备)
[X] ntpd ✅ 推荐(时间同步)
[X] ntpd_sync_on_start ✅ 推荐(开机强制校时)
[ ] local_unbound ⚠️ 可选(本地 DNS 缓存,建议取消)
[ ] powerd ❌ 建议取消(虚拟机无用)
[ ] moused ❌ 建议取消(虚拟机无用)
[X] dumpdev ✅ 推荐(内核崩溃转储)
9. 用户创建与 Shell 选择
创建普通用户(强烈推荐)
日常操作不应使用 root,因此创建一个普通用户:
| 字段 | 填写建议 |
|---|---|
| Username | a1(或你喜欢的名字) |
| Full name | a1 |
| Uid | 留空(自动分配) |
| Login group | 留空(自动创建同名组) |
| Login group is a1. Invite a1 into other groups? \[\]: | 直接回车 |
| Login class default: | 直接回车 |
| Shell sh: | 选择 sh (自动化工具兼容性更好)或 tcsh(交互体验好) |
Shell 选择对比
| Shell | 特点 | 适用场景 |
|---|---|---|
sh |
轻量、稳定、兼容性最广 | 自动化工具管理(Ansible/Puppet) |
tcsh |
命令补全、历史记录,类似 C 语法 | 日常交互使用 |
bash |
Linux 标配,需单独安装 | 熟悉 Linux 的用户 |
⚠️ 如果将来打算用 Ansible 等工具管理,建议选择
sh,避免tcsh/csh语法不兼容导致任务执行失败。
后续问题全部回车默认:
-
Home directory [/home/a1]:→ 回车 -
Home directory permissions→ 回车 -
Use password-based authentication? [yes]:→ 回车 -
Use an empty password? [no]:→ 回车 -
Enter password:→ 输入密码(不显示)→ 回车 -
Enter password again:→ 再次输入 → 回车 -
Lock out the account after creation? [no]:→ 回车 -
Would you like to add any more users? [no]:→ 回车
10. 时区与加密设置
时区选择
text
Select a region
UTC
Africa
America
Antarctica
Asia ← 选择此项
...
-
中国:
Asia→Shanghai(或Taipei、Hong_Kong) -
日本:
Asia→Tokyo -
时区缩写显示
CST(China Standard Time),选择[Yes]确认
ZFS 加密
text
Enable ZFS encryption? (yes/no) [no]:
直接回车 (选 no)。虚拟机环境由 PVE 宿主机加密更合适,避免忘记密码导致数据全丢。
11. 完成安装与首次登录
安装完成后,系统提示:
text
The installation is now finished. Before exiting the installer,
would you like to open a shell in the new system to make any final manual modifications?
[Yes] [No]
选择 [No] → 回车 → 系统提示重启 → 移除安装 ISO → 重启虚拟机。
首次登录
text
FreeBSD (amd64)
login: a1
Password: (你设置的密码)
登录成功后,用 whoami 和 pwd 验证当前用户和环境。
12. 安装后首次配置建议
12.1 将用户加入 wheel 组(允许 su 切换到 root)
bash
su - (用 root 密码登录)
pw groupmod wheel -m a1
exit
之后 a1 用户就可以用 su - 切换到 root。
12.2 安装 sudo(可选)
bash
pkg install sudo
visudo
# 取消注释或添加:%wheel ALL=(ALL) ALL
12.3 配置静态 IP(如果使用 DHCP 不满足需求)
编辑 /etc/rc.conf:
bash
ifconfig_vtnet0="inet 192.168.1.100/24"
defaultrouter="192.168.1.1"
hostname="freebsd-vm"
重启网络:
bash
service netif restart
service routing restart
12.4 更新系统
bash
freebsd-update fetch install # 传统方式
pkg update && pkg upgrade # 如果装了 pkg
12.5 启用 NTP 校时(已开启,验证)
bash
ntpdate -q pool.ntp.org
service ntpd status
13. 常见问题 FAQ
Q1:U 盘启动后分辨率特别低怎么办?
A :在 PVE 中将虚拟显卡改为 VirtIO-GPU,或在引导时执行 set efi_max_resolution="1920x1080"。
Q2:VirtIO-GPU 是显卡直通吗?
A :不是。它是 PVE 模拟的虚拟显卡,无需物理显卡,只是解决显示兼容性问题。
Q3:安装时提示 "No base system packages are included" 是错误吗?
A :不是。这是网络安装镜像的正常提示,配置好网络后会自动下载。
Q4:应该选 Distribution Sets 还是 Packages (Tech Preview)?
A :生产/稳定环境选 Distribution Sets ;个人尝鲜选 Packages (Tech Preview) ,体验统一 pkg 管理。
Q5:ZFS 和 UFS 选哪个?
A :内存 ≥ 4GB 选 ZFS (快照、压缩、数据校验);内存小选 UFS(轻量简单)。
Q6:安装后 a1 用户无法用 su - 切换到 root?
A :用 root 登录,执行 pw groupmod wheel -m a1,将 a1 加入 wheel 组即可。
Q7:为什么建议用户的 Shell 选 sh 而不是 tcsh?
A :如果将来用 Ansible 等自动化工具管理,sh 的兼容性更好,避免 tcsh/csh 语法差异导致任务失败。
结语
至此,你已经完成了在 Proxmox VE 上从零安装 FreeBSD 的全过程。从虚拟机创建、网络配置、ZFS 分区、系统服务到用户管理,每一步都经过了实践验证。
FreeBSD 拥有庞大而完善的文档系统(man 命令),接下来你可以:
-
探索 ZFS 的高级功能(快照、克隆、发送/接收)
-
搭建 Web 服务(Nginx/Apache + PHP/MySQL)
-
学习 Jail 容器化(FreeBSD 的原生虚拟化技术)
如果在使用过程中遇到问题,欢迎在评论区留言交流!
📌 本文参考资源