介绍
FreeBSD操作系统利用GENERIC
默认内核。 这是一个默认配置,用于支持开箱即用的各种硬件。 但是,编译自定义内核有许多不同的原因,包括安全性,增强的功能或更好的性能。
FreeBSD使用两个代码分支的操作系统:稳定和电流。 稳定是当前的代码版本,即生产就绪。 Current是开发团队的最新代码版本,并且具有一些最新的出色的功能,但更容易出错和系统不稳定。 本指南将使用稳定分支。
在本教程中,我们将使用自定义配置重新编译FreeBSD内核。
先决条件
要遵循本教程,您将需要的是:
- 一个FreeBSD 10.1 Droplet。
如果你是FreeBSD新手,你可以检查出入门FreeBSD的系列教程。
第1步 - 获取源代码
在这一步中,我们将拉取操作系统源代码。
FreeBSD与许多其他UNIX版本一样,为其操作系统提供公共下载和修改的源代码。 为了重新编译内核,首先你需要从FreeBSD的版本控制系统中提取这个源代码。
FreeBSD基金会对其代码库使用Subversion,所以让我们先安装Subversion的二进制端口。
sudo pkg install subversion
FreeBSD默认的shell是tcsh的,它利用一个内部哈希表中的命令$PATH
。 在安装subversion之后,您应该重新哈希目录表。
rehash
最后,检查出最新的稳定分支的一个拷贝到/usr/src
目录。
sudo svn co https://svn0.us-east.FreeBSD.org/base/stable/10 /usr/src
系统可能会提示您接受服务器证书。 输入p检查指纹相匹配的向着底部后接受它这个页面 。
第2步 - 创建您的自定义配置
在这一步中,我们将定制我们的新内核配置。
内核配置文件的标准命名约定是所有大写的内核名称。 本教程的配置将被称为EXAMPLE
。 内核配置文件所在的内/usr/src/sys/ architecture /conf
目录; DigitalOcean使用的架构是AMD64。
切换到配置目录。
cd /usr/src/sys/amd64/conf
创建并打开EXAMPLE
文件,使用EE或您喜爱的文本编辑器进行编辑。
sudo ee EXAMPLE
你可以找到位于示例配置在这里 。 复制并粘贴内容到EXAMPLE
,然后保存并关闭文件。
此示例内核配置适用于为DigitalOcean Droplet量身定制的最小内核构建。 具体来说, GENERIC
内核配置有很多不同的硬件启用支持; EXAMPLE
拥有所有传统和去除不需要的设备,只留下运行Droplet所需的必要的设备驱动程序。 还支持包过滤防火墙(pf),流量整形(altq),文件系统加密(geom_eli)和IP安全(IPsec)。
但是,你可以阅读更多有关在配置选项FreeBSD文档和实验你自己!
第3步 - 构建和安装您的新内核
在这一步中,我们将开始内核的重新编译。
变回/usr/src
目录,并发出一个make buildkernel
利用新的配置文件。
cd /usr/src
sudo make buildkernel KERNCONF=EXAMPLE
这可能需要一些时间,具体取决于您为Droplet使用的资源量。 1 GB Droplet上的平均时间约为90分钟。
一旦你的内核重新编译完成,是时候开始安装了。
sudo make installkernel KERNCONF=EXAMPLE
完成后,重新启动系统。
sudo shutdown -r now
您的服务器现在应该开始关闭其当前运行的服务,同步其磁盘,并重新启动进入新的内核。 您可以登录到Droplet的控制台以观看引导过程。
服务器重新启动后,重新登录。您可以使用以下命令检查新内核配置是否正在使用:
sysctl kern.conftxt | grep ident
输出应为:
ident EXAMPLE
结论
恭喜! 您已成功重新配置并重新编译内核。