Ubuntu 20.04から26.04へ。三世代?を駆け抜けるLTSアップデート完遂の記録
はじめに
Ubuntu 20.04から最新の26.04を目指し、一気に三世代を駆け抜けるアップデートを実施した記録です。
第一工程:20.04から22.04への移行
最初のステップは、20.04(Focal Fossa)から22.04(Jammy Jellyfish)へのアップグレードです。SSH経由での作業となるため、ネットワークの切断が即座に作業の中断を意味する環境下での実施となりました。
実行した手順
まず、標準的なアップデートコマンドを投入します。
do-release-update
この際、通信断絶によるリスクを回避するため、事前にscreenを起動してセッションを保護しました。さらに、万が一メインのSSHセッションが切れた場合に備え、別の端末から以下のコマンドを実行してバックアップ用のポートを開放しています。
iptables -I INPUT -p tcp --dport 1022 -j ACCEPT
作業中にscreenを用意しておかないと、この通信が切れたらUpdateが失敗することに気がついて慌てていました。まー普通に考慮されていました。
作業完了後は不要なパッケージのゴミやジャーナルログを消すことで、空き容量を作りました。
sudo apt autoremove
sudo apt clean
sudo journalctl --vacuum-size=500M
第二工程:22.04から24.04への移行
続いて、24.04(Noble Numbat)へのアップデートに移りました。この段階では、通信よりもストレージの空き容量が大きな懸念事項となりました。
リソースの制約と対処
do-release-update
作業中、ディスクの空き容量が残り1GBという状況まで追い込まれました。OSのアップデートには通常数GBの作業領域を要しますが、ここではアップデートの進行と並行して、裏で肥大化したログファイルを逐次手動で削除することで、処理を停止させることなく完遂させました。
ストレージ不足による停止さえ回避できれば、プロセスは正常に進行するという判断に基づき、無事に24.04へのリブートまで到達しました。
第三工程:24.04から26.04への試行
最後に、ターゲットであった26.04へのアップデートを試みました。日付は2026年4月30日。カレンダー上では最新OSのリリース時期を迎えているタイミングです。
実行結果
root@ubuntu:~# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=24.04
DISTRIB_CODENAME=noble
DISTRIB_DESCRIPTION="Ubuntu 24.04.4 LTS"
root@ubuntu:~# do-release-upgrade
Checking for a new Ubuntu release
There is no development version of an LTS available.
To upgrade to the latest non-LTS development release
set Prompt=normal in /etc/update-manager/release-upgrades.
結果として、現時点ではLTSからLTSへの正式なアップグレードパスが提供されておらず、コマンドは開発版の不在を告げて終了しました。
後始末として、開けたポートを閉じておきます。
root@ubuntu:~# iptables -D INPUT -p tcp --dport 1022 -j ACCEPT
iptables: Bad rule (does a matching rule exist in that chain?).
インストーラが対応してくれているみたいですね。(それとも単純にうちわすれ??)
おわりに
最悪失敗するかなと思っていましたが、無事に先に進みました。
色々パッケージを入れている場合はこの限りではないかもしれませんが、古いバージョンだったので、安定したような気がします。