이것은 한동안 나를 당황하게 했습니다. 저는 우분투 11.04를 사용하고 있습니다. 내 루트 파티션이 가득 차고 원인이 무엇인지 알 수 없습니다. 낯선 사람이라도 을 실행하면 df -h
다음과 같은 결과가 나옵니다.
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 9.2G 8.8G 0 100% /
보시다시피 약 400MB의 여유 공간이 있어야 하는데 Avail
0으로 표시됩니다. 이 문제의 원인은 무엇입니까? 공간을 확보하기 위해 일부 프로그램을 제거했는데 공간이 다시 채워졌습니다. 어떤 파일이 공간을 채우고 있는지 확인하는 방법에 대한 제안도 환영합니다.
답변1
첫 번째 샷: 오류 로그의 트래픽이 높습니다. 영상을 다운받아 보신 분들은 아실 거라 생각합니다. :)
sudo du -sh /var/log
- -s는 요약입니다
- -h는 사람이 읽을 수 있는(k, M, G, T) 접미사입니다.
제 경우에는 20M이고 로그 디렉터리 옆에 설치용 캐시가 있습니다. 사용
apt-get clean
이것이 당신의 문제라면.
물론 /home이 루트 파티션에 있는지 확인해야 합니다.
큰 파일을 반복적으로 검색해야 하는 경우 반복할 수 있고 첫 번째 초기 단계 이후 매우 빠른 일련의 명령을 제안할 수 있습니다.
- 최상위 수준의 의심스러운 디렉터리에서 시작합니다.
- 그런 다음 모든 하위 디렉터리와 파일의 크기를 검색하고 숫자로 정렬합니다.
sudo du -s /var/* | sort -n
0 /var/crash
4 /var/www
44 /var/games
124 /var/run
2306 /var/tmp
18538 /var/log
251876 /var/cache
1053231 /var/lib
- 짧게 유지하기 위해 예제를 제거했습니다. 따라서 가장 큰 하위 디렉터리는 /var/lib이고 /var/lib에 대해 단계를 반복합니다. 이제 계산된 결과가 어떻게든 캐시되기 때문에 검색이 훨씬 빨라졌습니다.
sudo du -s /var/lib/* | sort -n
78116 /var/lib/apt-xapian-index
104580 /var/lib/dpkg
680503 /var/lib/postgresql
등등. 더 큰 파일을 찾으려면 가장 큰 디렉터리를 따르세요. 여기서는 -sh를 사용할 수 없습니다. 왜냐하면 숫자 정렬은 킬로바이트 등의 k/M/G/T에서는 작동하지 않기 때문입니다.
답변2
포맷되면 ext2/3/4 파일 시스템은 루트 사용자가 독점적으로 사용할 수 있도록 디스크 공간의 특정 비율을 예약합니다. 기본적으로 5%입니다. 이것의 목적은 권한이 없는 사용자가 사용 가능한 디스크 공간을 모두 채우더라도 시스템이 계속 작동하고 부팅할 수 있도록 하는 것입니다.
일반적으로 충전을 하면어느용량의 95%를 초과하는 파일 시스템은 디스크 공간을 확보한 후에도 과도한 조각화로 인해 성능 저하가 발생하므로 좋은 생각이 아닙니다.
에서 man mke2fs
:
-m reserved-blocks-percentage
Specify the percentage of the filesystem blocks
reserved for the super-user. This avoids fragmenta‐
tion, and allows root-owned daemons, such as
syslogd(8), to continue to function correctly after
non-privileged processes are prevented from writing
to the filesystem. The default percentage is 5%.
절박한 상황이라면 tune2fs
이 값을 변경하는 데 사용할 수 있습니다. man tune2fs
자세한 내용은 참조하세요