使用 ZFS 的 Ubuntu 21.10 上出現奇怪的檔案問題

使用 ZFS 的 Ubuntu 21.10 上出現奇怪的檔案問題

使用 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

FWIW 在檢查了 Flimm 帖子中引用的錯誤並看到之後,我剛剛成功從 21.04 升級到 21.10一些跡象(不像我希望的那麼清楚......)它已在核心版本中修復5.13.0-20。該錯誤似乎存在於所有先前的 5.13 核心版本中,直到並包括5.13.0-19,這是最初在 21.10 中發布的致命版本。

我的系統正在 root 上執行自訂部署的 ZFS。它是使用 Hirsute (ZFS v2.0.3) 附帶的庫存版本從頭開始部署的。我沒有運行 Ubuntu 的 Zsys,但我認為這不相關。

程式

  1. 確保我有足夠的可用備份並且位於單獨的系統上;顯然,依賴 ZFS 快照在這裡並不是一個合適的策略。
  2. 運行通常的do-release-upgrade程式。一切都進行得很順利;實際上這是我經歷過的最流暢的 Ubuntu 升級之一。
  3. 升級完成後但是重新啟動前(即:同時仍執行「安全性」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)。

在 root 上使用 ZFS 進行新的 21.10 部署

我已經確認可以使用21.04 即時影像執行 21.10 ZFS-on-root 部署。只需按照根指南上的 ZFS,並在呼叫時指定所需的版本debootstrap(在步驟 3.4 中),如下所示:

debootstrap impish /mnt

您還需要在(步驟 4.3)中指定相同的版本 ( impish) 。/mnt/etc/apt/sources.list

相關內容