介绍
FreeBSD 操作系统默认使用GENERIC
内核,这是一个默认配置,用于支持各种硬件。
FreeBSD为其操作系统使用了两种代码分支:稳定和当前。稳定是目前的代码发布,已经准备好生产。当前是开发团队的最新代码发布,并具有一些最新的出血边缘功能,但更容易出现错误和系统不稳定。
在本教程中,我们将重新编译一个 FreeBSD 内核以自定义配置。
注意:从 2022 年 7 月 1 日开始,DigitalOcean 不再支持通过控制面板或 API 创建新的 FreeBSD Droplets. 但是,您仍然可以使用自定义图像创建 FreeBSD Droplets. 了解如何按照 我们的产品文档导入自定义图像到 DigitalOcean。
前提条件
要遵循这个教程,你所需要的就是:
一个 FreeBSD 10.1 服务器
如果你是新的FreeBSD,你可以检查一下(https://www.digitalocean.com/community/tutorial_series/getting-started-with-freebsd)系列的教程。
第1步:获取源代码
在此步骤中,我们将提取 OS 源代码。
FreeBSD 和许多其他 UNIX 味道一样,为其操作系统提供可公开下载和修改的源代码. 为了重新编译内核,您首先需要从 FreeBSD 的版本控制系统中提取源代码。
FreeBSD 基金会将 Subversion 用于其代码存储库,所以让我们先安装 Subversion 的二进制端口。
1sudo pkg install subversion
FreeBSD 的默认壳是 tcsh,它使用了 $PATH 中的命令的内部哈希表。
1rehash
最后,检查最新稳定分支的副本到 /usr/src
目录。
1sudo svn co https://svn0.us-east.FreeBSD.org/base/stable/10 /usr/src
您可能会被要求接受服务器证书。 输入 p 以接受它,然后检查指纹是否匹配到 [此页面] 的底部(https://www.freebsd.org/doc/en/books/handbook/svn.html)。
步骤2 — 创建您的自定义配置
在此步骤中,我们将定制我们的新内核配置。
内核配置文件的标准命名公约是所有帽子中内核的名称.本教程的配置将被称为EXAMPLE
。
更改配置目录。
1cd /usr/src/sys/amd64/conf
创建并打开EXAMPLE
文件以使用 ee 或您最喜欢的文本编辑器进行编辑。
1sudo ee EXAMPLE
您可以找到位于此处的示例配置(https://raw.githubusercontent.com/do-community/freebsd-do-kernel/master/EXAMPLE)。 复制并粘贴内容到 EXAMPLE
,然后保存并关闭文件。
具体来说,GENERIC
内核配置支持了许多不同的硬件;EXAMPLE
删除了所有旧的和不必要的设备,只留下运行服务器所需的设备驱动程序。
但是,您可以在 [FreeBSD 文档] 中阅读有关配置选项的更多信息(http://docs.freebsd.org/doc/3.4-RELEASE/usr/share/doc/handbook/kernelconfig-config.html),并自行尝试!
第3步:构建和安装你的新内核
在此步骤中,我们将开始重构内核。
回到 /usr/src
目录,并使用新配置文件发出一个 make buildkernel
。
1cd /usr/src
2sudo make buildkernel KERNCONF=EXAMPLE
这可能需要一些时间,取决于您为您的服务器所使用的资源数量. 1 GB 服务器的平均时间约为 90 分钟。
一旦您的内核重组完成,是时候开始安装了。
1sudo make installkernel KERNCONF=EXAMPLE
完成后,重新启动您的系统。
1sudo shutdown -r now
您的服务器现在应该开始关闭目前正在运行的服务,同步其磁盘,并重新启动到您的新内核中。
一旦您的服务器重新启动,您可以检查您的新内核配置是否正在使用以下命令:
1sysctl kern.conftxt | grep ident
产量应该是:
1ident EXAMPLE
结论
恭喜您!您已成功重组和重组您的内核。