序章

FreeBSDオペレーティングシステムは GENERIC デフォルトではカーネル。 これは、すぐに使用できるさまざまなハードウェアをサポートするために使用されるデフォルトの構成です。 ただし、カスタムカーネルをコンパイルする理由には、セキュリティ、拡張機能、パフォーマンスの向上など、さまざまな理由があります。

FreeBSDは、オペレーティングシステムに安定版と最新版の2つのコードブランチを利用しています。 Stable is the current code release that is production ready. Currentは、開発チームからの最新のコードリリースであり、最新の最先端機能のいくつかを備えていますが、バグやシステムの不安定性が発生しやすくなっています。 このガイドでは、安定したブランチを利用します。

このチュートリアルでは、カスタム構成でFreeBSDカーネルを再コンパイルします。

Note: As of July 1, 2022, DigitalOcean no longer supports the creation of new FreeBSD Droplets through the Control Panel or API. However, you can still spin up FreeBSD Droplets using a custom image. Learn how to import a custom image to DigitalOcean by following our product documentation.

前提条件

このチュートリアルに従うために必要なのは、次のとおりです。

  • One FreeBSD 10.1 server.

FreeBSDを初めて使用する場合は、 Get Getting Started withFreeBSDシリーズのチュートリアルを確認できます。

ステップ1—ソースコードを取得する

このステップでは、OSのソースコードをプルします。

FreeBSDは、UNIXの他の多くのフレーバーと同様に、パブリックダウンロードおよび変更用のオペレーティングシステムのソースコードを提供します。 カーネルを再コンパイルするには、まず、FreeBSDのバージョン管理システムからこのソースコードをプルする必要があります。

FreeBSDファウンデーションは、コードリポジトリにSubversionを利用しているので、最初にSubversionのバイナリポートをインストールしましょう。

sudo pkg install subversion  

FreeBSDのデフォルトのシェルは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 ディレクトリ。

構成ディレクトリに移動します。

cd /usr/src/sys/amd64/conf

を作成して開きます EXAMPLE eeまたはお気に入りのテキストエディタを使用して編集するためのファイル。

sudo ee EXAMPLE

設定例はここにあります。 内容をコピーしてに貼り付けます EXAMPLE、ファイルを保存して閉じます。

具体的には、 GENERIC カーネル構成では、さまざまなハードウェアのサポートが有効になっています。 EXAMPLE has all legacy and unneeded devices removed, leaving only the required device drivers needed to run a server. パケットフィルターファイアウォール(pf)、トラフィックシェーピング(altq)、ファイルシステム暗号化(geom_eli)、およびIPセキュリティ(IPsec)もサポートされています。

ただし、構成オプションの詳細については、 FreeBSDドキュメントを参照して、自分で試すことができます。

ステップ3—新しいカーネルの構築とインストール

このステップでは、カーネルの再コンパイルを開始します。

に戻ります /usr/src ディレクトリを発行し、 make buildkernel 新しい構成ファイルを利用します。

cd /usr/src
sudo make buildkernel KERNCONF=EXAMPLE

This can take some time depending on the amount of resources you utilize for your server. The average time on a 1 GB server is about 90 minutes.

カーネルの再コンパイルが完了したら、インストールを開始します。

sudo make installkernel KERNCONF=EXAMPLE

それが完了したら、システムを再起動します。

sudo shutdown -r now

Your server should now begin to shut down its currently running services, sync its disks, and reboot into your new kernel.

Once your server reboots, you can check that your new kernel config is being used with the following command:

sysctl kern.conftxt | grep ident

出力は次のようになります。

ident    EXAMPLE

結論

おめでとう! これで、カーネルが正常に再構成および再コンパイルされました。