3.6 腾讯云轻量云安装 FreeBSD(传统引导和 MBR 分区表)
本节演示在不依赖额外安装介质的前提下,借助腾讯云轻量云已有的 Linux 系统,通过本地硬盘完成 FreeBSD 的安装与部署。
安装前,请在原有的 Linux 系统中查看 IP 地址和子网掩码。
可使用命令 ip addr 和 ip route show 查看网关信息及最大传输单元(MTU)数值,同时注意子网和 CIDR 表示法。
由于部分服务器未启用 DHCP 服务,可能需要手动配置 IP。
3.6.1 视频教程
FreeBSD 中文社区. 08-腾讯云轻量云及其他服务器安装 FreeBSD[EB/OL]. [2026-04-04]. https://www.bilibili.com/video/BV1y8411d7pp.
视频内容与文字教程可能存在差异,任选其一操作。SCP 命令可以使用图形化工具 WinSCP 替代。安装完成后,建议按照其他章节设置密钥登录并禁用密码验证,以提升安全性。
3.6.2 腾讯云轻量云及阿里云轻量应用服务器介绍
腾讯云轻量应用服务器(即腾讯云轻量云) 以及 阿里云轻量应用服务器 均未提供 FreeBSD 系统支持,只能通过特殊方法手动安装。
警告
请注意数据安全。本节操作具有一定风险,且要求具备相应的操作能力。
上述服务器的管理面板未提供 FreeBSD 镜像,因此需要采用变通方法安装。由于 FreeBSD 与 Linux 在内核及可执行文件格式上不兼容,无法在 chroot 后删除原系统来安装。安装方法为:首先在内存盘中启动 FreeBSD 系统(即先引导 mfsBSD),然后格式化硬盘并安装新系统。mfsBSD 是完全载入内存的 FreeBSD 系统,类似于 Windows PE(Preinstallation Environment)环境。
需要下载 img 格式的 mfsBSD 镜像,可提前下载后通过 WinSCP 上传至服务器;若直接在服务器上下载,可能耗时较长(约两小时)。
3.6.3 取消隐藏的 GRUB 菜单
目前大多数 Linux 发行版的 GRUB 菜单默认隐藏,需开机时按 Esc 键调出,但该操作有时会直接进入 BIOS 设置界面。
因此,直接取消 GRUB2 菜单的自动隐藏设置更为便捷:
# grub2-editenv - unset menu_auto_hide3.6.4 使用 mfsLinux 写入 mfsBSD
由于 FreeBSD 与 Linux 生态不同,需要先引导至一个运行在内存中的 Linux 环境,在该环境中将 mfsBSD 写入硬盘,最后通过 bsdinstall 工具完成系统安装。
在 mfsBSD 下载页面的下方,可找到 mfsLinux,即所需的 Linux 环境。由于该文件仅提供 ISO 格式,无法在当前环境下直接启动。由于该环境基于纯 initrd 架构,需要从中提取内核和 initrd 文件,存放于硬盘并进行手动引导。
在典型的 Linux 系统中,initrd 是一个打包为内存盘的精简根文件系统,内含驱动程序、挂载工具以及启动初始化程序所必需的数据。开机时,引导加载程序(Bootloader)加载内核与 initrd,随后由 initrd 中的脚本执行启动准备,最后将控制权移交给硬盘上的初始化程序。
首先,将从该 ISO 中提取的内核和 initrd 文件放置于根目录。重启机器并进入 GRUB 命令行界面(可在引导倒计时时按 e 键进入编辑模式,删除原有 linux 和 initrd 行的内容并修改,完成后按 Ctrl+X 启动)。手动指定要启动的内核与 initrd(可使用 Tab 键补全路径)。输入 boot 并按回车继续启动,也可按 c 键进入 GRUB 命令行模式。
linux (hd0,msdos1)/vmlinuz # 指定内核文件路径
initrd (hd0,msdos1)/initramfs.igz # 指定初始 RAM 磁盘映像文件路径
boot # 输入 boot 后按回车继续启动2
3
技巧
分区标识不一定是
(hd0,msdos1),请以实际情况为准。注意不要误删过多内容导致无法辨识。

