# 아이노드와 '장치에 남은 공간이 없음'

> 아이노드의 개념, df -i를 사용한 아이노드 사용량 확인 방법, 그리고 수백만 개의 작은 파일이 있는 디렉터리를 찾는 방법을 설명합니다.

아이노드는 유닉스 계열 파일 시스템이 소유자, 권한, 크기, 데이터가 위치한 곳 등 파일에 대한 정보를 저장하는 데 사용하는 데이터 구조입니다. 각 파일은 하나의 아이노드를 사용하며, 많은 파일 시스템은 아이노드 수가 고정되어 있어 수백만 개의 아주 작은 파일이 존재할 경우 df -h에서는 여유 공간이 있다고 나오더라도 '장치에 남은 공간이 없음' 오류가 발생할 수 있습니다.

## 확인하는 방법

'df -i'는 파일 시스템별 총 아이노드, 사용 중인 아이노드, 여유 아이노드 목록을 보여줍니다. 'ls -i'는 파일의 아이노드 번호를 보여주고, 'stat <file>'은 아이노드 상세 정보를 보여줍니다.

## 일반적인 원인

웹 애플리케이션의 세션 또는 캐시 디렉터리, 메일 대기열, 순환되지 않은 작은 로그 파일, 빌드 캐시 등으로 인해 수백만 개의 파일이 생성될 수 있습니다.

## 디렉터리 찾기

GNU du로 아이노드를 셀 수 있습니다. 'du --inodes -x / | sort -n | tail'은 항목이 가장 많은 디렉터리 목록을 보여줍니다.

## 아이노드 고갈 해결 방법

1. 확인: df -i (IUse%가 100%에 가까움).
2. 디렉터리 찾기: sudo du --inodes -x --max-depth=3 / | sort -n | tail -20
3. 무언가를 삭제하기 전에 파일을 생성하는 원인을 확인하세요.
4. 해당 애플리케이션의 자체 도구를 사용하거나 find를 사용하여 오래된 파일을 삭제합니다. 예를 들어 -delete를 제외하고 미리 실행해 본 후 find /path -type f -mtime +7 -delete를 실행합니다.

## 주의 사항

- 항상 -delete를 제외하고 find를 먼저 실행하여 목록을 확인하세요.
- ext4의 아이노드 개수는 파일 시스템이 생성될 때 고정됩니다.

## 출처

- [inode(7)](https://man7.org/linux/man-pages/man7/inode.7.html)
- [df(1)](https://man7.org/linux/man-pages/man1/df.1.html)
- [du(1)](https://man7.org/linux/man-pages/man1/du.1.html)
- [find(1)](https://man7.org/linux/man-pages/man1/find.1.html)

최종 업데이트: 2026-10-08
URL: https://raincleaner.eu/ko/wiki/linux/inodes
