df는 모든 공간을 보여 주지만 du는 합산되지 않습니다


28

우분투 12.04 LTS에 문제가 있습니다. 지난 3 주 동안이 문제가 발생한 것은 이번이 두 번째입니다. StackOverflow에 대한이 닫힌 질문에 처음으로 설명되어 있습니다. TL; DR의 버전은 내가 컴파일 및 20 배보다 안드로이드 스택 적은 건물 450G의 ext4에 시스템의 모든 아이 노드를 사용하여 관리됩니다.

디스크를 XFS로 다시 포맷하여 inode 스토리지가 커지도록하여 문제를 해결하고 있다고 생각했습니다.

오늘 아침에 밤새 빌드를 한 후, 1GB 미만의 여유 공간이 있습니다. 이 컴퓨터에는 Android를 빌드하는 데 필요한 것 외에는 아무것도 없습니다. 플랫폼 소스에서 총 5 번 빌드했습니다. 빌드는 많은 파일을 만든 다음 with 직후에 파일을 삭제합니다 make clean. 나는 실제로 1GB 이상은 아니지만 도구가 그렇게보고합니다. 나는 많은 임시 파일을 삭제했고 약 40GB의 "해제"를했습니다. 몇 시간 후, 유휴 상태가되었는데, 1GB 미만의 여유 공간으로 돌아 왔습니다.

플래시 드라이브에서 우분투를 실행하면 파티션에 대해 다음을 반환합니다 ...

$ df
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda5      468521456 468255460    265996 100% /media/f71c77eb-b4cc-

$ df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/sda5      1691760 624214 1067546   37% /media/f71c77eb-b4cc-

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda5       447G  447G  260M 100% /media/f71c77eb-b4cc-

여기 뭔가 잘못되었다는 증거가 있습니다. 내가 실행하면 du(와 --apparent 크기없이) 또는 시각적 디스크 사용 분석기, 나는 정말에만 너무 35기가바이트 나에 대해 사용하고 있음을 보여준다. 사용 된 공간의 98.7 %가에 /home/eric있지만 du추가하지는 않습니다. 불일치가 ~ 사이 /home/eric에 있습니다/home/eric/android

여기에 이미지 설명을 입력하십시오

여기 및 SO에 대한 관련 질문을 읽었으며 일반적으로 열린 프로세스가 보유한 파일이 삭제되었음을 제안합니다. 이 테스트를 실행하기 위해 플래시 드라이브로 재부팅했기 때문에 파일을 열면 안됩니다. FWIW, / tmp가 비어 있습니다.

'손실 된'공간을 복구하기 위해 플래시 드라이브에 설치할 수있는 도구가 있습니까? 시스템의 메모리를 비우고 거기에서 실행할 수는 있지만 플래시 드라이브 에서이 작업을 수행하는 것이 더 좋다고 가정합니다.

이 시스템을 다른 방식으로 구성해야합니까? 차라리 다른 설치 및 설치를 수행하지 않지만 지속 가능한 Android 빌드 시스템이 필요합니다.

후속 조치 -지난 주에 설치를 중단하고 12.04를 다시 설치하여 작업을 완료했습니다. 이번 주에 Android 빌드를 다시 진행하면서 디스크 사용에 대해주의 깊게 살펴보고 자세히 배울 때 여기에 정보를 제공합니다.

감사



@ jokerdino 네, 그 스레드와 다른 유사한 스레드의 지시를 따랐습니다. 플래시 드라이브에서 다시 시작하고 시스템을 다시 시작했습니다. 다시 시작한 후에도 시스템은 여전히 ​​전체 디스크를 점유 한 것으로 표시합니다. 감사.
Eric Cloninger

Linux의 파일 데이터는 참조 횟수로 계산되므로 Windows 에서처럼 자주 다시 시작할 필요가 없습니다. 아마도 데이터 파일을 덮어 쓰는 동안 에뮬레이터를 계속 실행 했습니까?
aquaherd

