Linux / 명령어 / fsck - 파일 시스템 오류 검사와 복구 시 주의점

fsck는 파일 시스템의 일관성을 검사하고 필요하면 복구하도록 파일 시스템별 검사 도구를 실행합니다. 검사 대상이 사용 중인지 먼저 확인해야 하며, 특히 마운트된 파일 시스템을 수정하면 데이터가 손상될 수 있습니다.

fsck 명령어란?

fsck는 fsck.ext4 같은 파일 시스템별 검사기의 프런트엔드입니다. 실제 검사·복구 옵션은 파일 시스템마다 다릅니다. XFS는 일반적인 fsck 경로로 복구하지 않으며 별도 xfs_repair 절차가 필요합니다. 파일 시스템 형식을 확인한 뒤 해당 도구의 문서를 읽으세요.

기본 문법

sudo fsck [옵션] [파일 시스템]

설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man fsck으로 현재 시스템의 설명을 확인하세요.

사용 예제

대상과 형식 확인

검사할 파티션과 마운트 상태부터 확인합니다.

lsblk -f

마운트 여부 확인

대상이 사용 중이면 먼저 정지·분리 계획을 세웁니다.

findmnt /dev/sdb1

읽기 전용 검사 예시

ext 계열 파일 시스템을 마운트 해제한 뒤 변경 없이 검사하는 예시입니다.

sudo e2fsck -n /dev/sdb1

검사와 자동 복구의 차이

fsck는 파일시스템 유형에 맞는 검사기를 호출합니다. 먼저 실제 파티션과 파일시스템 유형을 확인하고, 검사 대상을 언마운트한 상태에서 실행하는 것이 원칙입니다.

lsblk -f
sudo fsck -n /dev/sdb1

-n은 질문에 '아니요'로 답하는 읽기 전용 검사 방식이지만, 모든 파일시스템에서 동일하게 동작한다고 가정하지 마세요. 예를 들어 ext 계열의 검사기는 파일시스템 상태와 오류 수를 여러 줄로 출력할 수 있으며 구체적 결과는 대상에 따라 달라집니다.

검사 결과에 오류가 표시됐다고 즉시 자동 복구 옵션을 적용하지 마세요. 디스크 상태와 백업을 확인하고 파일시스템별 복구 절차를 따르세요. 특히 마운트된 쓰기 가능 파일시스템의 복구 검사는 데이터 손상 위험이 있습니다.

fsck의 종료 코드는 단순한 성공·실패 이진값이 아닐 수 있습니다. 파일시스템 오류 수정, 재부팅 필요, 작업 오류 등이 서로 다른 비트로 표현됩니다. 자동화에 넣을 때는 해당 구현의 매뉴얼에서 종료 코드와 파일시스템별 검사기 옵션을 확인하고, 복구가 수행됐다면 이후 마운트와 애플리케이션 상태도 검증하세요.

주요 옵션과 형식

옵션·형식 설명
-t 형식 검사할 파일 시스템 형식을 지정합니다.
-A 설정 파일에 지정된 파일 시스템을 검사합니다. 범위가 넓습니다.
-N 실행할 명령만 표시하고 검사는 수행하지 않습니다.
-M 마운트된 파일 시스템을 건너뜁니다.
-V 실행 과정을 자세히 표시합니다.

사용할 때 주의할 점

실제 수리 전에는 최근 백업과 복구 수단을 확인하고, 가능한 한 마운트 해제한 상태에서 작업하세요. fsck -y 같은 자동 승인 옵션은 손상된 파일을 예상과 다르게 수정할 수 있습니다. 루트 파일 시스템은 일반 실행 상태에서 분리하기 어렵기 때문에 복구 모드나 라이브 환경이 필요할 수 있습니다. SSD·RAID·LVM 계층도 대상 선택에 영향을 줍니다.

자주 묻는 질문

마운트된 파일 시스템에 fsck를 실행해도 되나요?

수정 검사로 접근하면 위험합니다. 일반적으로 대상 파일 시스템을 마운트 해제하거나 복구 환경에서 검사하고, 형식별 지침을 따르세요.

공식 문서

옵션의 정확한 동작과 구현별 차이는 fsck 관련 공식 문서에서 확인할 수 있습니다.

같은 카테고리의 다른 글
Linux / 명령어 / realpath - 절대 경로와 실제 경로 확인

Linux / 명령어 / realpath - 절대 경로와 실제 경로 확인

Linux realpath 명령어로 상대 경로와 심볼릭 링크를 정규화하고 절대·상대 경로를 출력하는 방법을 설명합니다. 경로 존재 조건과 보안상 주의점도 함께 정리합니다.

Linux / 명령어 / rsync - 파일·디렉터리의 변경분 동기화

Linux / 명령어 / rsync - 파일·디렉터리의 변경분 동기화

Linux rsync 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / Memo

Linux / Memo

리눅스와 관련된 여러 정보를 정리합니다.

Linux / 명령어 / lsmod - 로드된 커널 모듈 확인

Linux / 명령어 / lsmod - 로드된 커널 모듈 확인

Linux lsmod 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / which - PATH에서 실행 파일 경로 찾기

Linux / 명령어 / which - PATH에서 실행 파일 경로 찾기

Linux which 명령어로 PATH에서 실행 파일 경로를 찾는 방법을 설명합니다. type과 command -v의 차이, 별칭·함수 확인과 스크립트 이식성도 정리합니다.

Linux / 명령어 / mktemp - 안전한 임시 파일과 디렉터리 생성

Linux / 명령어 / mktemp - 안전한 임시 파일과 디렉터리 생성

Linux mktemp 명령어로 예측하기 어려운 이름의 임시 파일과 디렉터리를 안전하게 만드는 방법을 설명합니다. 템플릿, TMPDIR, trap을 이용한 정리와 -u 옵션의 위험도 알아봅니다.

Linux / 명령어 / gunzip - gzip 압축 파일 풀기

Linux / 명령어 / gunzip - gzip 압축 파일 풀기

Linux gunzip 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 명령어 / w - 로그인 사용자와 실행 중인 작업 확인

Linux / 명령어 / w - 로그인 사용자와 실행 중인 작업 확인

Linux w 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / diff - 텍스트 파일과 디렉터리 차이 비교

Linux / 명령어 / diff - 텍스트 파일과 디렉터리 차이 비교

Linux diff 명령어로 텍스트 파일과 디렉터리의 차이를 비교하는 방법을 설명합니다. unified 형식, 재귀 비교, 공백 무시와 종료 상태를 정리합니다.

Linux / 명령어 / xz - 파일을 xz 형식으로 압축하기

Linux / 명령어 / xz - 파일을 xz 형식으로 압축하기

Linux xz 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.