답변:
아마도 "장치에 남은 공간 없음"오류가 표시 될 것입니다.
# 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
).
git repack
각 git 리포지토리에서 실행 하여 모든 개별 객체를 팩 파일로 결합하십시오.
touch
공상을 사용 하지 않기 때문에 echo
중요한 포인트와 종종 오해를 보여줍니다. 빈 파일로 디스크를 채울 수 있습니다.
git repack
,이 기능 여전히 같은 자식의 repo이며, 어떤 기능을 느슨하게하지 않는 tar
이 프로젝트 또는 자식 저장소 기대하는 많은 프로그램을 읽을 수 있습니다