예를 들어, ext4 파티션에서 40 억 파일 제한을 초과하고 예를 들어 50 억 파일을 전송하면 어떻게됩니까?
답변
아마도 “장치에 남은 공간 없음”오류가 표시 될 것입니다.
# truncate -s 100M foobar.img
# mkfs.ext4 foobar.img
Creating filesystem with 102400 1k blocks and 25688 inodes
---> number of inodes determined at mkfs time ^^^^^
# mount -o loop foobar.img loop/
# touch loop/{1..25688}
touch: cannot touch 'loop/25678': No space left on device
touch: cannot touch 'loop/25679': No space left on device
touch: cannot touch 'loop/25680': No space left on device
실제로 “40 억 개의 파일”보다 훨씬 빨리이 한계에 도달했습니다. 파일 시스템을 모두 확인 df -h
하고 df -i
남은 공간을 확인하십시오 .
# df -h loop/
Filesystem Size Used Avail Use% Mounted on
/dev/loop0 93M 2.1M 84M 3% /dev/shm/loop
# df -i loop/
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/loop0 25688 25688 0 100% /dev/shm/loop
이 예에서 파일의 평균 크기가 4K가 아닌 경우 저장 공간보다 훨씬 빨리 inode 공간이 부족합니다. 그것은 또 다른 비율을 지정하는 것이 가능하다 ( mke2fs -N number-of-inodes
또는 -i bytes-per-inode
나 -T usage-type
에 정의 된대로 /etc/mke2fs.conf
).
답변
한계에 도달하면 이후에 파일 작성 시도가 실패 ENOSPC
하고 대상 파일 시스템에 새 파일을위한 공간이 없음을 나타냅니다.
설명하는 시나리오에서는 일반적으로 한도에 도달하면 전송이 중단됩니다.