
ZFS オプションを使用して Ubuntu 21.10 をインストールまたはアップグレードした後、奇妙な問題が発生し始めました。
たとえば、コマンド ラインでは次のようなエラーが表示されるようになりました。
Cannot access 'foobar': No such file or directory
あるディレクトリで ls -l を実行すると、次のように疑問符が表示されます。
-????????? ? ? ? ? ? foobar.txt
-????????? ? ? ? ? ? foobar2.txt
結局、Ubuntu 21.10 (ZFS を使用) を起動することさえできなくなりました。
答え1
これは既知の問題です。Ubuntu 21.10 のリリースノート言う:
既知の問題点
Linuxカーネル
- 5.13.0-19カーネルに含まれるZFSドライバのバージョンには、バグファイルシステムが破損する可能性があります。ZFS のユーザーは、カーネル 21.10 の最初の安定リリース アップデートがリリースされるまで待ってからアップグレードすることをお勧めします。
私は次の行動方針をお勧めします:
- Ubuntu 21.10 をインストールする場合は、ZFS オプションを選択しないでください。これにより、望ましくないファイルシステムの破損が発生します。
- Ubuntu 21.10 にアップグレードしていて、ZFS を使用している場合は、修正がリリースされ、ユーザーから問題が報告されなくなるまでアップグレードしないでください。(執筆時点では、修正はまだリリースされていません。)
すでに Ubuntu 21.10 にアップグレードしている場合は、ブート メニュー (grub) で [元に戻す] オプションを選択して、古いファイルシステムに戻すことができます。del起動中に を押すと、このブート メニューが表示されます。
答え2
ちなみに、Flimmの投稿で言及されているバグをチェックして、21.04から21.10にアップグレードしたところ、いくつかの兆候(思ったほど明確ではありませんが...) カーネル バージョン で修正されました5.13.0-20
。 このバグは、 までのすべての以前の 5.13 カーネル バージョンに存在しているようです。5.13.0-19
は、当初 21.10 で致命的にリリースされたものです。
私のシステムは、ルートでカスタム展開された ZFS を実行しています。これは、Hirsute (ZFS v2.0.3) に付属する標準バージョンを使用して最初から展開されました。Ubuntu の Zsys は実行していませんが、関係ないと思います。
手順
- 十分なバックアップが別のシステム上に確保されていることを確認しました。明らかに、ZFS スナップショットに頼るのは適切な戦略ではありません。
- 通常の
do-release-upgrade
手順を実行しました。すべてが完璧に完了しました。実際、私が経験した中で最もスムーズな Ubuntu アップグレードの 1 つでした。 - アップグレードが完了した後、再起動する前に(つまり、「安全な」5.11 Hirsuteカーネルを実行したまま)
/boot
起動しようとしているカーネルが より新しいものであることを再確認しました5.13.0-19
。5.13.0-22:
$ ll /boot/vmlinuz
lrwxrwxrwx 1 root root 25 Dec 27 16:59 /boot/vmlinuz -> vmlinuz-5.13.0-22-generic
詳しくは
以下のアドバイスは、安定バージョン 22.04 (「Jammy」) がリリースされるまでのみ適用されます。
ライブ画像
この記事の執筆時点では、Canonicalの21.10 Liveイメージにはバグのあるカーネル5.13.0-19が付属しています。そのため、いかなる状況下でもそのイメージを使用して、ZFS ファイルシステムにアクセスしたり、デプロイしたりします。
このようなメンテナンスを行う必要がある場合は、21.04 ライブ画像21.10 ではなく、ZFS のバージョンは非常に近いです (2.0.3/2.0.6)。
ルートに ZFS を搭載した新しい 21.10 デプロイメント
使用できることを確認しました21.04 ライブ画像21.10 ZFS-on-rootデプロイメントを実行するには、ルートガイド上の ZFSdebootstrap
、そして呼び出すときに(ステップ 3.4 で)希望するリリースを指定します。
debootstrap impish /mnt
(手順 4.3)でも同じバージョン ( impish
)を指定する必要があります。/mnt/etc/apt/sources.list