3.4 安装双系统(先安装 FreeBSD)
本节介绍在同一物理设备上部署 FreeBSD 与 Windows 多操作系统的技术方案,本小节聚焦于先安装 FreeBSD、再安装其他操作系统的场景。
注意
本文要求先安装 FreeBSD,再安装 Windows 或其他操作系统,请遵循此顺序进行操作。
安装 FreeBSD 14.2 RELEASE
首先按照以下步骤安装 FreeBSD 14.2 RELEASE 系统,本文未特别说明之处,均采用默认设置与参数,以确保系统的稳定性。


技巧
如果在此处设置
P Partition Scheme为GPT (UEFI)而非其他(只有老电脑才需要GPT (BIOS+UEFI)等选项),后续分区与系统更新过程会更加简单,也能实现 4 K 对齐。

这里需要设置一个大的临时交换分区,该数值表示计划中的交换分区与 Windows 系统分区容量之和。这样设置是为了后续安装 Windows 时能够直接使用这部分空间,避免额外的分区操作。在本文中,交换分区(Swap)大小为 8 GB,其余 200 GB 空间预留给 Windows。请修改 S Swap Size 的大小。

列出系统磁盘分区情况:
显示交换分区和交换文件的使用情况(单位为 MB/GB):
可以看到交换分区的大小是我们所设定的 208 GB(其中 200 GB 预留给 Windows 操作系统)。
编辑 /etc/fstab,在 swap 对应行的行首添加 # 字符将其注释,本例中该行是第三行,这样可以避免系统在启动时不挂载这个大的交换分区,为后续安装 Windows 作准备:
安装 Windows 11
FreeBSD 安装完成后,接下来安装 Windows 系统。
插入 Windows 启动盘,设置 BIOS 从该启动盘启动,开始安装 Windows。此时系统会识别到这块硬盘上的现有分区结构,我们只需要使用之前预留的空间。

在分区时,删除(Delete Partition)整个 208 GB 的交换分区(本例中为“磁盘 0 分区 3”),因为这部分空间正是我们为 Windows 预留的。

然后点击创建分区(Create Partition),如果提示出错,点击刷新(Refresh)即可。Windows 安装程序会自动在未分配空间上创建它需要的分区,包括 MSR 分区、系统分区和恢复分区。
然后选中 208 G 的“磁盘 0 未分配空间”,点击“下一步”进行安装。

还原交换分区(Swap)
Windows 安装完成后,需要为 FreeBSD 还原交换分区。我们分配了 208 GB 空间,其中有 8 GB 是为交换分区预留的。现在需要将其还原。需要用到工具 DiskGenius。

打开 DiskGenius,压缩 C 盘,腾出 8 GB 的未分配空间。Windows 系统安装完成后,C 盘占用了我们之前预留的大部分空间,我们只需要从 C 盘末尾压缩出 8 GB 即可。

将这 8 GB 空间格式化为 FreeBSD Swap partition 类型,然后点击“保存更改”。这一步操作是将新创建的交换分区标记为 FreeBSD 可以识别的类型。


回到 FreeBSD,查看磁盘分区情况:
可以看到,nda0p5(分区 5)即是我们新建的交换分区。测试一下,立刻启用指定交换分区 /dev/nda0p5:
没有报错,也没有任何提示,说明正常,系统已经可以正常识别并使用这个新的交换分区。
编辑 /etc/fstab,在 swap 一行最前面删去注释符号 #,并将分区改为正确的值,在本例中如下第三行:
重启再查看一下既有的交换分区情况:
列出系统中所有 ZFS 池及其状态:
课后习题
研究 FreeBSD 安装程序的分区算法,尝试设计一种无需预先预留大空间、也无需后期压缩 Windows 分区的双系统安装方案,并在虚拟机环境中验证其可行性。
分析 GPT 分区表中各分区类型标识的历史演变,对比 freebsd-swap 与 Linux swap 分区的实现差异,修改 swap 分区类型标识并观察系统行为变化。
尝试修改 Windows 安装过程,使其在不破坏 FreeBSD ZFS 分区的情况下完成安装。
最后更新于