@ EricCloninger 나는 동일한 문제가 어떻게 발생했는지 사용자 목록에 내 자신을 추가해야합니다. 이것은 12.10을 사용하는 내 질문 이며 11.04 사용자 의 질문 입니다.
Lucio

또한 ls -lah ~paste.ubuntu.com 의 출력을 복사하여 붙여 넣고 질문에 연결하십시오.
Lucio

답변:


19

Oracle Linux에서는 삭제되었지만 실행중인 프로세스에 의해 여전히 열려있는 파일이 많거나 많을 때 발생합니다. 그런 다음 프로세스를 중지하거나 시스템을 재부팅하면 도움이됩니다.


로그 파일을 껴안는 서버에서 나를 위해 일했습니다. 감사!
miccet

12
을 사용 lsof +L1하여 프로세스 ID를 확인하고 종료하십시오.
Jeff Tian

3

나는 최근에 이것에 부딪 쳤고, 내 경우에는 fsck실행해야했습니다.

내가 그랬어 touch /forcefsck && reboot몇 분 후, 서버는 다시 온라인이었다 갑자기 내 실종 6기가바이트가 해제.


1

멀리 가기 전에 ..... 시스템을 단일 사용자 모드로 가져 가서 fsck -f /dev/sda5파일 시스템 의 전체 fsck (실제로는 전체를 의미합니다 )를 수행하고 그 내용을 확인하십시오. 디스크에서 문제 영역의 일부로 공간이 있거나 할당 된 것과 디스크에있는 것이 일치하지 않을 수 있습니다.


플래시 드라이브의 sudo fsck -f / dev / sda5 는 드라이브가 XFS로 포맷 되었기 때문에 아무것도하지 않았습니다. xfs_check 사용하도록 조언했습니다 . xfs_check / dev / sda5 가 결과를 반환하지 않았습니다. xfs_repair / dev / sda5 는 복구 과정을 거치지 만 이상한 점은보고하지 않았습니다. 두 후에도 여전히 99 %가 가득 찼습니다. Thx
Eric Cloninger

1

우리는 테스트를 할 수 있고, du10GB의 여유 공간이 df있다고 말하고 300MB는 2GB의 크기로 파일 (또는 여러 파일)을 쓸 수 있습니까? 가능하다면 df가 단순히 잘못되었다는 것을 의미합니다 (실제로는 '잃어버린 공간'에 문제가 없습니다). 그렇지 않다면, du잘못된 것입니다 (흥미로운 것입니다).


1

이 문제의 원인을 찾지 못했지만 우분투 12.04에만 있습니다.

새 서버를 설치하기 만하면 우분투 12.04로 시작해서이 문제가 발생했습니다. du는 약 111GiB 사용량을 보였으며 df는 약 170GiB였습니다.

systemrescuecd 3.3.0을 사용하여 부팅 한 후 다시 확인하면 1GiB 미만의 차이가 나타납니다.

파티션과 파일 시스템 (ext4)을 그대로두고 우분투 디렉토리를 다른 곳으로 옮기고 데비안 7.0을 설치했습니다. 다시 du와 df의 차이는 <1 GiB였습니다.

동일한 파티션과 ext4 fs에서 ubuntu 10.04를 사용하는 경우 :

에서 df -m /,

Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/sda2              2814679    407164   2264538  16% /

과에서 du -mx,

tail -1 /root/diskuse 
406920  .

어느 정도 가깝습니다.


0

게시 한 이미지는 공간이 사용되는 위치를 알려줍니다 /home/eric.. 모든 공간을 차지하는 파일이 많거나 더 작은 파일이 많은 것 같습니다. 홈 디렉토리를 열고 숨겨진 파일을 표시 하고 (Nautilus에서 Ctrl+ H) 파일 크기별로 정렬하십시오.


0

이것은 디렉토리 내의 파일에 의해 종종 발생하며, 다른 파일 시스템이 마운트되어 있습니다. 일반적인 수정은 복구 디스크로 부팅하거나 단일 사용자 모드로 부팅하고 마운트 지점 ( cat /proc/mounts또는 df -h) 으로 사용되지 않는지 확인한 후 디렉토리를 비 웁니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.