この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
こういった場面でカーネルのバージョン固定(ピン留め)が必要になります。
この記事では、Ubuntu 24.04 LTSのHWE(Hardware Enablement)カーネルを特定バージョンに固定する方法を解説します。apt-mark holdを使った基本手順から、固定後の確認コマンドまで、Ubuntu 24.04で動作確認済みの内容でまとめています。
この記事のポイント
・apt-mark hold でカーネルパッケージのバージョンを固定する手順
・HWEカーネルとGAカーネルの違いと使い分け
・固定状態の確認方法と固定解除の手順
・本番環境でカーネルを固定すべき判断基準
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
HWEカーネルとは何か
Ubuntuには2種類のカーネルが存在します。・GAカーネル(Generic Availability):LTSリリース時点のカーネル。安定優先。
・HWEカーネル(Hardware Enablement):最新ハードウェアをサポートするため、新しいカーネルを定期的に取り込む。
Ubuntu 24.04 LTSのGAカーネルはLinux 6.8です。HWEカーネルは6ヶ月ごとに新しいUbuntuリリースのカーネルを取り込むため、時間の経過とともに新しいカーネルが自動インストールされます。
現在のカーネルバージョンを確認するには次のコマンドを使います。
# 現在のカーネルバージョンを確認する uname -r # 出力例(GAカーネルの場合) # 6.8.0-51-generic # 出力例(HWEカーネルの場合) # 6.11.0-25-generic
どちらのカーネルを使っているか確認する方法
# インストール済みのカーネルパッケージを一覧表示する dpkg -l 'linux-image-*' | grep '^ii' # linux-image-generic-hwe-24.04 が表示されればHWEカーネルを使用中 # linux-image-generic が表示されればGAカーネルを使用中
カーネルバージョンを固定すべき場面
カーネルを特定バージョンに固定するのは、次のような場面です。・ドライバー互換性の問題:特定のGPUドライバー・NICドライバーが特定のカーネルバージョンに依存している場合
・本番環境の安定性確保:カーネル更新による予期しない動作変化を避けたい場合
・認証済みカーネルの維持:セキュリティ監査や認定を受けたカーネルバージョンを維持する必要がある場合
・障害再現環境の保持:特定のカーネルバージョンで再現した問題を調査するために環境を維持する場合
注意:カーネルを固定するとセキュリティパッチが適用されなくなります。本番環境でカーネルを固定する場合は、その判断に相応のリスク管理が必要です。
apt-mark holdでカーネルを固定する手順
1. 現在のカーネルパッケージ名を確認する
# 現在動作中のカーネルバージョンを確認する uname -r # 例: 6.8.0-51-generic # カーネル関連のパッケージを一覧表示する dpkg -l | grep linux-image
2. 固定するカーネルパッケージを特定する
Ubuntu 24.04でカーネルを固定するには、カーネルパッケージを個別に指定します。# 現在のカーネルバージョンのパッケージ名を確認する # (uname -rの出力から KERNEL_VERSION を組み立てる) KERNEL_VERSION=$(uname -r) echo "linux-image-${KERNEL_VERSION}" echo "linux-headers-${KERNEL_VERSION}" echo "linux-modules-${KERNEL_VERSION}"
3. apt-mark holdでカーネルパッケージを固定する
# カーネルパッケージをholdに設定する(バージョン固定) KERNEL_VERSION=$(uname -r) sudo apt-mark hold linux-image-${KERNEL_VERSION} sudo apt-mark hold linux-headers-${KERNEL_VERSION} sudo apt-mark hold linux-modules-${KERNEL_VERSION} # HWEメタパッケージも固定する(HWEカーネルを使用している場合) sudo apt-mark hold linux-image-generic-hwe-24.04 sudo apt-mark hold linux-headers-generic-hwe-24.04
linux-image-6.8.0-51-generic set on hold. linux-headers-6.8.0-51-generic set on hold. linux-modules-6.8.0-51-generic set on hold.
4. 固定状態を確認する
# holdに設定されたパッケージを一覧表示する apt-mark showhold # 出力例 # linux-headers-6.8.0-51-generic # linux-headers-generic-hwe-24.04 # linux-image-6.8.0-51-generic # linux-image-generic-hwe-24.04 # linux-modules-6.8.0-51-generic
HWEカーネルをGAカーネルに切り替える方法
HWEカーネルの自動更新を完全に止めるには、HWEメタパッケージを削除してGAカーネルに切り替える方法もあります。# HWEカーネルメタパッケージを削除する sudo apt remove linux-image-generic-hwe-24.04 linux-headers-generic-hwe-24.04 # GAカーネルをインストールする(未インストールの場合) sudo apt install linux-image-generic linux-headers-generic # GRUBを更新する sudo update-grub
# 再起動後にカーネルバージョンを確認する uname -r # GAカーネルが動作している場合の出力例 # 6.8.0-51-generic
カーネルの固定を解除する方法
カーネルの固定を解除して再び自動更新を有効にするには、apt-mark unholdを使います。# カーネルパッケージのhold設定を解除する KERNEL_VERSION=$(uname -r) sudo apt-mark unhold linux-image-${KERNEL_VERSION} sudo apt-mark unhold linux-headers-${KERNEL_VERSION} sudo apt-mark unhold linux-modules-${KERNEL_VERSION} # HWEメタパッケージのhold設定も解除する(必要に応じて) sudo apt-mark unhold linux-image-generic-hwe-24.04 sudo apt-mark unhold linux-headers-generic-hwe-24.04 # 解除後に最新パッケージに更新する場合 sudo apt update && sudo apt upgrade -y
トラブルシュート:よくあるエラーと対処法
apt-mark holdを実行してもカーネルが更新されてしまう
メタパッケージ(linux-image-generic-hwe-24.04等)を固定し忘れている場合に起きます。メタパッケージが固定されていないと、メタパッケージがカーネルの新バージョンを要求して更新が実行されます。# holdに設定されているパッケージを再確認する apt-mark showhold # linux-image-generic-hwe-24.04 が表示されていない場合は固定されていない sudo apt-mark hold linux-image-generic-hwe-24.04
特定のカーネルバージョンをインストールしたい場合
新しいカーネルが既にインストールされてしまった後で、古いバージョンに戻したい場合は次の手順を使います。# 利用可能なカーネルパッケージのバージョン一覧を確認する apt-cache showpkg linux-image-generic-hwe-24.04 # 特定バージョンのカーネルをインストールする sudo apt install linux-image-6.8.0-51-generic=6.8.0-51.52 # インストール後にGRUBを更新する sudo update-grub
GRUBで起動するカーネルを手動で選択する
複数のカーネルがインストールされている環境で、起動時に特定のカーネルを選択する方法です。# GRUBメニューを表示するためにGRUBの設定を変更する sudo nano /etc/default/grub # GRUB_TIMEOUT_STYLE=hidden を GRUB_TIMEOUT_STYLE=menu に変更する # GRUB_TIMEOUT=0 を GRUB_TIMEOUT=5 に変更する(5秒待機) # 設定を反映する sudo update-grub # 再起動するとGRUBメニューが表示され、カーネルを選択できる sudo reboot
本記事のまとめ
| やりたいこと | コマンド |
|---|---|
| 現在のカーネルバージョン確認 | uname -r |
| カーネルパッケージを固定する | sudo apt-mark hold linux-image-$(uname -r) |
| HWEメタパッケージを固定する | sudo apt-mark hold linux-image-generic-hwe-24.04 |
| 固定されたパッケージを確認する | apt-mark showhold |
| 固定を解除する | sudo apt-mark unhold linux-image-$(uname -r) |
ただし、カーネルを固定するとセキュリティパッチが適用されなくなるため、固定期間中のリスク管理が必要です。定期的に最新のカーネルを検証環境でテストし、問題がなければ本番環境のholdを解除して更新することをお勧めします。
Ubuntuサーバーの運用を体系的に学びませんか?
カーネル管理を含むLinuxサーバーの運用スキルを基礎から学べます。現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:Git for Windows v2.54.0でgit svnが削除|WSL・Linux移行を推奨する理由を現役講師が解説
- 前のページへ:日本のLinuxエンジニアに迫るキャリア転機|フランス250万台移行が示す需要シフト
- この記事の属するカテゴリ:Linux学習ガイド・Linux学習ガイドへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます