- 印刷する
- PDF
Ubuntu 20.04
- 印刷する
- PDF
VPC環境で利用できます。
NAVERクラウドプラットフォーム Ubuntu 20.04サーバのカーネルアップデート方法について説明します。
このガイドは、NAVERクラウドプラットフォームで新規作成したサーバを基準に作成したため、ユーザーのサーバ環境とは異なる場合があります。ユーザーのサーバ環境はセキュリティハードニングや複数の設定などの様々な理由で、カーネルアップデートやサーバの再起動に影響を及ぼすことがあります。したがって、次の事項を熟知した後、カーネルアップデートを実行してください。
- 実際のサーバのカーネルを更新する前に、サーバイメージを使用してレプリカサーバを作成します。作成したレプリカサーバでカーネルアップデートを実行し、正常に再起動できるか確認します。再起動後に運用状態に切り替わったら、サービスに問題がないか確認します。十分に検証した後、問題がない場合のみ、サーバカーネルのアップデートを実行してください。
- GPUサーバの場合、カーネルバージョンに合う GPUドライバがインストールされている場合のみ正常に動作します。更新したカーネルが GPUドライバと互換性がない場合、GPUサーバが正常に動作しない場合があります。したがって、GPUドライバの互換性を確認した後、カーネルアップデートを実行してください。関連情報は、GPUドライバガイドをご確認ください。
- NCP Repoは、VPC Private Subnetなどの外部アクセスに支障が生じるユーザー環境をサポートするために、NAVERクラウドプラットフォームが提供するリポジトリです。NCP Repoは最新のパッケージを提供しない場合があります。
NAVERクラウドプラットフォームですべてのカーネルバージョンの更新をテストしたわけではありません。2024年1月1日基準に Ubuntu 20.04でカーネルアップデートの適用テストをしたバージョンは、5.4.0-167-genericです。
- ユーザーサーバのカーネルアップデートはユーザーの責任で行う必要があり、カーネルアップデートにより発生するトラブルに対して NAVERクラウドプラットフォームは責任を負いません。
- カーネルアップデートや再起動中はサーバの正常な使用が不可な場合があり、これによる復旧はサポートしていません。また、カーネルアップデートの失敗時のサーバ復旧はサポートしていません。
- カーネルを更新する前にマイサーバイメージで作成したバックアップは、バックアップが不要になるまで保存してください。
- このガイドと関連したトラブルに対しては、別途サポートは提供されません。
カーネルアップデート
Ubuntu 20.04サーバのカーネルを更新する方法は、次の通りです。
カーネルアップデートを適用するサーバにリモートアクセスします。
サーバのカーネルバージョンを確認します。
root@ubuntu2004:~# uname -r 5.4.0-99-generic
サーバに接続されたリポジトリ情報を確認します。
- 民間 VPC Ubuntu 20.04は基本的に NCP Repoの
http://repo.ncloud.com/ubuntu
が Base URLに設定されています。
root@ubuntu2004:~# grep ^deb /etc/apt/sources.list deb http://repo.ncloud.com/ubuntu focal main restricted deb http://repo.ncloud.com/ubuntu focal-updates main restricted deb http://repo.ncloud.com/ubuntu focal universe deb http://repo.ncloud.com/ubuntu focal-updates universe deb http://repo.ncloud.com/ubuntu focal multiverse deb http://repo.ncloud.com/ubuntu focal-updates multiverse deb http://repo.ncloud.com/ubuntu focal-backports main restricted universe multiverse deb http://repo.ncloud.com/ubuntu focal-security main restricted deb http://repo.ncloud.com/ubuntu focal-security universe deb http://repo.ncloud.com/ubuntu focal-security multiverse
- 民間 VPC Ubuntu 20.04は基本的に NCP Repoの
リポジトリで提供するカーネルバージョンを確認します。
root@ubuntu2004:~# apt-get update Hit:1 http://repo.ncloud.com/ubuntu focal InRelease Get:2 http://repo.ncloud.com/ubuntu focal-updates InRelease [114 kB] Get:3 http://repo.ncloud.com/ubuntu focal-backports InRelease [108 kB] Get:4 http://repo.ncloud.com/ubuntu focal-security InRelease [114 kB] ... 省略... Get:40 http://repo.ncloud.com/ubuntu focal-security/universe amd64 c-n-f Metadata [19.2 kB] Get:41 http://repo.ncloud.com/ubuntu focal-security/multiverse amd64 Packages [23.6 kB] Get:42 http://repo.ncloud.com/ubuntu focal-security/multiverse i386 Packages [7,188 B] Get:43 http://repo.ncloud.com/ubuntu focal-security/multiverse Translation-en [5,504 B] Get:44 http://repo.ncloud.com/ubuntu focal-security/multiverse amd64 c-n-f Metadata [548 B] Fetched 18.2 MB in 3s (5,331 kB/s) Reading package lists... Done root@ubuntu2004:~# apt-cache search linux-image-5.4.0-167-generic linux-image-5.4.0-167-generic - Signed kernel image generic
最新バージョンのカーネルをインストールします。
新規インストールパッケージ、アップデートパッケージ、削除パッケージのリストを詳細に確認した後、異常がない場合Y
を入力してインストールを完了します。root@ubuntu2004:~# apt install linux-{image,headers}-5.4.0-167-generic Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: linux-headers-5.4.0-167 linux-modules-5.4.0-167-generic Suggested packages: fdutils linux-doc | linux-source-5.4.0 linux-tools The following NEW packages will be installed: linux-headers-5.4.0-167 linux-headers-5.4.0-167-generic linux-image-5.4.0-167-generic linux-modules-5.4.0-167-generic 0 upgraded, 4 newly installed, 0 to remove and 276 not upgraded. Need to get 37.8 MB of archives. After this operation, 179 MB of additional disk space will be used. Do you want to continue? [Y/n] Y ... 省略... /etc/kernel/postinst.d/zz-update-grub: Sourcing file `/etc/default/grub' Sourcing file `/etc/default/grub.d/init-select.cfg' Generating grub configuration file ... Found linux image: /boot/vmlinuz-5.4.0-167-generic Found initrd image: /boot/initrd.img-5.4.0-167-generic Found linux image: /boot/vmlinuz-5.4.0-99-generic Found initrd image: /boot/initrd.img-5.4.0-99-generic done
インストールが完了したら、起動可能なすべてのカーネルバージョンを確認します。
root@ubuntu2004:~# awk -F"--class" '/menuentry/ && /with Linux/ {print $1}' /boot/grub/grub.cfg | awk '{print i++ " : " $5,$6,$7,$8}' | sed -e "s/'/ /g" 0 : 5.4.0-167-generic 1 : 5.4.0-167-generic (recovery mode) 2 : 5.4.0-99-generic 3 : 5.4.0-99-generic (recovery mode)
起動時に最新カーネルバージョンをデフォルト値として選択できるように設定します。
root@ubuntu2004:~# sed -i 's/GRUB_DEFAULT=.*/GRUB_DEFAULT=saved/g' /etc/default/grub root@ubuntu2004:~# grep "GRUB_DEFAULT" /etc/default/grub GRUB_DEFAULT=saved root@ubuntu2004:~# grub-set-default "Advanced options for Ubuntu>Ubuntu, with Linux 5.4.0-167-generic" root@ubuntu2004:~# grub-editenv list saved_entry=Advanced options for Ubuntu>Ubuntu, with Linux 5.4.0-167-generic root@ubuntu2004:~# update-grub Sourcing file `/etc/default/grub' Sourcing file `/etc/default/grub.d/init-select.cfg' Generating grub configuration file ... Found linux image: /boot/vmlinuz-5.4.0-167-generic Found initrd image: /boot/initrd.img-5.4.0-167-generic Found linux image: /boot/vmlinuz-5.4.0-99-generic Found initrd image: /boot/initrd.img-5.4.0-99-generic done
最新カーネルバージョンを有効にするには、サーバを再起動します。
root@ubuntu2004:~# reboot
サーバの再起動に失敗した場合、カーネルアップデートが正常に行われなかったことを意味します。この場合は、カーネルアップデートの復元を参照して以前のカーネルバージョンに戻してください。
サーバに再ログインして新しいカーネルが有効になっているか確認します。
root@ubuntu2004:~# uname -r 5.4.0-167-generic
アップデートしたカーネルが正常に適用されたか確認するには、カーネルアップデートの確認を参照してカーネルのインストール状況をご確認ください。
カーネルアップデートの確認
アップデートしたカーネルが正常に適用されたか確認する方法は、次の通りです。
- サーバへリモートアクセスします。
- カーネルパッケージがインストールされているか確認します。
root@ubuntu2004:~# dpkg -l | grep linux-image-5.4.0-167-generic ii linux-image-5.4.0-167-generic 5.4.0-167.184 amd64 Signed kernel image generic
- /bootディレクトリに initramfsファイルと vmlinuzファイルが作成されているか確認します。
root@ubuntu2004:~# ls -l /boot/initrd.img-5.4.0-167-generic -rw-r--r-- 1 root root 33241845 Dec 6 14:50 /boot/initrd.img-5.4.0-167-generic root@ubuntu2004:~# ls -l /boot/vmlinuz-5.4.0-167-generic -rw------- 1 root root 13677320 Oct 31 18:07 /boot/vmlinuz-5.4.0-167-generic
- grub.cfgファイルに最新カーネル設定が登録されているか確認します。
root@ubuntu2004:~# awk -F"--class" '/menuentry/ && /with Linux/ {print $1}' /boot/grub/grub.cfg | awk '{print i++ " : " $5,$6,$7,$8}' | sed -e "s/'/ /g" 0 : 5.4.0-167-generic 1 : 5.4.0-167-generic (recovery mode) 2 : 5.4.0-99-generic 3 : 5.4.0-99-generic (recovery mode)
カーネルアップデートの復元
カーネルのアップデート後にサーバの再起動が正常に行われない場合、更新する前のカーネルに戻す必要があります。
インストールされたカーネルの中から、複数のバージョンに復元できます。このガイドでは、カーネルを更新する直前に使用したカーネルバージョンに復元する方法を使っています。
カーネルバージョンを復元する方法は、次の通りです。
サーバの再起動問題を解決するために Single modeに入り、サーバの復旧を試行することもできます。Single modeの起動方法は、サーバ復旧ガイドをご参照ください。
- NAVERクラウドプラットフォームコンソールの Region メニューや Platform メニューから利用中の環境をクリックします。
- Services > Compute > Server メニューを順にクリックします。
- Server メニューをクリックします。
- サーバリストから復旧するサーバを選択した後、 [サーバアクセスコンソール] ボタンを選択します。
- grub起動画面でブートカーネルを以前のバージョンに選択して再起動します。
Ubuntu 20.04 grubの起動画面
- 起動が完了したら、サーバのカーネルバージョンを確認します。
root@ubuntu2004:~# uname -r 5.4.0-99-generic
- 現在有効になっているカーネルバージョンを確認します。
root@ubuntu2004:~# awk -F"--class" '/menuentry/ && /with Linux/ {print $1}' /boot/grub/grub.cfg | awk '{print i++ " : " $5,$6,$7,$8}' | sed -e "s/'/ /g" 0 : 5.4.0-167-generic 1 : 5.4.0-167-generic (recovery mode) 2 : 5.4.0-99-generic 3 : 5.4.0-99-generic (recovery mode)
- 起動時にデフォルトのカーネルバージョンを以前のバージョンのカーネルバージョンにリセットします。
root@ubuntu2004:~# sed -i 's/GRUB_DEFAULT=.*/GRUB_DEFAULT=saved/g' /etc/default/grub root@ubuntu2004:~# grep "GRUB_DEFAULT" /etc/default/grub GRUB_DEFAULT=saved root@ubuntu2004:~# grub-set-default "Advanced options for Ubuntu>Ubuntu, with Linux 5.4.0-99-generic" root@ubuntu2004:~# grub-editenv list saved_entry=Advanced options for Ubuntu>Ubuntu, with Linux 5.4.0-99-generic root@ubuntu2004:~# update-grub Sourcing file `/etc/default/grub' Sourcing file `/etc/default/grub.d/init-select.cfg' Generating grub configuration file ... Found linux image: /boot/vmlinuz-5.4.0-167-generic Found initrd image: /boot/initrd.img-5.4.0-167-generic Found linux image: /boot/vmlinuz-5.4.0-99-generic Found initrd image: /boot/initrd.img-5.4.0-99-generic done
- (選択事項)変更されたカーネルバージョンが正常に起動するか確認するために、サーバを再起動します。
root@ubuntu2004:~# reboot
- (選択事項)サーバに再ログインして起動有無とカーネルバージョンを確認します。
root@ubuntu2004:~# uname -r 5.4.0-99-generic