カーネルは、あらゆるオペレーティング システムの中核です。 Linux をオペレーティング システムと呼び始める前に、基本的な概念と Linux の誕生の歴史を知っておく必要があります。 Linux はオペレーティング システムではありません。主に、Linux はカーネルです。それでは、カーネルとは何かを知りましょう。カーネルは、ハードウェアとソフトウェアの間で対話するプログラムです。システムにフラッシュ ドライブを挿入すると、カーネルはペン ドライブが接続されていることを検出します。 Linux はオープンソースのカーネルであるため、何をしているのかを知っていれば、Linux カーネルを更新、アップグレード、および置き換えることができます。
Linux カーネルとは?
CPU、メモリ、およびデバイスは、カーネルを介してオペレーティング システムと通信します。 Linux カーネルについて話しているので、すべての Linux ディストリビューションには 2 つのユーザー モードがあることに言及しなければなりません。 Linux ディストリビューションでは、ユーザー モードとカーネル モードを取得します。通常、標準ユーザー モード インターフェイスからカーネル モードにアクセスすることはできません。
カーネル モードにアクセスするためのルート権限を取得すると役立ちます。 PC を起動すると、スレッドで実行されるソフトウェアはありません。カーネルは何をすべきか、何をすべきでないかを決定します。カーネルは、どのアプリケーションがどれだけの RAM と CPU を取得するかを決定します。
Linux ディストリビューションでのカーネルのアップグレード
Linux カーネルのアップグレードは簡単ではありません。これは、セキュリティ エラーまたはハードウェアの相互作用の問題が見つかった場合にのみ行う必要があります。システムがクラッシュした場合、システム全体を回復しなければならない場合があります。ほとんどの場合、Linux ディストリビューションには最新のカーネルが付属しています。 Linux カーネルをアップグレードしても、以前のカーネルは削除されません。システム内に保持されます。
Linux システムの回復メニューから古いカーネルにロールバックできます。ただし、ハードウェアの問題またはセキュリティの問題のためにカーネルをアップグレードする必要がある場合があります。この投稿では、さまざまな Linux ディストリビューションでカーネルをアップグレードする方法について説明します。
現在のカーネル バージョンを知る
Linux カーネルのアップグレードを開始する前に、PC 内で実行されているカーネルの現在のバージョンを知っておく必要があります。このステップでは、Neofetch ツールを使用して、Linux カーネルの詳細とその他のシステム情報を確認します。
システムに Neofetch がインストールされていない場合は、Linux ディストリビューションに Neofetch をインストールする方法をご案内します。お使いのディストリビューションに応じて、Linux 端末で以下のコマンドラインを使用してください。
- Debian / Ubuntu に Neofetch をインストール
sudo apt-get update
sudo apt-get install neofetch
- Fedora に Neofetch をインストール
sudo dnf install neofetch
- Red Hat / CentOS に Neofetch をインストール
sudo yum install neofetch
- Arch および Arch ベースの Linux に Neofetch をインストールする
pacman -S neofetch
インストールが完了したら、Neofetch ツールを実行してカーネルのバージョンを確認できます。
$ neofetch
1. Ubuntu および Debian Linux でカーネルをアップグレードする
さまざまな Linux ディストリビューションには、Linux カーネルをアップグレードするためのさまざまな方法があります。 Debian および Ubuntu ベースの Linux ディストリビューションには、カーネルを更新およびアップグレードするために従うことができるいくつかの方法があります。ここでは、Debian Linux でカーネルをアップグレードするために従うことができる 5 つの方法を示します。
方法 1:dist upgrade
を使用する カーネルをアップグレードする
Linux の更新コマンドとアップグレード コマンドに慣れているかもしれません。システム アップデータと apt-update
を使用して、システム リポジトリを更新できます。 ターミナル シェルからコマンドを実行します。しかし、Dist のアップグレードは、システムとパッケージのアップグレード以上のものです。カーネル、ソフトウェア、およびその他のパッケージの依存関係をアップグレードします。次の dist-upgrade
を実行できます Linux カーネルをアップグレードするためのコマンド
sudo apt-get dist-upgrade
フル アップグレード コマンドを実行することは、アップグレード プロセスを完了するために常に慎重に行う必要があります。
sudo apt full-upgrade
方法 2:システム アップデート マネージャーを強制する
すべての Linux システムには、OS 内に組み込みの Update Manager があります。システムを更新するためにアップデーターを何百万回も使用した可能性があります。しかし、Update Manager で Linux カーネルを強制的にアップグレードできることをご存知でしたか?ターミナル シェルで次のコマンドラインを実行して、アップデーターにアップグレードされた Linux カーネルを強制的にダウンロードしてインストールさせることができます。いくつかの追加パッケージをダウンロードする場合があります。
update-manager –d
方法 3:Ukuu ツールを使用する
Ukuu は、Linux ディストリビューションの公式リポジトリから最新の Linux カーネルをダウンロードしてインストールできる Linux ディストリビューション用のツールです。 Ubuntu の場合、https://kernel.ubuntu.com/ からカーネルをダウンロードします。
Ukuu ツールを使用して Linux カーネルをアップグレードするには、まず Linux システムに Ukuu ツールをインストールする必要があります。 PPA コマンドを使用して、システム リポジトリ内に Ukuu パッケージを追加します。
sudo apt-add-repository ppa:teejee2008/ppa
システムを更新して、Ukuu ツールをインストールしてください。
sudo apt-get update
sudo apt-get install ukuu
Ukuu がマシン内にインストールされると、root アクセスでターミナル シェルから Ukuu ツールを実行できます。 Ukuu ツールを起動すると、オペレーティング システムで利用可能な Linux カーネルのリストが表示されます。システム内にインストールするには、カーネルを選択する必要があります。
sudo ukuu-gtk
カーネルがアップグレードされたら、システムから Ukuu ツールを削除できます。 Ukuu ツールのインストールに問題が見つかった場合は、Ukuu チームがそのバージョンの Ukuu をサポートしていない可能性があります。ただし、Linux 用の Ukuu の有料バージョンを利用できます。有料版を使用して、Ubuntu Linux のカーネルをアップグレードできます。
方法 4:カーネルを手動でダウンロードしてインストールする
この方法では、Linux カーネルを Ubuntu カーネルの公式ストアから手動でダウンロードします。後で、システムにカーネル パッケージをインストールします。この方法は、これまでに示したすべての方法の中で最も危険な方法です。このメソッドを初期化する前に、すべてのシステムとデータのバックアップを作成してください。
目的の Linux カーネルをダウンロードするには、Ubuntu カーネル アーカイブに移動する必要があります。次のカーネル パッケージをカーネル メインラインからダウンロードします。完全なパッケージを作成するには、カーネル ヘッダーとカーネル バージョンをダウンロードする必要があります。理解を深めるために、ダウンロードする必要がある次のダミー パッケージ リストを参照してください。
linux-headers-VERSION-NUMBER_all.deb
linux-headers-VERSION-NUMBER_amd64.deb
linux-image-VERSION-NUMBER_amd64.deb
linux-image-extra-VERSION-NUMBER_amd64.deb
ダウンロードが完了したら、ディレクトリを開いてパッケージをインストールできます。すべてのパッケージが .deb
にあるため dpkg
を使用できます パッケージをインストールするためのツール。パッケージをインストールするには、次のコマンドラインを使用してください。
cd /path/to/directory/destination_path
次に、.deb
をインストールします Debian システム上のカーネル パッケージ。
sudo dpkg -i *.deb
方法 5:メインライン ツールを使用して Linux カーネルをアップグレードする
この方法では、Ubuntu およびその他の Debian ディストリビューションで Mainline ツールを使用して Linux カーネルをアップグレードする方法を確認できます。まず、メインライン ツールをシステムにインストールする必要があります。次のコマンド ラインを使用して、メインライン リポジトリをシステムに追加します。次に Mainline ツールをインストールします。
sudo apt-add-repository -y ppa:cappelikan/ppa
sudo apt update
sudo apt install mainline
次の wget
を使用してください コマンドを実行して、Ubuntu メインライン カーネル ディレクトリからカーネルをダウンロードします。
wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh
ダウンロードにそれほど時間はかかりません。ダウンロードが完了したら、ターミナル シェルで次のコマンドラインを実行して、Ubuntu Linux に最新のカーネルをインストールします。
sudo install ubuntu-mainline-kernel.sh /usr/local/bin/
ubuntu-mainline-kernel.sh -i
ここで、システムを再起動し、Linux ディストリビューションで利用可能なカーネル バージョンを確認します。カーネル インストーラーから目的の Linux カーネルをインストールできます。新しいカーネルをインストールするには、カーネルを選択し、インストール ボタンをクリックします。インストールが完了したら、デバイスを再起動して新しいカーネルをロードします。カーネルのバージョンをチェックして、カーネルがアップグレードされていることを確認できます。
カーネルのインストールが完了したら、Ubuntu システムからメインライン ツールを削除できます。以下のコマンドラインを使用して、メインライン ツールを Ubuntu Linux から削除します。
sudo add-apt-repository --remove ppa:cappelikan/ppa
sudo apt remove mainline
2. Red Hat および Fedora Linux でカーネルをアップグレードする
Fedora、Red Hat、および Red Hat ベースの Linux ディストリビューションのユーザーは、リポジトリからカーネルをダウンロードして、Linux カーネルを手動でアップグレードできます。ここでは、カーネルをアップグレードする一般的な方法を示します。 Red Hat Linux および CentOS ユーザーは yum コマンドを使用できます。一方、Fedora ユーザーは yum
を置き換える必要があります。 DNF
で 指図。残りのコマンド ラインは、両方のディストリビューションで同じです。
方法 1. 特定のバージョンのカーネルをインストールする
Fedora および Red Hat Linux ユーザーは、システムに特定のバージョンのカーネルをインストールできます。 Linux 端末で次のコマンドラインを実行して、特定のバージョンのカーネルを Linux システムにインストールできます。インストールが完了したら、システムを再起動して、Linux システムで目的のカーネルを取得します。
yum update kernel
yum install kernel-{version}
方法 2. RHEL および Fedora Linux でカーネルをアップグレードする
まず、システムに SysLinux ツールをインストールする必要があります。ほとんどの SysLinux は、Fedora および Red Hat Linux ディストリビューションにプリインストールされています。お使いのマシンでツールが見つからない場合は、次のコマンドを使用してインストールできます。
yum install syslinux
システムにカーネルを追加すると、カーネル名とバージョンがブート メニューに登録されます。ここで、ブート ローダー ディレクトリの SysLinux を構成します。次の syslinux
を使用してください コマンドを使用して、ブート ローダー ディレクトリを構成します。私の場合、ブートディレクトリは sdb2
です;ディレクトリを自分のものに置き換える必要があります。
syslinux /dev/sdb2
ここで、カーネルを格納するディレクトリとマウント ポイントを作成します。 boot.iso
をマウントすることを忘れないでください USB ディスク上のファイル。
mkdir /mnt/isoboot /mnt/diskboot
mount -o loop boot.iso /mnt/isoboot
mount /dev/sdb2 /mnt/diskboot
次に、次の cp
を使用します コマンドを実行して、USB ディスク上のファイルをコピーし、パーティションをマウントします。
cp /mnt/isoboot/isolinux/* /mnt/diskboot
この段階では、次の grep
を実行します。 isolinux
からブート ローダー ファイルを実行するコマンド 構成スクリプト。次に、isoboot
をマウントします。 diskboot
内のファイル ディレクトリ。ここでは、SysLinux ツールを使用して、ブートローダー メニューとともにカーネルをロードしています。
grep -v local /mnt/isoboot/isolinux/isolinux.cfg > /mnt/diskboot/syslinux.cfg
umount /mnt/isoboot /mnt/diskboot
システムを再起動する前に、Red Hat Linux システムにインストールされているすべてのカーネル リストを確認できます。
yum list installed "kernel-*"
次に、次の rpm
を使用します コマンドを実行して、目的のバージョンの Linux カーネルをダウンロードします。古いカーネルを削除しないため、-i
を使用します。 コマンドラインでの構文。新しいカーネルを削除してインストールする場合は、-u
を使用できます。 -i
の代わりに
rpm -ivh kernel-kernel_version.arch.rpm
次に、新しいカーネルがブート メニューに登録されているかどうかを確認します。
ls /boot
ここでは、Red Hat および Fedora Linux 用の最も一般的な Dracut ブート パッケージ インストーラーを使用します。 Dracut がカーネル イメージを作成します。
dracut "initramfs-$(uname -r).img" $(uname -r)
以前にダウンロードしたカーネル ファイルをシステム メモリにロードします。次の lsinitrd
を使用してください initramfs イメージを呼び出すコマンド。
lsinitrd /boot/initramfs-3.10.0-78.el7.x86_64.img
次に、次の grep
を実行します GRUB ロード プロセスを初期化するコマンド。 grub の読み込みエラーを避けるため、この手順は慎重に行ってください。
grep initramfs /boot/grub2/grub.cfg
次に、ブートローダーのリストを確認してください。
ls -l /boot/
次に、システムを再起動した後、Dracut ツールを使用してカーネル バージョンを選択します。システムに新しい更新されたカーネルを強制的に呼び出すことができます。次のコマンドは、カーネルとブート設定を再構成するのに役立ちます。
dracut --kver kernel_version --force
次に、以下のコマンドラインを使用して、カーネル パッケージとカーネル バージョンのショートリストを作成します。
lsinitrd
lsinitrd | grep etc/
lsinitrd -f /etc/sysctl.conf
次に、ターミナル シェルで次のコマンドラインを実行して、カーネル バージョンを定義します。
lsinitrd --kver 3.10.0-327.10.1.el7.x86_64 -f /etc/sysctl.conf
最後に、カーネルのアップグレード プロセスを完了するために、スクリプトの設定を少し行う必要があります。 default_kernel
にする必要があります カーネルとしての値と update_default
sysconfig
のとおり ディレクトリ。 /etc/sysconfig/kernel
を使用 構成ファイルを見つけるためのファイルシステム上のパス。以下に示すように値を変更します。
DEFAULTKERNEL=kernel
UPDATEDEFAULT=yes
すべてが正しく完了したら、Linux システムを再起動して、アップグレードされたカーネルを使い始めることができます。
3. Arch および Arch ベースの Linux でカーネルをアップグレードする
Arch および Arch ベースの Linux ディストリビューションには、さまざまな Linux カーネルがあります。 Arch Linux はセキュリティ パッチを定期的に更新しています。そのため、重要なカーネルとパッチの更新が Arch Linux で利用可能であることがわかります。ここでは、Arch Linux でカーネルをアップグレードする 2 つの方法について説明します。まず、更新とアップグレードの方法を使用します。後で、Arch Linux でカーネルを手動でアップグレードする方法について説明します。
方法 1:カーネルを更新してアップグレードする
Manjaro やその他の Arch Linux ディストリビューションは、多くの場合、従来の更新マネージャーを介してカーネルの更新とアップグレードを提供します。 Linux システムでシステム アップデーターを実行すると、最新のカーネルがチェックされます。次の pacman
を使用できます コマンドを使用して、Arch Linux ディストリビューションの最新のカーネルを確認してください。
sudo pacman -Syu
新しいカーネルが見つかった場合は、ダウンロードしてインストールするよう通知されます。最新のカーネルを取得するかどうかを選択できます。インストールに同意したら、インストールの完了後にシステムを再起動します。次に、カーネルのバージョンをチェックして、カーネルがアップグレードされているかどうかを確認できます。
sudo reboot
方法 2:Arch Linux でカーネルを手動でアップグレードする
この方法では、Linux カーネルの公式 Web サイトから最新のカーネルを手動でダウンロードしてインストールする方法を説明します。この方法では、利用可能でサポートされているカーネルを Arch Linux にインストールできます。
まず、希望するバージョンのカーネルを Kernel.org のウェブサイトからダウンロードする必要があります。ファイルは圧縮ファイルとしてダウンロードされます。デフォルトでは、ファイルはファイル システムのダウンロード ディレクトリ内に保存されます。
次に、次のコマンドラインを使用してダウンロード ディレクトリを開き、ダウンロードしたファイルのリストを取得します。次に、tar コマンドを使用して圧縮ファイルを解凍します。ファイルが解凍されると、自動的にフォルダーが作成されます。フォルダー内にカーネル ファイルがあります。
cd Downloads/
ls
tar xvf linux-4.15.2.tar.xz
次に、次のコマンドラインを使用してカーネル ディレクトリに入ります。私の場合、カーネル ディレクトリの名前は linux-4.15.2
です。 、ダウンロードしたバージョンによって名前が異なる場合があります。
cd linux-4.15.2
次のコマンドラインを実行して ncurses
を取得します GNU コンパイラ コレクション内のライブラリ ツール。後で Linux カーネルの構成スクリプトを編集するのに役立ちます。
sudo pacman -S ncurses make gcc bc openssl
次に、次の zcat
を使用します コマンドを使用して、実行中の Linux カーネルから新しく作成されたカーネルに構成スクリプトを複製します。
zcat /proc/config.gz > .config
これで、Linux システム内で新しいカーネルのインストール プロセスを初期化できます。
make menuconfig
以下のコマンドラインを実行して、ロード可能なカーネル モジュールを Arch Linux にインストールします。
make
sudo make modules_install
cp
を使用してください vmlinuz
をコピーするコマンド 現在のカーネルから新しいカーネルへのファイル。 vmlinuz
が必要です システム起動時にカーネルをロードするためのファイル。以下に 2 つのコマンドを示します。最初のコマンドは 32 ビットまたは 86 ビット システムのユーザー用で、最後のコマンドは 64 ビットの Linux ユーザー用です。
sudo cp -v arch/x86/boot/bzImage /boot/vmlinuz-4.15.2
sudo cp -v arch/x86_64/boot/bzImage /boot/vmlinuz-4.15.2
次の mkinitcpio
を実行します Arch Linux で bash コマンドを実行して、RAM に一時ディレクトリを作成し、initramfs
を保存します。
sudo mkinitcpio -k 4.15.2-ARCH -g /boot/initramfs-4.15.2.img
次に、次の cp
を使用します コマンドを使用して、カーネル テーブルを新しいカーネルのディレクトリにコピーします。
sudo cp -v System.map /boot/System.map-4.15.2
ここで、ブート ディレクトリ内にカーネル マップを作成する必要があります。
sudo ln -sf /boot/System.map-4.15.2 /boot/System.map
次に、以下のコマンドラインを使用して GRUB をブート ディレクトリにインストールし、カーネルのアップグレード プロセスを終了します。
sudo grub-mkconfig -o /boot/grub/grub.cfg
すべてを正しく行ったら、Arch Linux を再起動します。ブートローダー メニューから、「Arch Linux の詳細オプション」を開きます。新しいカーネル用に新しいブートローダーが作成されていることがわかります。カーネルのバージョンを確認して、Arch Linux でカーネルがアップグレードされていることを確認することもできます。
sudo reboot
uname -r
追加のヒント:デフォルトのカーネルを更新する
デフォルトのカーネルを更新すると、Linux での小さな問題が解決する場合があります。ただし、ブート メニューから一般的なカーネル バージョンを確認することもできます。システムの Linux カーネルのみをアップグレードする必要がある場合は、Linux ターミナル シェルで次のコマンドを実行できます。
sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get upgrade linux-image-generic
終わりの言葉
混乱してカーネルに損傷を与えた場合でも、心配する必要はありません。現在のカーネルを削除し、ブート修復ツールを使用してカーネルと GRUB を再インストールできます。この記事全体で、Linux カーネルの基礎について説明しました。また、Debian、Fedora、Arch、および Red Hat Linux でカーネルをアップグレードする方法についても説明しました。
ブート、grub、およびその他のルート パーティション ファイルシステムに関する十分な知識がない場合、Linux でカーネルをアップグレードすることはお勧めしません。 Linux カーネルのアップグレード プロセスを完了するために、いくつかのツールとコマンド ラインを使用しました。カスタマイズされたカーネルを構築するには、これらのコマンドラインの基本的な考え方を理解しておくことが最善です。カーネルのいくつかの実験的およびベータ版も、さまざまな Linux ディストリビューションで利用できます。これらのサードパーティ カーネルは、自己責任でインストールしてください。
この投稿が有用で有益であると思われる場合は、友人や Linux コミュニティと共有してください。システムで現在使用しているカーネルのバージョンをお知らせください。この投稿に関する意見をコメント セクションに書いてください。