개요
서버 운영 중 ‘No space left on device’ 오류를 마주했을 때 가장 먼저 확인해야 할 핵심 도구는 df 명령어입니다. 본 글에서는 사람이 읽기 쉬운 용량 표기법부터 특정 파일시스템 필터링, 그리고 용량이 남아있어도 파일 생성이 안 되는 Inode 부족 문제 해결법까지 실무 필수 활용 패턴을 다룹니다. 또한 실제 디스크 사용량을 분석할 때 흔히 겪는 du 명령어와의 결과 차이 및 주의점도 함께 살펴봅니다.
1. 기본 용량 확인과 사람이 읽기 쉬운 단위 표기 (df -h)
df 명령어는 시스템에 마운트된 모든 파일 시스템의 디스크 여유 공간을 확인하는 기본 명령어입니다.
아무 옵션 없이 실행하면 용량을 1KB 블록 단위(1K-blocks)로 출력하므로 전체 크기와 사용량을 한눈에 수치로 계산하기 다소 번거롭습니다.
⚙️ [주요 옵션]
-h : 용량을 사람이 읽기 쉬운 단위(K, M, G)로 변환하여 출력합니다.-T : 각 파일 시스템의 유형(ext4, xfs, overlay 등)을 함께 표시합니다.-i : 블록 용량 대신 파일 생성 개수를 결정하는 아이노드(Inode) 사용량을 확인합니다.-t : 지정한 특정 파일 시스템 유형만 필터링하여 출력합니다.-x : 지정한 특정 파일 시스템 유형을 출력 목록에서 제외합니다.

df -h 명령어는 -h(–human-readable) 옵션을 추가하여 디스크 용량을 사람이 직관적으로 읽기 편한 단위로 출력합니다.
실행 결과에서 볼 수 있듯이 기존 1KB 단위 숫자가 메가바이트(M) 및 기가바이트(G) 단위로 자동 변환되어 디스크 여유 공간을 훨씬 빠르게 파악할 수 있습니다.

2. 가상 파일시스템 제외 및 특정 파일시스템만 조회 (df -h -x / -t)
df -h -x tmpfs -x devtmpfs -x squashfs 명령어는 -x(–exclude-type) 옵션을 여러 번 사용하여 불필요한 가상 파일시스템을 조회 결과에서 제외합니다.
우분투 환경에서는 snap 패키지가 사용하는 squashfs나 메모리 기반 임시 파일시스템인 tmpfs, devtmpfs 항목이 많이 출력되어 실제 디스크 사용량을 확인하기 어렵습니다.
이 명령어는 이러한 가상 파일시스템을 숨겨 실제 물리 디스크나 중요 마운트 지점의 용량만 깔끔하게 정리하여 보여줍니다.

df -h -t ext4 명령어는 -t(–type) 옵션을 지정하여 특정 파일시스템 유형만 선별하여 출력합니다.
리눅스 표준 파일시스템 중 하나인 ext4로 포맷된 장치만 필터링하여 확인하므로, 복잡한 출력 결과 속에서 실제 주 스토리지 파티션의 남은 용량과 사용률을 직관적으로 모니터링할 수 있습니다.

3. 용량은 남았는데 파일 생성이 안 될 때: Inode 고갈 점검 (df -i)
df -i 명령어 실습을 위해 테스트용 디렉터리를 생성하고 10개의 빈 텍스트 파일을 만듭니다.

df -i /tmp/df-test 명령어는 지정한 경로가 포함된 파일시스템의 아이노드(Inode) 사용 현황을 확인합니다.
디스크 블록 여유 공간이 남아 있더라도 파일 생성 개수를 제어하는 아이노드가 고갈(IUse% 100%)되면 더 이상 새 파일을 생성할 수 없습니다.
실행 결과에서 Inodes(전체 아이노드 수), IUsed(사용 중인 개수), IFree(남은 개수)를 점검하여 시스템 내 파일 개수 한도 초과 여부를 진단할 수 있습니다.

실습 과정에서 생성했던 임시 테스트 디렉터리와 샘플 파일들을 정리하기 위해 rm -rf /tmp/df-test 명령어를 실행합니다.

4. 실무 주의점: 삭제된 파일과 df vs du 용량 불일치 확인
열려 있는 파일 및 프로세스 추적 실습을 위해 시스템 내 lsof 명령어 설치 여부를 확인하고 패키지를 설치합니다.

lsof +L1 명령어는 프로세스에 의해 여전히 열려 있지만 링크 카운트가 1 미만(0)으로 떨어져 삭제 대기 상태가 된 파일 목록을 확인합니다.rm 명령어로 대용량 로그 파일을 삭제하더라도 데몬이나 프로세스가 파일 핸들을 닫지 않고 잡고 있으면 디스크 블록이 해제되지 않아 df 상에서 용량이 복구되지 않는 현상이 발생합니다.
실행 결과에 표시되는 PID(프로세스 ID)를 확인하여 해당 프로세스를 재기동하거나 종료하면 잡혀 있던 파일 핸들이 정상 해제되어 실제 디스크 여유 공간이 반환됩니다.

지금까지 리눅스 환경에서 디스크 용량을 확인하는 df 명령어의 핵심 옵션 5가지와 실무에서 꼭 알아두어야 할 주의점을 살펴보았습니다.
안내해 드린 옵션들을 상황에 맞게 적절히 활용하셔서 디스크 풀(Full) 장애 없이 안정적으로 시스템을 관리해 보세요.