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/...
在解除安裝的文件系統上。這沒有報告錯誤。重新啟動到文件系統後,我再次嘗試備份並得到同樣的錯誤。關於可能導致這種情況的任何想法?
編輯
根據 Emmanuel Rosa 的評論,我試過了
# btrfs scrub start -B /
退出沒有錯誤。擦洗後問題仍然存在。
編輯 2
我無法弄清楚這有什麼問題。我最終只是刪除了本地文件,然後它再次起作用。
編輯 3
雖然刪除文件會暫時掛起問題,但通常會創建新文件並創建相同的錯誤,因此這確實沒有解決。sqlite 文件似乎特別成問題。
這顯然是 Linux 核心中的一個錯誤,此送出已修復。我通過在 btrfs 郵件列表上發布一個問題發現了這一點。升級核心解決了這個問題。