Hi. I have Fedora 36, running with LUKS + BTRFS using the standard automatic partition that installer offered.
Earlier today, my system failed to boot, and upon closer inspection, noticed that the system is saying that I’ve run out of space. I logged into the user using CTRL + ALT + F3 and tried mkdir test
and sure enough, it failed due to lack of storage.
So I ran df -h
and my root partition shows 24GB free. So, it looks like I’ve run out of inodes. Except, I thought that btrfs can dynamically allocate inodes, and it does not really have a practical limit of number on inodes. Some Googling around suggests that the limit is approximately 18.4 quintillion.
In any case, I deleted some files. I had two WINE prefixes that I didn’t need. After removing those and rebooting, my system booted right back up. So, I guess I did run out of inodes.
This would suggest that my 128GB root drive consumed all 18.4 quintillion btrfs inodes, which sounds impossible. Running a script to show the list of directories with most files returned following as the worst offenders:
6755 ./usr/src/kernels/5.19.9-200.fc36.x86_64/include/config
6756 ./usr/src/kernels/5.19.7-200.fc36.x86_64/include/config
6756 ./usr/src/kernels/5.19.8-200.fc36.x86_64/include/config
11259 ./usr/share/man/man3
but the total list probably doesn’t account for more than 30k files. From what I know, these are not astronomical number of files.
The only other thing that might be relevant is that I have daily Timeshift snapshots, but at no time am I keeping more than 8 snapshots (the rest are auto-pruned) but I don’t know enough about Timeshift and btrfs snapshots to say if this has any impact.
Can anyone offer a theory on why this happened and how I might avoid it in the future?