MBR 파티션 구성표를 사용하여 WD WD800BB-55JHA0 80GB 하드 드라이브용 기본 파티션을 만들었습니다. 이 파티션에서는 200048640개의 inode가 있는 ext4 파일 시스템을 만들었습니다! 그런 다음 while true; do echo a > /media/$RANDOM$RANDOM$RANDOM; done
. 어떤 시점에서는 더 많은 파일을 추가할 수 없습니다.
sh-4.2# strace echo a > /media/$RANDOM$RANDOM$RANDOM
파일이 생성되지 않으며 셸에 출력되지 않습니다. 그것은 영원히 거기에 매달려 있습니다.
출력은 dumpe2fs /dev/sdb1
다음과 같습니다.
Filesystem volume name: <none>
Last mounted on: /media
Filesystem UUID: 233d7f5b-51b0-4c3d-8f1d-5d8c34f08a8f
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean with errors
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 200048640
Block count: 19536000
Reserved block count: 976871
Free blocks: 6665698
Free inodes: 199748660
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 1024
Blocks per group: 3200
Fragments per group: 3200
Inodes per group: 32768
Inode blocks per group: 2048
Flex block group size: 16
Filesystem created: Thu Jan 5 11:20:15 2006
Last mount time: Thu Jan 5 11:48:02 2006
Last write time: Thu Jan 5 11:53:15 2006
Mount count: 1
Maximum mount count: -1
Last checked: Thu Jan 5 11:20:15 2006
Check interval: 0 (<none>)
Lifetime writes: 3540 MB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
First orphan inode: 280161
Default directory hash: half_md4
Directory Hash Seed: 84caa27e-4e4c-4853-b222-e739c0fda1de
Journal backup: inode blocks
FS Error count: 1
First error time: Thu Jan 5 11:53:15 2006
First error function: ext4_mb_generate_buddy
First error line #: 741
First error inode #: 0
First error block #: 0
Last error time: Thu Jan 5 11:53:15 2006
Last error function: ext4_mb_generate_buddy
Last error line #: 741
Last error inode #: 0
Last error block #: 0
Journal features: (none)
Journal size: 128M
Journal length: 32768
Journal sequence: 0x000000c7
Journal start: 29840
분명히 inode가 부족하지 않았고 더 많은 파일을 생성할 수 있는 충분한 공간이 있었습니다.
sh-4.2# df -i /dev/sdb1
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sdb1 200048640 299980 199748660 1% /media
sh-4.2# df /dev/sdb1
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdb1 28079472 1416684 22755304 6% /media
sh-4.2#
새 파일을 제한하는 것은 무엇입니까? 디렉터리당 파일 수에 제한이 있나요?
답변1
모든http://en.wikipedia.org/wiki/Ext4
디렉터리당 항목 수는 64,000개로 제한됩니다. 문제는 이 한도에 도달했다는 것입니다.
각 디렉토리의 항목을 수정하도록 편집되었습니다.