在启动此 initrd 后,不会加载硬盘上的原系统,而是自行配置网络并启动 SSH 服务器。由此获得一个运行在内存中的 Linux 系统。
此时应可通过 SSH 连接到服务器,并安全地格式化硬盘。
mfsBSD 和 mfsLinux 镜像的默认 root 密码均为 mfsroot。
警告
dd写入块设备将覆盖磁盘上所有现有数据,包括分区表和文件系统,操作不可逆。请反复确认of=参数指定的设备路径正确无误。
# cd /tmp # 切换至临时目录
# wget https://mfsbsd.vx.sk/files/images/14/amd64/mfsbsd-se-14.2-RELEASE-amd64.img # 下载 mfsBSD 镜像
# dd if=mfsbsd-se-14.2-RELEASE-amd64.img of=/dev/vda # 请确认你的硬盘设备是否为 /dev/vda
# reboot # 重启系统2
3
4
技巧
建议在此处使用服务器的“快照”功能进行备份,以防后续操作失误导致重装,造成时间损失。
3.6.5 安装 FreeBSD
通过 SSH 连接服务器后,执行 kldload zfs 加载 ZFS 模块,然后运行 bsdinstall。出现图示界面时,选择 Other 并输入指定的镜像地址(地址中包含相应版本号即可,可自行更改):
例如 https://mirrors.ustc.edu.cn/freebsd/releases/amd64/15.0-RELEASE/ 或 https://mirrors.nju.edu.cn/freebsd/snapshots/amd64/16.0-CURRENT/



- 也可以手动下载 FreeBSD 的安装文件,以
MANIFEST文件为例:
# mkdir -p /usr/freebsd-dist # 创建目标目录
# cd /usr/freebsd-dist # 进入该目录
# fetch http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/14.2-RELEASE/MANIFEST # 下载 MANIFEST 文件2
3
3.6.6 故障排除与未竟事宜
3.6.6.1 为何不能直接使用 dd?(错误示范,仅供说明,请勿执行)
警告
以下命令仅为错误示范,切勿执行。
dd写入块设备将覆盖磁盘上所有现有数据,操作不可逆。
在正常的 Linux 系统中,若直接将 mfsBSD 的 img 镜像通过 dd 写入硬盘,重启后虽能正常加载引导程序,但可能因系统对硬盘的后续写入操作导致无法正常挂载内存盘。
下载 mfsBSD 镜像并写入 /dev/vda:
# wget https://mfsbsd.vx.sk/files/images/13/amd64/mfsbsd-se-13.1-RELEASE-amd64.img -O- | dd of=/dev/vda解释:
|是管道符号,将上一条命令的标准输出作为下一条命令的标准输入。-O-选项指示 wget 将文件下载并输出到标准输出;dd在未指定if参数时会自动从标准输入读取数据。
直接执行此 dd 命令将提示错误,如图所示:

