はじめに
Ubuntu 26.04 LTS(コードネーム Resolute Raccoon 🦝)がリリースされた2026年4月23日、手元のデスクトップをその日のうちにアップグレードしました。
使ったのは 2014年製の古いデスクトップです。Core i7-4790K と GTX 970 はその世代としてはミドルハイクラスでしたが、12年も経てば決してスペックの高いマシンではありません。「最新OSは古いハードで動くのか?」という点でも、一つの検証になっています。
| 項目 | 内容 |
|---|---|
| ホスト名 | neuralhub |
| 本体 | ASUS デスクトップ |
| CPU | Core i7-4790K(2014年製) |
| GPU | NVIDIA GeForce GTX 970 |
| 作業方法 | SSH リモート接続 |
リリース当日のアップグレードには多少のリスクがあります。公式には 24.04 からのアップグレードパスが開くのは 26.04.1(2026年8月予定) からで、それまでは do-release-upgrade -d の -d フラグが必要です。
-d は「development(開発版)」の略で、正式なアップグレードパスが開いていない段階でも強制的に次のバージョンへ移行するオプションです。通常、LTS 版の公式アップグレードパスは最初のポイントリリース(26.04.1)が出るまで開放されません。-d を付けることでこの制限を無視してアップグレードできますが、初期バグに当たるリスクは高くなります。
それでも試したのは、せっかくリリース日に立ち会えたので記念にやってみたかったから、という単純な理由です。
結果から言うと、約30分でトラブルなく完了しました。
Ubuntu 26.04 の新機能や変更点の詳細については別記事にまとめています。
Linux 7.0・GNOME 50・Rust 化・X11 廃止・TPM 暗号化など、26.04 の変更点を網羅した記事はこちら。
🔍 アップグレード前の状態確認
作業前に、ディスクとメモリの余裕を確認しておきます。
$ lsb_release -a
Description: Ubuntu 24.04.4 LTS
Codename: noble
$ df -h /
Filesystem Size Used Avail Use%
/dev/sda2 233G 17G 204G 8%
$ free -h
total used free
Mem: 23Gi 1.3Gi 20Gi
Swap: 8.0Gi 0B 8.0Gi
$ uname -r
6.17.0-22-generic
| 項目 | 値 | 判定 |
|---|---|---|
| ディスク空き容量 | 204GB | ✅ 余裕あり(25GB 以上必要) |
| メモリ | 23GB | ✅ 余裕あり(6GB 以上推奨) |
| カーネル | 6.17.0-22-generic | ✅ |
do-release-upgrade は一時ファイルを大量に展開するためディスク容量が特に重要です。メモリは 26.04 から最小推奨が 4GB → 6GB に引き上げられており、余裕があるかどうか確認しておきましょう。
📦 現行パッケージを最新状態にする
-d フラグを使ったリリース当日のアップグレードはリスクが伴います。実施前に Timeshift などでシステムスナップショットを取っておくことを強くおすすめします。今回は検証環境のため省略しましたが、本番運用マシンでは必須です。
アップグレード前の準備として、現在のパッケージを全て最新にしておきます。中途半端な状態でアップグレードを開始すると、依存関係の解決でつまずくことがあるためです。
sudo apt update && sudo apt upgrade -y
sudo apt dist-upgrade -y && sudo apt autoremove -y
今回は GTK4 関連の 5 パッケージが更新され、wireguard-tools が不要として削除されました。エラーなしで完了です。
🖥️ SSH越しの作業では tmux が必須
モニター・キーボードを繋いで本体で直接操作している場合、この手順はスキップして問題ありません。tmux が必要なのは SSH リモート接続でのアップグレード時のみです。
ここが SSH リモートアップグレードで最も重要なポイントです。
アップグレード中に SSH 接続が切れると、do-release-upgrade プロセスが孤立してしまう可能性があります。これを防ぐのが tmux(ターミナルマルチプレクサ)です。tmux のセッション上で作業すれば、SSH が切れてもサーバー側でプロセスが動き続け、再接続後にそのまま作業を再開できます。
sudo apt install tmux -y
tmux new -s upgrade
このセッション内で以降の作業を行います。
do-release-upgrade は SSH 切断対策として、ポート 1022 で別の SSH サーバーを自動起動します。万が一通常ポートでの接続が切れた場合は次のコマンドで再接続できます。
ssh -p 1022 ユーザー名@IPアドレス
再接続後は tmux attach -t upgrade でセッションに復帰できます。
⬆️ アップグレード実行
sudo do-release-upgrade -d
-d は開発版(development)フラグで、正式なアップグレードパスが開く前の段階で強制的に移行するために必要です。26.04.1 以降は -d なしでアップグレードできるようになります。
実行するといくつかの選択が求められます。
① サービスの自動再起動
パッケージのアップグレード中、質問することなくサービスを再起動しますか?
→ 「はい」を選択しました。
アップグレード中はライブラリの入れ替えが頻繁に発生し、実行中のサービスが古いライブラリを参照したままになることがあります。自動再起動を許可することで、この問題を回避しながら処理を進められます。
サービスの自動再起動を許可するか確認される
② アップグレード内容の確認
19 個のパッケージが削除されます
208 個の新規パッケージがインストールされます
1462 個のパッケージがアップグレードされます
合計 2,168 MB をダウンロード
→ y で続行。 2GB 強のダウンロードが走ります。
③ /etc/samba/smb.conf の扱い
変更された設定ファイル smb.conf について何を行いたいですか?
smb.conf の扱いを選択する画面
→ 「現在インストールされているローカルバージョンを保持」を選択しました。
この判断の基準はシンプルで、「そのサービスをカスタマイズして使っているかどうか」 です。今回の環境では Samba を使って Windows とのファイル共有を設定済みでした。新しい設定ファイルに上書きすると、カスタム設定が消えてファイル共有が動かなくなります。
結果:設定変更なしでそのまま引き継ぎ成功。✅
④ /etc/ssh/sshd_config の扱い
変更された設定ファイル sshd_config について何を行いたいですか?
sshd_config の扱いを選択する画面
→ 「現在インストールされているローカルバージョンを保持」を選択しました。
SSH でリモート接続しながらの作業だったため、これは特に慎重に判断しました。sshd_config が上書きされると、ポート番号や認証方式が変わって接続できなくなるリスクがあります。今の設定で問題なく動いているなら、わざわざ新しいデフォルト設定に切り替える理由はありません。
結果:設定変更なしでそのまま引き継ぎ成功。✅
どちらを選ぶべきか迷ったときの考え方:
- 「保持」を選ぶべきとき:そのサービスに手を加えてカスタム設定をしている
- 「上書き」でよいとき:インストール後にまったく触っていないデフォルトのまま
判断に迷う場合は保持を選んでおいて、後から diff で差分を確認するのが安全です。
⑤ サポート終了パッケージの削除
184 個のパッケージが削除されます。
主な削除対象は次の通りです。
| パッケージ | 理由 |
|---|---|
eog |
Loupe(新しい画像ビューア)に置き換え |
gnome-system-monitor |
Resources(新タスクマネージャ)に置き換え |
python3.12 |
新バージョンの Python へ移行 |
| 古いカーネル(6.17.0-19) | 新カーネルへ移行 |
samba-ad-provision / samba-dsdb-modules |
Samba コアは維持。旧モジュールのみ削除 |
→ y で続行。
🔄 再起動と完了確認
y で再起動を実行。SSH 接続は一度切れましたが、1〜2 分後に通常通り再接続できました。
$ lsb_release -a
Description: Ubuntu 26.04 LTS
Codename: resolute
$ uname -r
7.0.0-14-generic
| アップグレード前 | アップグレード後 | |
|---|---|---|
| OS | Ubuntu 24.04.4 LTS | Ubuntu 26.04 LTS |
| コードネーム | Noble Numbat 🦡 | Resolute Raccoon 🦝 |
| カーネル | 6.17.0-22-generic | 7.0.0-14-generic |
Ubuntu 26.04 LTS へようこそ!アライグマのロゴが迎えてくれる
✅ 動作確認
fastfetch でシステム情報を確認
fastfetch はシステム情報を見やすく表示してくれるツールで、アップグレード後の確認に便利です。
sudo apt install fastfetch -y && fastfetch
fastfetch の出力。アライグマのアスキーアートとシステム情報が表示される
| 項目 | 内容 |
|---|---|
| Kernel | Linux 7.0.0-14-generic |
| DE | GNOME 50.1 |
| WM | Mutter (Wayland) |
| CPU | Intel Core i7-4790K (8) @ 4.40 GHz |
| GPU | NVIDIA GeForce GTX 970 |
| Memory | 1.34 GiB / 22.91 GiB |
注目したのは Wayland で問題なく起動していることです。GNOME 50 は X11 セッションを廃止して Wayland 専用になっており、NVIDIA 環境での動作が心配でしたが、GTX 970 でも特に問題は起きませんでした。
$ hostnamectl
Operating System: Ubuntu 26.04 LTS
Kernel: Linux 7.0.0-14-generic
Hardware Vendor: ASUS
Firmware Date: Mon 2014-07-07
2014 年製のマザーボードでも問題なく動いています。
Samba・SSH の引き継ぎ確認
設定ファイルを保持する選択をしましたが、実際に引き継がれているかを確認します。
$ smbd --version
Version 4.23.6-Ubuntu
$ sshd -V
OpenSSH_10.2p1 Ubuntu-2ubuntu3
Samba も SSH も設定変更なしでそのまま動作していました。アップグレード直後から SSH 接続もファイル共有も使える状態でした。
🦀 気づいたら sudo が Rust 製になっていた
アップグレード後にふと確認してみると、sudo-rs が使えるようになっていました。
$ sudo-rs --version
sudo-rs 0.2.13-0ubuntu1
sudo-rs は C 言語で書かれた従来の sudo を Rust で書き直したものです。Rust はメモリ安全性をコンパイル時に保証するという特徴があり、sudo のような特権コマンドを Rust で再実装することには大きな意味があります。過去の sudo の脆弱性の多くは、Rust であれば原理上発生しなかったタイプのバグでした。
試しに sudo の実体を辿ってみると、シンボリックリンクの連鎖で Rust 製バイナリに繋がっていました。
$ ls -la /usr/bin/sudo
lrwxrwxrwx ... /usr/bin/sudo -> /etc/alternatives/sudo
$ ls -la /etc/alternatives/sudo
lrwxrwxrwx ... /etc/alternatives/sudo -> /usr/lib/cargo/bin/sudo
sudo → /etc/alternatives/sudo → /usr/lib/cargo/bin/sudo(sudo-rs)
/usr/lib/cargo/bin/ は Rust のパッケージマネージャ cargo でビルドされたバイナリの置き場所です。つまり普段通り sudo と打つだけで、裏では Rust 製の実装が動いています。
従来の C 言語製 sudo も残されており、update-alternatives で切り替えることも可能です。
$ update-alternatives --list sudo
/usr/bin/sudo.ws ← 従来の C 言語製 sudo
/usr/lib/cargo/bin/sudo ← sudo-rs(Rust 製)← 現在のデフォルト
sudo の実体を辿るとcargo配下のRust製バイナリに行き着く
Ubuntu 26.04 の「Rust 化」をコマンドラインで実感できた瞬間でした。実際のコマンドの挙動や体感速度に違いはほぼありませんが、「普段通りの sudo が裏では安全な実装で動いている」という事実は、地味ながら重要な変化です。
まとめ
| 確認項目 | 結果 |
|---|---|
| OS アップグレード | ✅ 成功(所要時間:約30分) |
| GNOME 50 + Wayland | ✅ NVIDIA GTX 970 でも問題なし |
| Linux カーネル 7.0 | ✅ 動作確認 |
| SSH 設定の引き継ぎ | ✅ 設定変更不要 |
| Samba 設定の引き継ぎ | ✅ 設定変更不要 |
| sudo → sudo-rs | ✅ 自動でデフォルト切り替え済み |
リリース当日のアップグレードでしたが、特に大きなトラブルはありませんでした。SSH リモート作業であれば tmux は必須です。設定ファイルの保持/上書きの判断は「そのサービスをカスタマイズしているか」を基準にすれば迷いません。
Ubuntu 26.04 LTS は 2031年4月までサポートされる長期サポート版。2014 年製のハードウェアでも快適に動いており、気づかないところで Rust 化が進んでいることも確認できました。
今回のアップグレードをきっかけに、この環境をベースに Linux でいろいろ試していきたいと思っています。GNOME 50 の新アプリ(Showtime・Resources・Loupe など)の使い勝手や、26.04 で新たに使えるようになった機能の活用方法なども順次記事にしていく予定です。