增量備份期間 btrfs 錯誤無法克隆範圍

增量備份期間 btrfs 錯誤無法克隆範圍

我正在嘗試執行到外部硬碟的備份。本機驅動器和外部驅動器都使用 BTRFS 檔案系統。為此,我首先建立主目錄的唯讀快照:

# btrfs subvolume snapshot -r /home /.snapshots/home/BACKUP

接下來是發送/接收到備份磁碟機:

# btrfs send /.snapshots/home/BACKUP | btrfs receive /.backup/home

我得到這個輸出:

At subvol /.snapshots/home/BACKUP
At subvol BACKUP
ERROR: failed to clone extents to matt/.local/share/Anki2/Matt/collection.anki2: Invalid argument

一分鐘左右後發生錯誤。我嘗試了幾個不同的快照,但每個快照都出現相同的錯誤。此外,我在任何快照中都找不到該檔案。我認為這可能是某種磁碟損壞錯誤,因此我啟動到 USB 作業系統映像並運行

# btrfs check --repair /dev/mapper/...

在已卸載的檔案系統上。這個沒有報錯。重新啟動到檔案系統後,我再次嘗試備份並得到相同的錯誤。有什麼想法可能導致這種情況嗎?


編輯

根據伊曼紐爾·羅莎的評論,我嘗試過

# btrfs scrub start -B /

退出時沒有錯誤。刷機後問題依然存在。


編輯2

我無法弄清楚這有什麼問題。我最終只是刪除了本地文件,然後它又工作了。


編輯3

雖然刪除文件可以暫時解決該問題,但通常會建立新文件來產生相同的錯誤,因此這實際上並沒有解決。 sqlite 文件似乎特別有問題。

答案1

這顯然是 Linux 核心中的一個錯誤,已修復這次提交。我透過發文發現了這個關於 btrfs 郵件列表的問題。升級核心解決了這個問題。

相關內容