为什么我的 500gb SSD 只有 477056 个 inode?

Joh*_*Doe 4 filesystems debian ssd inode

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
Run Code Online (Sandbox Code Playgroud)

为什么我的 2TB SSD 有 122101760 个 inode,而我的 500GB SSD 有 477056 个?我的 inode 快用完了,而我的 SSD 只有半满。

小智 5

在 Linux 系统中,文件名只是,可以说,链接到真实文件(inode)。创建文件时,即使是符号链接,也会保留一个 inode。您正在使用 inode 创建文件。因此,当您在 Linux 中设置文件系统时,您(系统)会分配 inode 的数量和每个 inode 的大小。在您的情况下,465 GB(499289948160 字节)文件系统被划分为 477056 个(数量、计数)inode。这意味着每个 INODE 你有 499289948160 / 477056 = 1046606 字节(~1 MB)

当您创建链接 ( ln) 时,文本文件只需要千字节甚至字节的存储空间,它们占用一个 inode,并且由于每个 inode 为 1 MB,它们很快就会用完。

所以实际上,您已经使用了 214 GB,但是因为您有很多正常的小文件(inode),所以您的 inode 号用完了!

要解决此问题,您可以重新格式化系统(但请注意,您需要先备份数据,然后从备份中恢复数据)。

mke2fs -t ext4 -I 1024 /dev/sdX1
Run Code Online (Sandbox Code Playgroud)

如果您选择 1024,则 499289948160(您 ssd 的总字节数)将被划分为 1024,您将获得大量的 inode,而且它们不会很快用完。