Filesystem Inodes IUsed IFree IUse% Mounted on
udev 4030305 685 4029620 1% /dev
tmpfs 4040316 1252 4039064 1% /run
/dev/sdb1 477056 476282 774 100% /
tmpfs 4040316 399 4039917 1% /dev/shm
tmpfs 4040316 5 4040311 1% /run/lock
tmpfs 1024 17 1007 2% /sys/fs/cgroup
/dev/sda1 122101760 3865680 118236080 4% /media/2TB
/dev/loop2 62342 62342 0 100% /snap/gtk-common-themes/1506
/dev/loop0 26205 26205 0 100% /snap/telegram-desktop/2198
/dev/loop1 249 249 0 100% /snap/whatsdesk/20
/dev/loop3 10476 10476 0 100% /snap/go/6727
/dev/loop4 11573 11573 0 100% /snap/core20/634
/dev/loop5 12826 12826 0 100% /snap/core/10185
/dev/loop6 27807 27807 0 100% /snap/gnome-3-28-1804/145
/dev/loop7 10779 10779 0 100% /snap/core18/1932
/dev/loop8 62411 62411 0 100% /snap/wickrpro/495
/dev/loop9 62411 62411 0 100% /snap/wickrme/430
/dev/loop10 472 472 0 100% /snap/snapd/9721
tmpfs 808063 28 808035 1% /run/user/1000
/dev/loop11 63811 63811 0 100% /snap/gtk-common-themes/1513
root@desktop:/# df -h
Filesystem Size Used Avail Use% Mounted on
udev 16G 0 16G 0% /dev
tmpfs 3.1G 1.8M 3.1G 1% /run
/dev/sdb1 465G 214G 247G 47% /
tmpfs 16G 727M 15G 5% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
/dev/sda1 1.8T 1.6T 164G 91% /media/2TB
/dev/loop2 63M 63M 0 100% /snap/gtk-common-themes/1506
/dev/loop0 179M 179M 0 100% /snap/telegram-desktop/2198
/dev/loop1 639M 639M 0 100% /snap/whatsdesk/20
/dev/loop3 92M 92M 0 100% /snap/go/6727
/dev/loop4 61M 61M 0 100% /snap/core20/634
/dev/loop5 98M 98M 0 100% /snap/core/10185
/dev/loop6 163M 163M 0 100% /snap/gnome-3-28-1804/145
/dev/loop7 56M 56M 0 100% /snap/core18/1932
/dev/loop8 449M 449M 0 100% /snap/wickrpro/495
/dev/loop9 449M 449M 0 100% /snap/wickrme/430
/dev/loop10 31M 31M 0 100% /snap/snapd/9721
tmpfs 3.1G 44K 3.1G 1% /run/user/1000
/dev/loop11 65M 65M 0 100% /snap/gtk-common-themes/1513
为什么我的 2TB SSD 有 122101760 个 inode,而我的 500GB SSD 有 477056 个?我的索引节点快用完了,而我的 SSD 仅半满。
答案1
在 Linux 系统中,文件名只是指向真实文件(索引节点)的链接。当您创建文件时,即使是符号链接,您也会保留一个索引节点。您正在使用 inode 来创建文件。因此,当您在 Linux 中设置文件系统时,您(系统)会分配 inode 的数量和每个 inode 的大小。在您的情况下,465 GB(499289948160 字节)文件系统被划分为 477056(数量,计数)个 inode。这意味着每个 INODE 有 499289948160 / 477056 = 1046606 字节 (~1 MB)
当您创建链接 ( ln
)、仅需要千字节甚至字节存储的文本文件时,它们会占用一个 inode,并且由于每个 inode 为 1 MB,因此它们很快就会耗尽。
所以实际上,你已经使用了 214 GB,但是因为你有很多小文件(索引节点),这是正常的,所以你的索引节点数量用完了!
要解决此问题,您可以重新格式化系统(但请注意,您需要先备份数据,然后再从备份中恢复数据)。
mke2fs -t ext4 -I 1024 /dev/sdX1
如果您选择 1024,则 499289948160(SSD 的总字节数)将被除以 1024,您将获得大量 inode,而且它们不会很快耗尽。
答案2
某些文件系统类型(例如 XFS)将按需创建 inode,并且可能会将已删除文件的 inode 保留一段时间,以便在需要时可以快速重用它们。
如果较小的 SSD 有 XFS 文件系统,但较大的 SSD 有 ext4 等经典风格的文件系统,这可能是正常且无害的。