3.10 KVM、QEMU 等平台安装 FreeBSD(传统引导和 MBR 分区表)
本节研究在 KVM/QEMU 等硬件辅助虚拟化平台上,通过传统 BIOS + MBR 方式部署 FreeBSD 的技术方案,特别适用于不直接提供 FreeBSD 镜像的云服务环境,为这些场景下的系统部署提供可行路径。
注意
此方法不支持 OpenVZ、LXC 等容器化技术,因为他们本质上不属于完整的虚拟化解决方案,宿主机与客户机共享内核。由于内核已经是 Linux,自然无法运行 FreeBSD 系统。
此方法不支持 UEFI 引导模式(BIOS + GPT 分区表同样不支持),仅支持传统 BIOS + MBR 引导方式,请确保环境符合要求。
警告
请注意数据安全,以下教程具有一定风险,并且要求操作者具备一定的动手能力与系统管理知识。
概述
本节介绍在 KVM、QEMU 等平台上安装 FreeBSD 的方法。在各种采用 KVM、QEMU 虚拟化架构的服务商中,大部分不直接提供 FreeBSD 系统支持,只能通过特殊方法手动安装。
他们虽然在部分机型上提供 FreeBSD 系统镜像,但支持并不完善,例如自带镜像默认未启用 BBR,而部分机型则完全不提供 FreeBSD 支持。
本方法无需使用 mfsLinux 作为安装介质并通过 dd 命令进行安装。
mfsBSD 是一款完全载入内存的 FreeBSD 系统,类似于 Windows PE(Preinstallation Environment)系统。
本文通过 GRUB2 借助 MEMDISK 模块将 mfsBSD 载入为内存盘,并从中启动。然后再通过 mfsBSD 中的 bsdinstall 命令安装 FreeBSD。
获取现有网络配置
有的服务器可能不使用 DHCP 服务,而需要手动指定 IP,这种情况多见于小厂服务器。
安装前,请在原 Linux 系统中确认 IP 地址和子网掩码。
可以用命令 ip addr 和 ip route show 查看网关信息。
准备 mfsBSD
我们需要下载 mfsBSD。你可以下载到本地计算机,再通过 SCP、SFTP 或 WinSCP 等工具上传至服务器;也可以直接在服务器上使用命令行下载。
注意
仅支持 IPv6 的服务器无法通过命令行下载,因为 mfsBSD 的下载地址不支持 IPv6 网络。
针对该问题,笔者已通过邮件与作者沟通,但截至发稿时尚未收到回应。
内存 <= 512 MB
下载 mfsBSD Mini 14.1 RELEASE ISO 镜像:
校验码(官网链接指向错误,已反馈但未收到回复):checksums
技巧
内存小于或等于 4 GB 的机器不建议使用 ZFS 文件系统。
同时,mfsBSD Mini 可能无法正常加载
zfs内核模块。这种情况下你只能使用
ufs文件系统。
内存 > 512 MB
下载 mfsBSD 14.2 RELEASE AMD64 ISO 镜像:
校验码:checksums
准备 mfsBSD.iso
将下载的 mfsBSD 重命名为 mfsbsd.iso,并放置在 /boot 目录下(否则可能因 LVM 导致硬盘分区无法识别)。
获取 memdisk
警告
请注意,GRUB2 自带的
memdisk.mod模块并非此处所需的 MEMDISK。memdisk 必须通过包管理器安装的 syslinux 软件提供。
安装 syslinux
Debian/Ubuntu
Rocky Linux
提取 memdisk
从已安装的 syslinux 包中提取 memdisk 文件到 /boot:
取消隐藏的 GRUB 菜单
取消 GRUB2 菜单自动隐藏设置:
启动 mfsBSD
重启并进入 GRUB 菜单后,按 c 键进入命令行模式:


注意
如果遇到问题,可尝试切换到串口控制台(
console=comconsole),或检查镜像完整性。
在 Proxmox 中,可直接点击界面上的 xterm.js 按钮进入串口控制台排查问题。


为 mfsBSD 配置网络
mfsBSD 的 root 默认密码为 mfsroot。你可以使用 SSH 工具连接后进行安装。
技巧
如果平台支持 DHCP 自动获取网络配置,可跳过本节。
重启进入 mfsBSD 后,配置网络。
以接口 vtnet0 为例,配置 IPv4:
警告
请将下面的示例替换为你的实际 IP 地址和路由信息。
检查网络配置:
开始安装
使用 kldload zfs 加载 zfs 模块,然后运行 bsdinstall。
这部分你可以参照其他章节的方法安装。
故障排除与未竟事宜
GPT 分区表下如何安装?
也许可以参考:
Konstantin Kelemen. Booting mfsBSD via PXE with UEFI[EB/OL]. (2019-10-24)[2026-03-29]. https://unix.stackexchange.com/questions/563053/booting-mfsbsd-via-pxe-with-uefi. .
FreeBSD Forums. Booting mfsBSD via iPXE on EFI[EB/OL]. (2018-10-05)[2026-03-29]. https://forums.freebsd.org/threads/booting-mfsbsd-via-ipxe-on-efi.66169/. .
FreeBSD 中文社区. FreeBSD 下搭建 PXE 服务器[EB/OL]. [2026-03-29]. https://book.bsdcn.org. 采用 PXE 方式引导。 .
待解决、待尝试。
VMware、VirtualBox 无法按照此方法安装
对于 VirtualBox,可尝试将虚拟化引擎选择为“KVM”后再次引导(笔者的机器未能成功引导,结果可能因环境而异)。

待尝试的方案
dd写入 VM-IMAGES 列表下的镜像在 QEMU 平台上,尝试直接使用
dd

思路:在该界面可使用 ? 命令查看磁盘信息,或许可以继续完成引导。
通过 mfsLinux
ddmfsBSD

此问题尚待验证。
课后习题
研究 MEMDISK 模块的工作原理,分析它如何将 ISO 镜像加载为内存盘,尝试构建一个最小化的 MEMDISK 启动方案并验证。
尝试文中列出的待尝试方案,特别是
dd写入 VM-IMAGES 的方法,记录实验结果并分析失败或成功的技术原因。分析 GPT 分区表与 MBR 分区表在这种安装场景下的技术差异,研究为什么本教程仅支持传统 BIOS + MBR 方式,探索 UEFI + GPT 方案的可行性。
最后更新于