如何在 FreeBSD 10.1 上定制和重新编译内核

介绍

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

结论

恭喜您!您已成功重组和重组您的内核。

Published At
Categories with 技术
comments powered by Disqus