ext4 루트 파일 시스템(있는 경우 VMWare ESX 가상 머신의 Centos 7.1의 llvm 아래)에 몇 GB가 누락된 것 같습니다.
[someone@somewhere ~]$ sudo du -xsm /
4561 /
하지만:
[someone@somewhere ~]$ sudo df -m /
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/mapper/vg_sys-lv_root 8944 7562 956 89% /
마운트 지점 아래에 뭔가가 있을 수도 있다고 생각하여 다음을 시도했습니다.
[someone@somewhere ~]$ sudo mount --bind / /vp
[someone@somewhere ~]$ sudo du -xsm /vp
4561 /vp
삭제된 파일이 아직 프로세스에서 사용되고 있을 수 있습니다.
sudo lsof | grep deleted
중요한 내용은 표시되지 않습니다.
스파스 파일을 찾기 위해 루트로 다음 명령을 사용하는 것도 작동하지 않습니다(찾은 명령은여기):
find / -type f ! -size 0 -exec perl -le 'for(@ARGV){open(A,"<",$_)or next;seek A,0,4;$p=tell A;seek A,0,2;print if$p!=tell A;close A}' {} +
그렇다면 내 데이터가 다른 곳에 있을 수 있으며, 이 경우 du가 모르는 것 중 df는 무엇을 알고 있습니까? 또한 df -i를 확인했는데 절반 미만의 inode가 사용 중입니다.
답변1
다른 가능한 설명:
- 또는 mount 네임스페이스 에 있으며
chroot
전체 파일 시스템에 대한 액세스 권한이 없습니다. /mount 네임스페이스에 있지 않은 경우ls -id /
어느 것을 실행하여 알 수 있습니다.2
chroot
- 파일 시스템이 손상되었습니다.
- 이 공간은 다음 중 하나가 사용하고 있습니다.특수 인덱스 노드. 검증을 위해
debugfs
somestat <3>
, ... 을 사용하고 발행할 수 있습니다stat <4>
. - 해당 공간은 다른 pid 네임스페이스의 프로세스에 의해 열린 삭제된 파일에 의해 사용되고 있습니다(그리고 루트 pid 네임스페이스에 있지 않습니다).
- 어떤 파일로도 열리지 않지만 예를 들어 확인을 위해 루핑 장치에 연결된 삭제된 파일이 공간을 사용하고 있습니다
losetup -a
.
스파스 파일은 du
와 df
.
답변2
파일 시스템은 파일 내용과 관련이 없는 다양한 작업에 디스크 공간을 사용할 수 있습니다.
df
사용된 블록과 사용 가능한 블록의 수는 파일 시스템에서 직접 얻어지며 du
단순히 각 파일에 할당된 블록의 크기를 더하므로 관련 없는 FS 데이터 구조는 고려되지 않습니다.
du
실제보다 덜 사용된 공간을 표시하는 것은 전혀 괜찮습니다 df
. 특히 거의 수정되지 않는 루트 파티션의 경우 차이가 너무 크다는 것이 이상합니다. FS를 조정하셨나요? 와도 du --inodes
비교해 보셨나요 df -i
?