티스토리 뷰

남은 GB만으로 쓰기 가능 여부를 판단하지 않습니다

df -h에 여유 공간이 보여도 새 파일 생성은 실패할 수 있습니다. 저장 블록 외에 inode, 디렉터리 권한, 파일시스템 상태와 사용자별 제한이 관여하기 때문입니다. 오류 메시지를 보존하고 어느 경로에서 어떤 계정으로 실패했는지 먼저 기록하면 조사 범위를 좁힐 수 있습니다.

여기서는 Linux의 GNU df와 일반적인 디렉터리 점검을 설명합니다. 운영 폴더에 시험 파일을 만드는 대신 조회부터 수행합니다. 파일 시스템을 강제로 읽기·쓰기로 전환하거나 권한을 777로 넓히는 조치는 원인 확인을 대신할 수 없습니다.

공간과 inode를 나누어 확인합니다

df -h .
df -i .
id
ls -ld .
findmnt -T .

df -i는 해당 구현에서 inode 사용량을 보여 줍니다. 작은 파일이 매우 많은 경우 용량이 남아도 inode가 부족할 수 있습니다. 파일시스템마다 inode 관리 방식이 다르므로 결과와 구현을 함께 확인하세요. findmnt는 util-linux 도구이며 설치 여부와 사용법은 해당 환경에서 확인합니다.

id와 ls -ld의 결과는 계정·그룹 및 디렉터리 권한을 비교하는 출발점입니다. ACL이나 보안 모듈, 상위 경로 접근 권한까지 모두 보여 주는 것은 아닙니다. 공개 질문에 계정명과 실제 경로를 넣지 말고 필요한 부분을 가린 사본을 사용합니다.

오류 문구와 조사 방향을 연결합니다

교육용 분류에서 ‘No space left on device’는 공간 또는 inode 등 자원 상황을, ‘Permission denied’는 접근 통제 관련 조건을, ‘Read-only file system’은 마운트 상태를 조사할 단서입니다. 시스템과 프로그램에 따라 메시지가 다를 수 있으므로 문구를 그대로 기록한 뒤 해당 환경 문서와 대조합니다.

사용자 할당량 때문에 특정 계정만 쓰지 못하는 경우도 후보입니다. 다른 계정에서 성공했다고 권한을 늘려 해결하지 말고 차이를 조사합니다. 읽기 전용 상태가 오류 후 보호 동작으로 전환된 것이라면 재마운트보다 장치와 파일시스템의 상태 확인이 우선입니다. 본문에는 장애를 일부러 재현하는 위험한 명령을 넣지 않았습니다.

쓰기 실패를 재현하지 않고 좁히기

가상 상황에서 기존 파일 읽기는 되지만 같은 폴더에 새 파일 작성이 실패했다면 디렉터리 쓰기 조건을 조사할 수 있습니다. 파일 자체 읽기 권한과 새 항목을 만드는 디렉터리 권한은 같은 항목이 아닙니다. 상위 경로 접근과 ACL 등 추가 조건도 담당자가 확인합니다.

특정 계정만 실패하면 사용자 제한이나 접근 통제 차이를 비교하고, 모든 계정에서 실패하면 파일시스템·장치 상태도 조사 후보가 됩니다. 이는 원인 확정 규칙이 아니라 조사 질문입니다. 계정마다 임의 시험을 반복하지 말고 기존 오류 기록과 승인된 조회 근거로 다음 시험의 범위를 정합니다.

담당자에게 전달할 확인표

발생 경로: 식별 가능한 내부 기록
실행 계정: 내부 기록에만 보관
원본 오류: 관찰 문구
블록 여유: 확인값 또는 미확인
inode 여유: 확인값 또는 미확인
권한·ACL: 확인 범위와 한계
마운트 상태: ro/rw 및 근거
다음 조치: 담당자와 변경 승인 필요 여부

쓰기 시험이 필요하다면 담당자가 허용한 빈 시험 폴더와 고유 파일명으로 최소한의 시험을 설계합니다. 실제 서비스 자료를 덮어쓰거나 대량 파일을 생성하는 방식은 사용하지 않습니다. 조회가 실패했으면 ‘정상’으로 처리하지 않고 미확인 또는 검사 실패로 기록합니다.

다음 행동은 남은 용량 하나만 있던 점검표에 inode·권한·마운트 상태 항목을 추가하는 것입니다. 이번 글은 공식 도구 설명을 바탕으로 작성한 점검 절차이며 Linux 운영 장비에서 실행하거나 설정을 변경한 기록은 아닙니다.

공식 자료와 확인 범위

기술 자료 확인일: 2026년 10월 12일. 교육용 자료는 실제 기관·고객의 기록이 아닙니다.

GNU Coreutils: df 옵션과 inode 정보

util-linux: findmnt 매뉴얼