Ubuntu LTS間のアップグレード

Pocket

概要

 UbuntuのLTSは基本的に2年おきに4月にリリースされています。通常リリースと異なりこれらのリリースはサポートタームが長期に取られていて、通常のリリースが9ヶ月であるのに対して、5年のサポート期間を有しています。

 サポートが終了したバージョンのUbuntuディストリビューションでは、該当のバージョンのaptレポジトリの提供が終了します。この為新規パッケージのインストール、既存パッケージの更新等が不可能になりますね。一旦aptレポジトリの提供が終了してしまうと、変則的な手段でのアップグレードが必要になってしまうので面倒なことになる前にサクッと更新しておきましょう。

 今回はubuntu serverのLTS間の更新を行いましたが、デスクトップ版の更新も基本的には同手順で実行可能です。

環境情報

/etc/os-releaseより現在利用しているUbuntuのバージョンが確認可能です。

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.5 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.5 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

また、do-release-upgradeに-c引数を付加して実行することで、アップグレード可能なバージョンを確認することができます。

$ sudo do-release-upgrade -c
Checking for a new Ubuntu release
New release '22.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

注意点

  • LTS間の更新の場合は中間のリリース(今回の場合は20.10や21.04など)をスキップすることができますが、その他のリリースでは段階的なアップグレード(20.10から21.04に更新後、21.10へ更新する)が必要になります。
  • LTS間でのアップグレードの場合でも中間のLTSバージョンをスキップして更新(18.04から22.04へ直接アップグレード)することはできません。必ず次のLTSバージョンへ順繰りにアップグレードしましょう。
  • アップグレードの一環で、現在インストールされているパッケージをすべて最新まで更新する作業が入ります。旧バージョンのパッケージを選択的にインストールしている場合は、事前にapt-mark holdで該当パッケージのバージョンをロックしてください。

アップグレード手順

インストール済みパッケージの更新

 手始めに、既にインストール済みのパッケージについて全て更新していきます。この辺りの手順は通常の保守でも実行する内容なので、特に留意点はないですね。

$ sudo apt update
Hit:1 http://jp.archive.ubuntu.com/ubuntu focal InRelease
Get:2 http://jp.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:3 http://jp.archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
Get:4 http://jp.archive.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Fetched 336 kB in 3s (133 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
94 packages can be upgraded. Run 'apt list --upgradable' to see them.

$ sudo apt upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done

 linux kernelの更新が行われた場合は、必ず再起動を行ってから次のrelease-upgradeを実行しましょう。実行しているkernelのバージョンが古い場合、何らか不整合が発生する可能性があります。

$ sudo shutdown -r now

リリース間の更新

 上記のパッケージアップグレードの実行後、リリース間アップグレードを実行していきます。

$ sudo do-release-upgrade
Checking for a new Ubuntu release
Get:1 Upgrade tool signature [819 B]
Get:2 Upgrade tool [1265 kB]
Fetched 1266 kB in 0s (0 B/s)
authenticate 'jammy.tar.gz' against 'jammy.tar.gz.gpg'
extracting 'jammy.tar.gz'

 ssh接続によりサーバ操作を行なっている場合、下記のメッセージが表示され 1022/tcpで追加のssh daemonを実行するかどうか確認されます。NATした環境でアップグレードを実施する場合などは、必ず1022/tcp経由でのアクセスも確保しておきましょう。またufwでアクセス可能なポートを制御している場合、事前に該当ポートを許可する必要があります。

Reading cache

Checking package manager

Continue running under SSH?

This session appears to be running under ssh. It is not recommended
to perform a upgrade over ssh currently because in case of failure it
is harder to recover.

If you continue, an additional ssh daemon will be started at port
'1022'.
Do you want to continue?

Continue [yN]

 何らかの動作異常でssh接続ができなくなった場合も、1022/tcpで接続し直すことで復旧作業を行うことができます。ここまでの手順で特に問題が発生していなければ、Enterを押下してアップグレード作業を実行していきましょう。

Starting additional sshd

To make recovery in case of failure easier, an additional sshd will
be started on port '1022'. If anything goes wrong with the running
ssh you can still connect to the additional one.
If you run a firewall, you may need to temporarily open this port. As
this is potentially dangerous it's not done automatically. You can
open the port with e.g.:
'iptables -I INPUT -p tcp --dport 1022 -j ACCEPT'

To continue please press [ENTER]

 更新される予定のパッケージ数と消費されるストレージ容量の確認メッセージが表示されます。dで更新されるパッケージの詳細情報を確認することができます。問題なければyで続行しましょう。

Reading package lists... Done
Building dependency tree
Reading state information... Done
Hit http://jp.archive.ubuntu.com/ubuntu focal InRelease
Get:1 http://jp.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:2 http://jp.archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
Get:3 http://jp.archive.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Fetched 336 kB in 0s (0 B/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done

Checking for installed snaps
Calculating snap size requirements


Checking package manager
Reading package lists... Done
Building dependency tree
Reading state information... Done

Calculating the changes

Calculating the changes
  MarkInstall libflashrom1:amd64 < none -> 1.2-5build1 @un uN Ib > FU=1
  Installing libftdi1-2 as Depends of libflashrom1
    MarkInstall libftdi1-2:amd64 < none -> 1.5-5build3 @un uN > FU=0

Do you want to start the upgrade?


4 packages are going to be removed. 90 new packages are going to be
installed. 564 packages are going to be upgraded.

You have to download a total of 552 M. This download will take about
2 minutes with your connection.

Installing the upgrade can take several hours. Once the download has
finished, the process cannot be canceled.

 Continue [yN]  Details [d]

 ここから先がアップグレード作業の中で最も時間のかかるパートです。新しいバージョンのLTSに合わせて、各パッケージの更新を適用していきます。

 途中glibc6を更新する際に、Configuring libc6のタイトルで関連サービスを更新中に自動で再起動するか確認画面が表示されます。基本的には<Yes>を選択して問題ありません。

 パッケージの更新が完了すると、現在使用しているパッケージのうち不要なものについて削除する確認ダイアログが表示されます。パッケージを残したい場合はN、そうでない場合はyで続行しましょう。

Searching for obsolete software
Reading state information... Done

Remove obsolete packages?


75 packages are going to be removed.

 Continue [yN]  Details [d]

 最後に、アップグレードの再起動について確認ダイアログが表示されます。これまでのアップグレード作業で問題が発生していない場合、yで再起動を実行しましょう。

System upgrade is complete.

Restart required

To finish the upgrade, a restart is required.
If you select 'y' the system will be restarted.

Continue [yN]

更新後の確認

 再起動完了後に実際にバージョンが上がっているか確認していきましょう。/etc/os-releaseより現在利用しているバージョンが確認できます。

$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

 またmotdが設定されている場合には、接続時に表示されるメッセージの変化から確認することもできます。

Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.15.0-53-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

 以上でアップグレード作業は完了になります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください