Filesystems
btrfs - <ERROR> 中的數據使用情況,設備的 ioctl 不合適
我正在嘗試追踪我的 btrfs 文件系統上的一些空間正在使用什麼。和之間有很大的區別,
btrfs fi du -s /
而且btrfs fi usage /
區別似乎<ERROR>
在執行時的部分btdu
。我如何追查導致這種
<ERROR>
用法的原因?# btrfs fi du -s / Total Exclusive Set shared Filename 5.50GiB 5.50GiB 0.00B /
# btrfs fi usage / Overall: Device size: 20.00GiB Device allocated: 12.28GiB Device unallocated: 7.72GiB Device missing: 0.00B Used: 11.59GiB Free (estimated): 8.22GiB (min: 8.22GiB) Data ratio: 1.00 Metadata ratio: 1.00 Global reserve: 16.00MiB (used: 0.00B) Data,single: Size:12.00GiB, Used:11.50GiB /dev/sda2 12.00GiB Metadata,single: Size:256.00MiB, Used:89.03MiB /dev/sda2 256.00MiB System,single: Size:32.00MiB, Used:16.00KiB /dev/sda2 32.00MiB Unallocated: /dev/sda2 7.72GiB
相關btdu輸出:
--- / -------------------------------------------------------------------------------- ~12.0 GiB [##########] /<DATA> ~253.1 MiB [ ] <METADATA> ~32.0 MiB [ ] <SYSTEM> --- /DATA ---------------------------------------------------------------------------- ~6.5 GiB [##########] /<ERROR> ~2.1 MiB [ ] /<ROOT_TREE> ~5.5 GiB [######## ] /@ --- /DATA/ERROR ---------------------------------------------------------------------- ~6.0 GiB [##########] logical ino (Inappropriate ioctl for device) ~509.9 MiB [ ] logical ino (No such file or directory)
所以我的結論是我係統上的實際文件佔用了大約 5.5GB,其餘的使用來自 btdu 報告為錯誤的東西。
筆記/我嘗試過的事情:
- 我已經執行了 在任何網站上都能找到的各種口味的
balance
,rescue
, 。沒運氣。check --repair``scrub
- 我已解除安裝所有其他磁碟 / nfs 驅動器 / 等。(安裝下沒有隱藏文件。)
好的,再看看核心程式碼和 btdu,我想我明白了。
您的核心太舊(4.14 或更早)並且不支持
BTRFS_IOC_LOGICAL_INO_V2
.
- btdu 大部分工作和 2) 這些錯誤被映射到 6 GB 空間的原因是,
BTRFS_IOC_LOGICAL_INO_V2
如果第一個查詢(使用 -no 完成)沒有產生結果,btdu 僅用於執行BTRFS_IOC_LOGICAL_INO
查詢_V2
。我將更新 btdu 以顯示針對這種情況的適當提示。
至於是什麼消耗了這 6 GB 的空間:很可能它們是部分使用的擴展區中無法訪問的部分。碎片整理將擺脫它們。如果您更新核心,btdu 將能夠告訴您哪些文件正在固定這些範圍。