如何显示 ext4 inode 标志?

如何显示 ext4 inode 标志?

我们无法创建超过 65000 个子目录在 ext4 文件系统上,我们怀疑该目录是使用旧版本的 ext4 或不同的功能集创建的。

我知道如何查找一些基本信息:

> stat .
  File: ‘.’
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: 801h/2049d      Inode: 2           Links: 24
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-12-04 09:41:00.892098776 +0000
Modify: 2017-12-04 09:58:37.576216794 +0000
Change: 2017-12-04 09:58:37.576216794 +0000
 Birth: -

我对更详细的 ext4 标志感兴趣,例如目录是线性的还是基于哈希的。

我们如何查看 inode 的设置,例如标志?

答案1

stat在目录中使用。

但是,您实际上已经达到了文件系统的限制,这可能会导致存储性能问题。常见的解决方案是以更结构化的方式对命名空间进行分区,或者根据您的要求,使用更灵活的文件系统,例如 xfs、zfs 或 btrfs。

答案2

使用工具 debugfs 我可以提取更多信息:

> sudo debugfs /dev/sda1
> stat /
Inode: 2   Type: directory    Mode:  0755   Flags: 0x80000
Generation: 0    Version: 0x00000000:0000002f
User:     0   Group:     0   Size: 4096
File ACL: 0    Directory ACL: 0
Links: 25   Blockcount: 8
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x5a2520d3:c43db60c -- Mon Dec  4 10:17:55 2017
 atime: 0x5a2520fb:98591bd8 -- Mon Dec  4 10:18:35 2017
 mtime: 0x5a2520d3:c43db60c -- Mon Dec  4 10:17:55 2017
 crtime: 0x59f78ef9:00000000 -- Mon Oct 30 20:43:37 2017
Size of extra inode fields: 28
EXTENTS:
(0):140

为了确定目录是线性的还是基于哈希的(我想也可以解析上面的标志):

> sudo debugfs /dev/sda1
> htree /
htree: Not a hash-indexed directory

相关内容