はじめに
4月にUbuntu 26.04がリリースされてから、周辺の対応が進み、ようやく26.04.1がリリースされ、24.04からのアップグレードが始まりました。
26.04.1がリリースされてからもしばらくアップグレードは推奨されていませんでしたが、ようやくdo-release-upgradeコマンドが'-d'オプションなしに実行できるようになりました。
26.04.1リリース以前にアップグレードした時には、いろいろ問題がありましたが、対応が進んだとされてからも少し問題が残っているようです。
この他にパッケージの変更など、対応が必要な部分もあったので、気がついたことをまとめておきます。
26.04へのアップグレード方法
公式サイトの方法が一番確実です。
気がついた24.04との違い
/etc/sysctl.conf が消える
26.04ではsysctlコマンドではなく、systemd-sysctl.serviceが/proc/sys/以下を管理するように構成が変更されます。
具体的には/etc/sysctl.confファイルが削除されます。
24.04では/etc/sysctl.d/99-sysctl.confファイルが/etc/sysctl.confへのシンボリックリンクになっていたため、/etc/sysctl.confに書かれた内容が反映されるようになっています。
26.04にアップグレードすると/etc/sysctl.confファイルが削除されてしまい内容は/etc/sysctl.d/ディレクトリ以下に引き継がれません。
Ansibleのsysctlモジュールもまだ/etc/sysctl.confファイルを管理するようになっているため、結果として/etc/sysctl.confに記述していたipv4.ip_forwarding=1のような設定は26.04にアップグレードすると反映されなくなります。
$ sudo sysctl -p
sysctl: cannot open "/etc/sysctl.conf": No such file or directory
さすがにファイル自体は/etc/sysctl.conf.dpkg-oldとして残存していますが、サーバーとしては正常に稼動しない状態で起動するので、アップグレード前に対応する必要があります。
この事に気がつかないと、Ubuntu 26.04にアップグレードした後に/etc/sysctl.confを再作成してしまい、sudo sysctl -pを実行した時だけ設定が反映されてしまう事になります。
Ubuntu 24.04.5での/etc/sysctl.confファイルの取り扱い
24.04.5では/etc/sysctl.confファイルは、次のようにシンボリック・リンクが/etc/sysctl.d/ディレクトリに作成されているため、sysctpコマンドにもsystemd-sysctl.serviceにも設定が反映されるようになっています。
$ ls -l /etc/sysctl.d/99-sysctl.conf
lrwxrwxrwx 1 root root 14 Jul 28 15:04 /etc/sysctl.d/99-sysctl.conf -> ../sysctl.conf
24.04.5ではこの他に/etc/sysctl.d/10-*.confファイルが配置されていますが、これらはprocpsパッケージに所属していて、26.04.1では/usr/lib/sysctl.d/ディレクトリに配置されています。
Ubuntu 26.04へのアップグレード時には、これらのファイルの移行は行われないため、あらかじめ必要な設定を/etc/sysctl.d/以下のファイルにも反映させておく必要があります。
sudoコマンド(sudo-rs)では-Eオプションが使えない
Ubuntu 26.04では従来のsudoもインストールされているはずですが、/etc/alternatives/sudoのリンク先がsudo-rsのバイナリに変更されています。
セキュリティ上の理由だと思いますが、環境変数を全部渡す-Eオプションがなくなっています。
例えばリモートで離れたデスクトップからsudo経由でgpartedのような特権が必要なX11クライアント・コマンドを起動するためには、次のようにします。
$ sudo env DISPLAY=$DISPLAY XAUTHORITY="${HOME}/.Xauthority" gparted /dev/sdc
XAUTHORITYの代りにHOME=${HOME}を設定する方法もありますが、最低限の設定は上記のようになるはずです。
LDAP認証のパッケージに変更が入った
まず ldap-auth-config, ldap-auth-clientパッケージが削除されています。Ubuntu 24.04でもあったlibpam-ldapdとlibnss-ldapdパッケージで対応できるようになっています。
ただ次のようなメッセージが記録されるようになりました。
2026-10-02T23:13:07.623755+00:00 s10tp17 kernel: audit: type=1400 audit(1790982787.622:238): \
apparmor="DENIED" operation="connect" class="file" profile="unix-chkpwd" \
name="/att/unix-chkpwd/run/nslcd/socket" pid=4670 comm="unix_chkpwd" requested_mask="wr" \
denied_mask="wr" fsuid=0 ouid=116
ansibleを利用して下記の記事で紹介されているように /etc/apparmor.d/unix-chkpwd ファイルを編集しています。
さいごに
Ubuntu 26.04は x86-64-v3 対応パッケージの配布など、全体的なパフォーマンスも向上し、移行するメリットはあるように思えます。
ただサーバー環境で利用している場合には、テスト環境などでのアップグレードテストを十分に行う必要がありそうです。
UbuntuはKubernetesやFirewall+Reverse Proxy Serverなど、ほとんどサーバー用途で利用しているので慎重にテストをして進めていくつもりです。