내 2T 드라이브에 작은 ext3 파티션이 있는데 /
사용 가능한 공간에 차이가 있는 것 같습니다. 이 문제의 원인과 해결 방법을 어떻게 확인할 수 있습니까?
제가 생각할 수 있는 모든 것을 시도한 후에 부팅 시 fsck를 강제로 실행했지만 아무런 효과가 없었습니다.
동일한 구성을 가진 다른 시스템이 있는데 이런 일이 발생하지 않습니다.
# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 9.7G 8.9G 318M 97% /
# du -shx --max-depth 1 /
5.2G /
# lsof | awk 'BEGIN {t=0} /(deleted)/ {t+=$7} END {print t}'
0
# tune4fs -l /dev/sda1 | grep -E 'state|Free|Reserve|size|Inode'
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Filesystem state: clean
Inode count: 2621440
Reserved block count: 131029
Free blocks: 212317
Free inodes: 2487281
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 639
Inodes per group: 32768
Inode blocks per group: 1024
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
Inode size: 128
편집하다:
fsck
파티션이 2% 불연속임을 나타냅니다.
위와 비교 du
(희소성):
# du -hxs --apparent-size /
4.9G /
답변1
마음에 떠오르는 한 가지 설명은 마운트 지점 뒤에 du
.
Linux에서는 다른 마운트 지점에서 모든 것을 볼 수 있도록 루트 파일 시스템을 바인드 마운트할 수 있습니다. 그런 다음 원본 보기에서 마운트 지점이 무엇을 숨기고 있는지 자세히 살펴보세요.
mkdir /root/root-rebound
mount -o bind / /root/root-rebound
du -sc $(df -P | awk 'NR>2 {print "/root/root-rebound" $6}')
답변2
단편화(fragmentation)를 본 적이 있나요? 내가 아는 du와 df가 일관성이 없을 수 있는 유일한 방법은(제외한 삭제된 부분 외에) 오버헤드와 일반적으로 여러 조각난 파일에서 발생하는 것입니다(du는 소량을 보고하지만 범위 수로 인해 이러한 경우). df에 표시된 것처럼 파일이 디스크에서 정말 큽니다.
이 도구는 ext3 파일이 얼마나 조각화되어 있는지 보여줄 수 있습니다.