Ubuntu 20.04
    • PDF

    Ubuntu 20.04

    • PDF

    Article Summary

    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サーバのカーネルを更新する方法は、次の通りです。

    1. カーネルアップデートを適用するサーバにリモートアクセスします。

    2. サーバのカーネルバージョンを確認します。

      root@ubuntu2004:~# uname -r
      5.4.0-99-generic
      
    3. サーバに接続されたリポジトリ情報を確認します。

      • 民間 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
      
    4. リポジトリで提供するカーネルバージョンを確認します。

      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
      
    5. 最新バージョンのカーネルをインストールします。
      新規インストールパッケージ、アップデートパッケージ、削除パッケージのリストを詳細に確認した後、異常がない場合 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
      
    6. インストールが完了したら、起動可能なすべてのカーネルバージョンを確認します。

      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)
      
    7. 起動時に最新カーネルバージョンをデフォルト値として選択できるように設定します。

      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
      
    8. 最新カーネルバージョンを有効にするには、サーバを再起動します。

      root@ubuntu2004:~# reboot
      
    参考

    サーバの再起動に失敗した場合、カーネルアップデートが正常に行われなかったことを意味します。この場合は、カーネルアップデートの復元を参照して以前のカーネルバージョンに戻してください。

    1. サーバに再ログインして新しいカーネルが有効になっているか確認します。

      root@ubuntu2004:~# uname -r
      5.4.0-167-generic
      
    参考

    アップデートしたカーネルが正常に適用されたか確認するには、カーネルアップデートの確認を参照してカーネルのインストール状況をご確認ください。

    カーネルアップデートの確認

    アップデートしたカーネルが正常に適用されたか確認する方法は、次の通りです。

    1. サーバへリモートアクセスします。
    2. カーネルパッケージがインストールされているか確認します。
      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
      
    3. /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
      
    4. 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の起動方法は、サーバ復旧ガイドをご参照ください。

    1. NAVERクラウドプラットフォームコンソールの Region メニューや Platform メニューから利用中の環境をクリックします。
    2. Services > Compute > Server メニューを順にクリックします。
    3. Server メニューをクリックします。
    4. サーバリストから復旧するサーバを選択した後、 [サーバアクセスコンソール] ボタンを選択します。
    5. grub起動画面でブートカーネルを以前のバージョンに選択して再起動します。
      • Ubuntu 20.04 grubの起動画面
        kernel-update-ubuntu20_console01

        kernel-update-ubuntu20_console02

    6. 起動が完了したら、サーバのカーネルバージョンを確認します。
      root@ubuntu2004:~# uname -r
      5.4.0-99-generic
      
    7. 現在有効になっているカーネルバージョンを確認します。
      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)
      
    8. 起動時にデフォルトのカーネルバージョンを以前のバージョンのカーネルバージョンにリセットします。
      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
      
    9. (選択事項)変更されたカーネルバージョンが正常に起動するか確認するために、サーバを再起動します。
      root@ubuntu2004:~# reboot
      
    10. (選択事項)サーバに再ログインして起動有無とカーネルバージョンを確認します。
      root@ubuntu2004:~# uname -r
      5.4.0-99-generic
      

    この記事は役に立ちましたか?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.