CentOS でソース コードから新しいバージョンのカーネルをコンパイルしてインストールするにはどうすればよいですか?
職場では、新しい技術ソリューションを使用する必要があるため、新しい機能をサポートするために新しいバージョンのカーネルが必要になることがよくありますが、CentOS システムに付属のカーネル バージョンは一般に古いものです。システム カーネルをアップグレードし、新しいバージョンのカーネルをインストールする必要があります。ここでは、CentOS 7 システムを例として、カーネルの最新バージョンをコンパイルしてインストールするプロセスを次のように要約します:
1. カーネル ソース コード パッケージの最新の安定バージョンをダウンロードします。 /usr/local/ src
にコピーし、現在のディレクトリ
##2 に抽出します。カーネル ソース パッケージ
#3. カーネル コンパイル構成設定ファイルの既存のバージョンを /boot ディレクトリから次の場所にコピーします。新しいカーネル ソース コードの解凍ディレクトリを作成し、その名前を変更します .config
[root@localhost src]# cd linux-5.2.11 [root@localhost linux-5.2.11]# cp /boot/config-3.10.0-957.el7.x86_64 ./.config
4. 依存関係パッケージをインストールします
開発ツール パッケージ グループをインストールします[root@localhost linux-5.2.11]# yum -y groupinstall "development tools"
[root@localhost linux-5.2.11]# yum -y install ncurses-devel
5. make menuconfig を実行し、テキスト インターフェイスのコンパイル オプション メニュー ウィンドウを開きます。コンパイルされたカーネル名の変更や新しいモジュールの追加など、カーネルによってロードされるモジュール コンパイル オプションを調整できます。以前のシステムにはありませんでした。お待ちください。
カーネル名を変更します:General setup --->local version -append to kernel release
5.2.11-001.el7.x86_64
#新しく追加された NTFS ファイル システム サポート モジュール:
ファイル システム --->DOS/FAT/NT ファイルシステム --->NTFS ファイル システム サポートモジュールモード (M オプション) でコンパイルすることをお勧めします。 (* 記号は静的にコンパイルされ、カーネル ファイルにパッケージ化されます。新しく追加されたモジュールが増えると、カーネル ファイルのサイズが増加します)
#6. カーネルをコンパイルします
[root@localhost linux-5.2.11]# make -j 4 #根据CPU核数开启多线程编译以加快编译速度
長いコンパイル プロセスを開始します。これには、CPU ハードウェアのパフォーマンスに応じて、約 1 ~ 2 時間かかります。
コンパイルの開始時にエラーが表示された場合は、対応するコンポーネント パッケージを事前にインストールする必要がある場合があります。たとえば、次のとおりです。[root@localhost linux-5.2.11]# yum -y install openssh-devel elfutils-libelf-devel bc
7. モジュールのコンパイルとインストール
コンパイルが完了したら、make modules_install を実行してカーネル モジュールをインストールします
[root@localhost linux-5.2.11]# make modules_install
8カーネル コア ファイルをインストールします
[root@localhost linux-5.2.11]# make install
grub2-set-default 0 #0表示 /boot/grub2/grub.cfg 文件中排在第一位的 menuentry 段
[root@localhost ~]# uname -r 5.2.11-001.el7.x86_64
です。この時点で、カーネルのコンパイルとインストールのプロセス全体が完了しました。
関連資料:
centOS チュートリアル
以上がCentOS でソース コードから新しいバージョンのカーネルをコンパイルしてインストールする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。