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 / 명령어 / time - 명령 실행 시간 측정

Linux / 명령어 / time - 명령 실행 시간 측정

Linux time 명령어로 명령과 파이프라인의 실행 시간 및 자원 사용량을 측정하는 방법을 설명합니다. Bash 예약어와 GNU /usr/bin/time의 차이, 출력 저장과 정확한 비교 방법을 정리합니다.

Linux / 명령어 / tree - 디렉터리 구조를 트리 형태로 출력

Linux / 명령어 / tree - 디렉터리 구조를 트리 형태로 출력

Linux tree 명령어로 디렉터리와 파일 구조를 계층적으로 확인하는 방법을 설명합니다. 설치, 깊이 제한, 숨김 파일, 제외 패턴, 크기·권한 표시와 JSON 저장 방법까지 정리합니다.

Linux / 명령어 / chgrp - 파일 소유 그룹 변경

Linux / 명령어 / chgrp - 파일 소유 그룹 변경

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

Linux / 명령어 / tracepath - 네트워크 경로와 경로 MTU 확인

Linux / 명령어 / tracepath - 네트워크 경로와 경로 MTU 확인

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

Linux / 명령어 / ssh - 암호화된 원격 접속과 명령 실행

Linux / 명령어 / ssh - 암호화된 원격 접속과 명령 실행

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

Linux / 명령어 / jobs - 현재 셸의 작업 목록 확인

Linux / 명령어 / jobs - 현재 셸의 작업 목록 확인

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

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

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

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

Linux / 명령어 / uniq - 인접한 중복 행 정리

Linux / 명령어 / uniq - 인접한 중복 행 정리

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

Linux / 명령어 / tmux - 터미널 세션 분리·재접속

Linux / 명령어 / tmux - 터미널 세션 분리·재접속

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

Linux / 명령어 / host - 도메인과 IP 주소의 DNS 정보 간단히 조회

Linux / 명령어 / host - 도메인과 IP 주소의 DNS 정보 간단히 조회

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