我有一个磁盘驱动器,inode使用率为100%(使用df -i
命令).但是,在大幅删除文件后,使用率仍为100%.
这样做的正确方法是什么?
如果磁盘空间使用量较少的磁盘驱动器可能比磁盘空间使用率较高的磁盘驱动器具有更高的Inode使用率,那怎么可能?
如果我压缩很多文件会减少使用的inode数量吗?
如何找出哪些目录负责咀嚼我的所有inode?
最终根目录将负责最大数量的inode,所以我不确定我想要什么样的答案..
基本上,我用完了可用的inode,需要找到一个不需要的目录来剔除.
谢谢,抱歉这个模糊的问题.
我对Inode与Vnode有一些疑问.据我所知,inode是虚拟文件系统使用的文件的表示.而vnodes是特定于文件系统的.它是否正确?
另外,我很困惑inode是否是内核数据结构,即它是内存数据结构还是存在于实际磁盘中的块上的数据结构?
我只创建了大约800万个文件,然后在/ dev/sdb1中没有自由的inode.
[spider@localhost images]$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sdb1 8483456 8483456 0 100% /home
Run Code Online (Sandbox Code Playgroud)
有人说可以在格式化分区时指定inode计数.
例如mkfs.ext4 -N 1000000000.
我试过但得到了一个错误:
"inode_size(256)*inodes_count(1000000000)太大了......指定更高inode_ratio(-i)或更低的inode数(N)."
什么是合适的inode_ratio值?
我听说ext4的min inode_ratio值是1024.
是否可以在一个分区上存储十亿个文件?如何?有人说它会很慢.
我需要创建非常多的文件,这些文件不是很大(如4kb,8kb).这在我的计算机上是不可能的,因为它使所有inode达到100%并且我无法创建更多文件:
$ df -i /dev/sda5
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda5 54362112 36381206 17980906 67% /scratch
Run Code Online (Sandbox Code Playgroud)
(我开始删除文件,这就是为什么它现在是67%)
我的文件系统上每个节点的字节数为256(ext4)
$ sudo tune2fs -l /dev/sda5 | grep Inode
Inode count: 54362112
Inodes per group: 8192
Inode blocks per group: 512
Inode size: 256
Run Code Online (Sandbox Code Playgroud)
我想知道是否可以将此值设置得非常低,甚至低于128(在重新格式化期间).如果是,我应该使用什么价值?谢谢
当您只知道其inode时,为什么不能访问文件而不搜索链接到该inode的文件?该文件的硬链接只包含一个名称和一个数字,告诉您在哪里可以找到有关该文件的所有真实信息的inode .当我被告知没有用户模式直接使用inode号来打开文件时,我感到很惊讶.
这似乎是系统提供的这种无害且有用的功能.为什么没有提供?
C语言约定从0开始计算数组索引.为什么inode数从1开始而不是0?
如果inode 0被保留用于某些特殊用途,那么inode 0的意义是什么?
我做了一个关于"匿名inode"的谷歌搜索,它似乎与epoll有关......但究竟是什么呢?
如何通过UNIX/Linux系统在内部管理符号链接.众所周知,即使没有实际的目标文件(悬空链接),也可能存在符号链接.那么什么是内部代表符号链接的东西.
在Windows中,答案是答案reparse point
.
问题:
答案是inode
在UNIX/Linux中吗?
如果是,那么目标和链接的inode编号是否相同?
如果是,链接inode可以具有与目标的inode(如果存在)不同的权限吗?
我基本上必须为一个类写一个UNIX ls命令的克隆,而且几乎所有东西都在工作.我似乎无法弄清楚如何做的一件事是检查文件是否是符号链接.从手册页中stat()
,我看到有一个mode_t
定义的值,S_IFLNK
.
这就是我试图检查一个文件是否是一个sym-link,没有运气(注意,stbuf是stat()
将inode数据返回的缓冲区):
switch(stbuf.st_mode & S_IFMT){
case S_IFLNK:
printf("this is a link\n");
break;
case S_IFREG:
printf("this is not a link\n");
break;
}
Run Code Online (Sandbox Code Playgroud)
我的代码总是打印,this is not a link
即使它是,并且我知道所述文件是符号链接,因为实际的ls命令是这样说的,而且我创建了sym-link ...
谁能发现我可能做错了什么?谢谢您的帮助!
inode ×10
linux ×7
filesystems ×4
unix ×4
c ×2
ext4 ×2
symlink ×2
epoll ×1
linux-kernel ×1
posix ×1
superblock ×1
vfs ×1