3.6.6.2 LVM 逻辑卷
如果云服务器使用了 LVM,需要将所有与引导相关的文件放置于 /boot 分区内,否则可能无法正确识别。
3.6.6.3 腾讯云轻量应用服务器可能无法获取 IPv6 地址
腾讯云 IPv6 地址的分配方式并非标准实现,而是采用自定义的子网方案。
腾讯云 IPv6 可能由专有服务提供,此问题尚待确认。
3.6.6.4 未成功的方案
3.6.6.4.1 方案一
在 UEFI 模式下:
set iso=(hd0,gpt2)/bsd.iso # 指定 ISO 文件路径
loopback loop $iso # 将 ISO 文件挂载为 loop 设备
set root=(loop) # 设置 GRUB 根目录为 loop 设备
chainloader /boot/loader.efi # 加载 EFI 引导加载程序
boot # 输入 boot 后按回车继续启动2
3
4
5
此方法失败。该操作并非将镜像挂载为内存盘,虽可引导,但 FreeBSD 启动过程中将提示错误,无法找到启动文件。
此外,UEFI 模式下,GRUB2 不提供 linux16、kfreebsd 等命令。
3.6.6.4.2 方案二
在传统 BIOS 引导方式下进行。
安装 syslinux
需安装 syslinux 软件包以获得 MEMDISK 支持。
# dnf install syslinux警告
GRUB2 自带的
memdisk.mod模块并非 MEMDISK。必须安装 syslinux 包才能获得 MEMDISK 工具。
- 复制到 /boot
# cp /usr/share/syslinux/memdisk /boot/进入 GRUB 命令行:
ls # 列出所有磁盘和分区
ls (hd0,gpt2)/ # 列出 (hd0,gpt2) 分区下的内容。MBR 分区表可能为 (hd0,msdosx),具体以实际情况为准
linux16 (hd0,gpt2)/memdisk iso # 指定 memdisk 内核镜像
initrd (hd0,gpt2)/bsd.iso # 指定初始 RAM 磁盘映像
boot # 输入 boot 后回车以启动系统2
3
4
5
上述方法可能适用于 BIOS 搭配 MBR 分区表,但 GPT 分区表下测试失败。
3.6.6.4.3 方案三
缩小 Linux 的根分区(/),直接将 FreeBSD 的 img 镜像通过 dd 写入新分区。
因为 XFS 文件系统不支持在线缩小(红帽系列发行版通常采用 XFS 搭配逻辑卷管理),此方案不可行。
3.6.6.4.4 方案四
直接写入 EFI 分区。
此方案不可行,EFI 系统分区(ESP)的大小通常有限制。
3.6.6.4.5 方案五
GRUB 不支持将 ISO 镜像挂载为内存盘,但其他引导程序可能可以实现这一功能。
目前尚未找到可行的方案。
3.6.6.4.6 方案六
对于支持在线调整的文件系统,可压缩出约 2 GB 的未分配空间,创建一个 FAT32 分区,再将 img 镜像用 dd 命令写入该分区。
在 GRUB 中,使用 chainloader +1 指向 dd 操作后生成的 BSD EFI 系统分区。需注意,一般的云服务器默认可能使用文件作为交换空间(swapfile),也可尝试直接将 img 镜像 dd 到交换分区。
对于无法压缩分区的情况,可以临时购买并挂载一块数据盘,将镜像 dd 到数据盘。然后通过数据盘上的安装程序进行系统安装。安装完成后卸载并删除数据盘。
潜在的问题在于 img 镜像可能无法正确识别分区,可能需要手动指定根文件系统。
部分发行版并不使用 GRUB,此时需要考虑是安装 GRUB,还是直接通过 systemd-boot 等引导程序处理,以及可行性如何。
3.6.7 参考文献
- FreeBSD Project. Remote Installation of the FreeBSD Operating System Without a Remote Console[EB/OL]. [2026-03-25]. https://www.freebsd.org/doc/en/articles/remote-install/. FreeBSD 官方文档,详细介绍了在无远程控制台情况下的远程安装技术。
- 金步国. GRUB2 配置文件“grub.cfg”详解(GRUB2 实战手册)[EB/OL]. [2026-03-25]. https://www.jinbuguo.com/linux/grub.cfg.html. 提供了 GRUB2 配置的详细参数解释与实战指南。
- 鳥哥的 Linux 私房菜-新手討論區. 关于启动时不显示 grub 界面的问题[EB/OL]. [2026-03-25]. https://phorum.vbird.org/viewtopic.php?f=2&t=40587. 讨论了 GRUB 启动界面隐藏问题的解决方案。