Btrfs

btrfs 錯誤在增量備份期間無法複製擴展區

  • December 22, 2020

我正在嘗試備份到外部硬碟驅動器。本機驅動器和外部驅動器都使用 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/...

在解除安裝的文件系統上。這沒有報告錯誤。重新啟動到文件系統後,我再次嘗試備份並得到同樣的錯誤。關於可能導致這種情況的任何想法?


編輯

根據 Emmanuel Rosa 的評論,我試過了

# btrfs scrub start -B /

退出沒有錯誤。擦洗後問題仍然存在。


編輯 2

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


編輯 3

雖然刪除文件會暫時掛起問題,但通常會創建新文件並創建相同的錯誤,因此這確實沒有解決。sqlite 文件似乎特別成問題。

這顯然是 Linux 核心中的一個錯誤,此送出已修復。我通過在 btrfs 郵件列表上發布一個問題發現了這一點。升級核心解決了這個問題。

引用自:https://unix.stackexchange.com/questions/579561