前書き
FreeBSDオペレーティングシステムは、デフォルトで `+ GENERIC +`カーネルを使用します。 これは、さまざまなハードウェアをすぐにサポートするために使用されるデフォルトの構成です。 ただし、カスタムカーネルのコンパイルにはさまざまな理由があり、セキュリティ、機能強化、パフォーマンスの向上などがあります。
FreeBSDは、オペレーティングシステム用に、安定版と最新版の2つのコードブランチを利用しています。 安定版は現在のコードリリースであり、本番環境で使用できます。 Currentは、開発チームからの最新のコードリリースであり、最新の最新機能の一部を備えていますが、バグやシステムの不安定性が生じやすい傾向があります。 このガイドでは安定版ブランチを利用します。
このチュートリアルでは、カスタム構成でFreeBSDカーネルを再コンパイルします。
前提条件
このチュートリアルに従うために必要なものは次のとおりです。
-
1つのFreeBSD 10.1ドロップレット。
FreeBSDを初めて使用する場合は、https://www.digitalocean.com/community/tutorial_series/getting-started-with-freebsd [Getting Started with FreeBSD]シリーズのチュートリアルをご覧ください。
手順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
サーバー証明書を受け入れるように求められる場合があります。 指紋がhttps://www.freebsd.org/doc/en/books/handbook/svn.html [このページ]の下部にある指紋と一致することを確認した後、* p *と入力して受け入れます。
ステップ2-カスタム構成の作成
このステップでは、新しいカーネル構成をカスタマイズします。
カーネル構成ファイルの標準の命名規則は、すべて大文字のカーネルの名前です。 このチュートリアルの設定は「+ EXAMPLE 」と呼ばれます。 カーネル設定ファイルは ` / usr / src / sys // conf +`ディレクトリ内にあります。 DigitalOceanで使用されるアーキテクチャはAMD64です。
構成ディレクトリに移動します。
cd /usr/src/sys/amd64/conf
eeまたはお気に入りのテキストエディターを使用して編集するために、 `+ EXAMPLE +`ファイルを作成して開きます。
sudo ee
https://raw.githubusercontent.com/do-community/freebsd-do-kernel/master/EXAMPLE [こちら]にある設定例があります。 内容をコピーして「+ EXAMPLE +」に貼り付け、ファイルを保存して閉じます。
このカーネル構成の例は、DigitalOcean Droplet用に調整された最小限のカーネルビルド用です。 具体的には、 `+ GENERIC `カーネル構成では、さまざまなハードウェアのサポートが有効になっています。 ` EXAMPLE +`では、レガシーデバイスと不要なデバイスがすべて削除され、Dropletの実行に必要なデバイスドライバーのみが残ります。 パケットフィルターファイアウォール(pf)、トラフィックシェーピング(altq)、ファイルシステム暗号化(geom_eli)、およびIPセキュリティ(IPsec)のサポートも有効になっています。
ただし、http://docs.freebsd.org/doc/3.4-RELEASE/usr/share/doc/handbook/kernelconfig-config.html [FreeBSD documentation]の設定オプションの詳細を読んで、自分で実験することができます。 !
ステップ3-新しいカーネルの構築とインストール
このステップでは、カーネルの再コンパイルを開始します。
`+ / usr / src `ディレクトリに戻り、新しい設定ファイルを利用して ` make buildkernel +`を発行します。
cd /usr/src
sudo make buildkernel KERNCONF=
ドロップレットに使用するリソースの量によっては、これには時間がかかる場合があります。 1 GBのドロップレットの平均時間は約90分です。
カーネルの再コンパイルが完了したら、インストールを開始します。
sudo make installkernel KERNCONF=
それが完了したら、システムを再起動します。
sudo shutdown -r now
サーバーは、現在実行中のサービスをシャットダウンし、ディスクを同期し、新しいカーネルで再起動します。 Dropletのコンソールにログインして、起動プロセスを監視できます。
サーバーが再起動したら、再度ログインします。 次のコマンドを使用して、新しいカーネル構成が使用されていることを確認できます。
sysctl kern.conftxt | grep ident
出力は次のようになります。
ident
結論
おめでとうございます。 カーネルの再構成と再コンパイルに成功しました。