我无法创建目录,
$ mkdir 2groups2
mkdir: cannot create directory ‘2groups2’: No space left on device
我什至无法更改目录
cd <TAB>
导致这个
$ cd -bash: cannot create temp file for here-document: No space left on device
同时df
报告超过 9Gb:
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 31428656 0 31428656 0% /dev
tmpfs 6288016 9080 6278936 1% /run
/dev/xvda1 60923900 51409376 9498140 85% /
tmpfs 31440072 276252 31163820 1% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 31440072 0 31440072 0% /sys/fs/cgroup
tmpfs 6288016 0 6288016 0% /run/user/1000
如何解释?该怎么办?
哇
df -i
显示零:
$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 7857164 397 7856767 1% /dev
tmpfs 7860018 488 7859530 1% /run
/dev/xvda1 7680000 7680000 0 100% /
tmpfs 7860018 1 7860017 1% /dev/shm
tmpfs 7860018 3 7860015 1% /run/lock
tmpfs 7860018 16 7860002 1% /sys/fs/cgroup
tmpfs 7860018 4 7860014 1% /run/user/1000
这是什么意思?
答案1
索引节点是对磁盘内文件内容的引用。我喜欢将它们视为文件头 - 它们告诉操作系统文件的一些元数据以及文件包含的实际数据的位置。
在经典的 Unix 文件系统设计中,每个文件系统除了具有固定数量的数据空间之外,还具有固定数量的 inode 空间。如果其中任一分区已满,则将无法在该分区上创建新文件。这是一个非常好的页面,它详细解释了 inode 及其用途:http://www.grymoire.com/Unix/Inodes.html
inode 使用的一个示例是将两个不同的文件指向相同的数据,也称为硬链接。这会以 inode 空间为代价节省分区中的数据空间。
//在Linux的ext2
文件系统家族中,ext3
ext4
每单位磁盘空间的索引节点比率可以在文件系统创建时指定,然后在该文件系统的剩余生命周期中固定。如果你用完了 inode,你可以通过扩展文件系统的总大小来获得更多的 inode,但这可能效率低下。
更现代的文件系统设计(例如 XFS)将能够按需动态创建新的索引节点。该机制的延伸范围可能存在也可能不存在一些限制,因此您应该确保您了解所使用的文件系统类型的限制。