ZFSとUbuntu 26.10へのアップグレード
κeenです。ちょっとニッチな構成のパーティションを使っていたらUbuntu 26.10に上げるのに苦労したのでそのお話を。
前提として、私はUbuntuの公式インストーラを使わずにUbuntuをインストールしています。 / をZFSに、しかもRAID Zで複数枚ディスクで構成するためにそうなりました。やったときのメモは以下にあります。
そのときに /boot を4枚構成のRAID1のZFSにしたんですが、その影響でUbuntu 26.10へのアップグレードができなくなりました。
暗号化された、あるいはZFS・Btrfs・XFSといった非デフォルト構成の(マイナーな)/bootを使っている環境では、26.10にアップグレードできないように構成される見込みです(この行に不明な単語がある場合は、ほぼ間違いなく影響を受けることはないでしょう)。 – Ubuntu 26.10 “Stonking Stingray” のリリース | gihyo.jp
詳細はさらにリンクを飛んだlaunchpadに書いてあります。
要約すると、Ubuntu 27.04ではセキュアブートのためにgrubがサポートする機能を減らす予定であり、ニッチな構成をしているユーザは26.10から27.04にアップグレードできなくなる。今LTSである26.04のユーザが26.10で行き詰まるよりはLTSに留まった方がマシだろうということで、早めに26.10へのアップグレードも禁止するというもの。
そんな根本的なところで非互換入れることある!?!?という感想ですが、非標準構成を使っているので文句を言える立場でもないですし、仕方なくパーティション構成を変えることにします。
ここで「ニッチ」と言われているのは /boot が以下のどれかの機能を使っているシステムです。
- ext4以外のファイルタイプ
- パーティションテーブルが"mac"
- 暗号化
- RAID1以外のソフトウェアRAID
私の場合は1つ目のext4以外のファイルタイプ(ZFS)に引っ掛かってました。そこで /boot を構成しているZFSのプール(bpool)を大胆にmdadmでソフトウェアRAID(1)したext4のファイルシステムに転換することにしました。
4枚構成のRAID1なので、ライブ変換というかシステムを起動したままディスクをRAIDから外してファイルシステムを書き換えてマウントするのも変えるということができます。
変更前
zpool RAID1 zpool RAID Z
+-----+--------------+--------------+
| EFI | /boot (zfs) | / (zfs) |
+-----+. . . . . . . +. . . . . . . +
| EFI | /boot (zfs) | / (zfs) |
+-----+. . . . . . . +. . . . . . . +
| EFI | /boot (zfs) | / (zfs) |
+-----+. . . . . . . +. . . . . . . +
| EFI | /boot (zfs) | / (zfs) |
+-----+--------------+--------------+
変更中
mdadm RAID1 zpool RAID Z
+-----+--------------+--------------+
| EFI | /boot (ext4) | / (zfs) | 起動に使う `/boot`
+-----+--------------+ |
zpool RAID1 |. . . . . . . |
+-----+--------------+ +
| EFI | /boot (zfs) | / (zfs) | こっちの `/boot` はマウントしないし
+-----+. . . . . . . +. . . . . . . + 起動時にも使われない
| EFI | /boot (zfs) | / (zfs) |
+-----+. . . . . . . +. . . . . . . +
| EFI | /boot (zfs) | / (zfs) |
+-----+--------------+--------------+
変更後
zpool RAID1 zpool RAID Z
+-----+--------------+--------------+
| EFI | /boot (ext4) | / (zfs) |
+-----+. . . . . . . +. . . . . . . +
| EFI | /boot (ext4) | / (zfs) |
+-----+. . . . . . . +. . . . . . . +
| EFI | /boot (ext4) | / (zfs) |
+-----+. . . . . . . +. . . . . . . +
| EFI | /boot (ext4) | / (zfs) |
+-----+--------------+--------------+
アドリブでやるには怖い手順ですが、AIに相談したら手順書を作ってくれました。
この手順どおりやったら上手くいきました。これで晴れてUbuntu 26.10へのアップグレードができます。小話としてUbuntu Proに入ってるとデフォルトでEMSからのパッケージダウンロードが有効で、それはLTSしかサポートしていないよう(未確認)なので非LTSのアップグレードに失敗するなんてのがありましたが、無事EMSからのダウンロードをoffにすれば解決しました。アップデートマネージャだと「追加のドライバ」の項目にあります。
現実には一発で成功した訳ではなくて、設定が足りてないから手順を直してもらったりと人間の知性も必要でした。 そういう設定や現状を確認したり違和感に気付いて報告するスキルは必要ですが、一から全部アドリブでできる知識や準備がなくてもこういう作業ができるようになったのは嬉しいですね。 最近はデバイスが思ったように動かない問題を調査してもらって直したり対策したりしたケースがいくつもあります。 そろそろ詳しくなくてもLinuxデスクトップが使えると言っていい頃合いかもしれません。