怎样在 FreeBSD 11 上构建和安装自定义内核

默认情况下,FreeBSD 操作系统使用 GENERIC 核心; 然而,在本教程中,我们将使用自定义配置重新编译 FreeBSD 内核: CUSTOM.

先决条件

1) 要遵循本教程,请部署以下实例:

2) 部署实例后,安装 sudo 作为 root 用户:

# pkg install -y sudo

3) 创建一个本地用户作为wheel组的成员,然后发出密码:

# pw useradd test -g wheel
# passwd test
Changing local password for test
New Password:
Retype New Password:

4) 允许wheel组的所有成员执行任何命令

# visudo

改变:

# %wheel ALL=(ALL) ALL

%wheel ALL=(ALL) ALL

Save 并按退出 Esc 键后键入:wq!

5) 更改为新用户的shell

# su test
$

1. 获取源代码

为了重新编译内核,我们必须首先从 FreeBSD 的版本控制系统中获取源代码; 在这种情况下, subversion

$ sudo pkg install -y subversion
Password:

默认情况下,新 FreeBSD 用户的 shell 是 sh; 但是,我们需要将其更改为 csh 安装后 subversion

1) 确认当前用户的shell:

$ echo $SHELL
/bin/sh

2) 将当前用户的shell更改为 csh

$ chsh -s /bin/csh
Password:
chsh: user information updated

3) 确认当前用户的 shell 已更改:

$ grep test /etc/passwd
test:*:1001:0:User &:/home/test:/bin/csh

或者

$ echo $SHELL
/bin/csh

4) 现在当前用户的 shell 被配置为 csh,我们现在可以 rehash 目录表:

$ rehash

5) 最后,查看最新稳定分支的副本到 /usr/src 目录:

$ sudo svn co --trust-server-cert --non-interactive https://svn0.us-east.freebsd.org/base/stable/11/ /usr/src
Password:
Checked out revision 317943.

2. 创建一个 CUSTOM 配置

对于我们的 CUSTOM 内核配置,我们将复制现有的 GENERIC 配置。

1) 复制 GENERIC 来自 /usr/src/sys/amd64/conf/ 目录为 CUSTOM

$ sudo cp /usr/src/sys/amd64/conf/GENERIC /usr/src/sys/amd64/conf/CUSTOM
Password:

在我们的 CUSTOM 内核配置,我们将进行一些更改。

2) 打开 /usr/src/sys/amd64/conf/CUSTOM

$ sudo vi /usr/src/sys/amd64/conf/CUSTOM

在第 22 行,您将看到一个 ident 标志,行号可以在 vi 编辑器按 Esc 键后键入:set nu

22 ident GENERIC

3) 改变 GENERIC 到您的自定义内核的名称; 在这种情况下 CUSTOM

22 ident CUSTOM

此外,在配置的底部,我们将添加以下内容:

options IPSEC
options TCP_SIGNATURE

一旦您对更改感到满意,请按 保存并再次退出 Esc 键后键入:wq!

有关这些不同选项的更多信息,请参见 NOTES 文件中每种类型的架构 /usr/src/sys/ 目录。

下面是一些常见的架构 NOTES地点:

  • /usr/src/sys/amd64/conf/NOTES
  • /usr/src/sys/arm64/conf/NOTES
  • /usr/src/sys/i386/conf/NOTES

与架构无关的选项可以参考 /usr/src/sys/conf/NOTES

欲知更多详情,请参阅 FreeBSD 手册.

3. 构建和安装你的 CUSTOM 核心

我们现在将编译 CUSTOM 你准备好的内核。

1) 更改为 /usr/src 目录并发出一个 make buildkernelCUSTOM 配置文件:

$ cd /usr/src
$ sudo make buildkernel KERNCONF=CUSTOM
Password:

您的预计完成时间将因实例的资源量而异。

在本教程中,我们使用了以下内容:

CPU:        4 vCore
RAM:        8192 MB
Storage:    100 GB SSD

有了这些资源,我们就完成了我们的编译 CUSTOM 大约 4 小时内的内核:

--------------------------------------------------------------------
>>> Kernel build for CUSTOM completed on Sat May 6 00:24:37 UTC 2017
--------------------------------------------------------------------

2) 一旦你的 CUSTOM 内核编译完成,可以安装配置:

$ sudo make installkernel KERNCONF=CUSTOM
Password:

安装应该比编译快得多。

3) 安装完成后,重启你的实例:

$ sudo shutdown -r now
Password:

您的实例现在将开始关闭并重新启动到您的 CUSTOM 核心。 您可以登录到您的实例的 安慰 观察启动过程。

4) 一旦您的实例重新启动,请登录并确认您的 CUSTOM 正在使用内核:

$ sysctl kern.conftxt | grep ident
ident CUSTOM

或者

$ uname -i
CUSTOM

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com