Мы не может создать более 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, например флаги?
Использовать stat
в каталоге.
Однако на самом деле вы достигли предела файловой системы, и это может вызвать проблемы с производительностью вашего хранилища. Распространенным решением является разделение пространства имен более структурированным способом или, в зависимости от ваших требований, более гибкая файловая система, такая как xfs, zfs или btrfs.
С помощью инструмента 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