개요
fsck(file system check)는 디스크 파티션에 저장된 파일 시스템의 구조적 무결성을 검사하고 필요에 따라 복구를 시도하는 도구입니다. 전원 장애나 하드웨어 오류 등으로 인해 시스템이 갑자기 종료되면, 파일 시스템의 메타데이터(inode, 슈퍼블록 등)가 손상될 수 있습니다. fsck는 이러한 손상을 감지하고 복구하여 파일 시스템을 정상 상태로 되돌립니다. `mkfs`가 파일 시스템을 생성하는 도구라면, `fsck`는 파일 시스템을 유지보수하는 도구라고 할 수 있습니다.
주요 특징
fsck 명령어의 주요 특징은 다음과 같습니다.
- 파일 시스템의 무결성을 검사합니다.
- 손상된 파일 시스템을 대화형 또는 자동 모드로 복구할 수 있습니다.
- `fsck.ext4`, `fsck.xfs` 등 특정 파일 시스템 전용 도구를 호출하는 프론트엔드 역할을 합니다.
- 시스템 부팅 시 자동으로 실행되어 파일 시스템 손상 여부를 확인합니다.
fsck와 fsck.<파일시스템>
fsck는 특정 파일 시스템의 검사 도구를 호출하는 래퍼(wrapper)입니다. `fsck -t ext4 /dev/sda1` 명령은 내부적으로 `fsck.ext4 /dev/sda1`를 실행하는 것과 동일합니다.
- fsck.ext4: ext2/3/4 파일 시스템을 검사하고 복구하는 도구입니다. `e2fsck`로도 불립니다.
- fsck.xfs: XFS 파일 시스템을 검사하는 도구입니다. `xfs_repair`로도 불립니다.
- fsck.vfat: FAT 파일 시스템을 검사하는 도구입니다.
주요 옵션
fsck는 파일 시스템 유형을 지정하는 `-t` 옵션과, 복구 방식을 제어하는 다양한 옵션을 제공합니다.
1) 실행 옵션
생성된 명령어:
명령어를 조합해 보세요.
설명:
`fsck` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
fsck 명령어의 다양한 사용 예시를 통해 기능을 익혀보세요. **마운트 해제된 상태에서만 검사/복구가 가능합니다.**
파일 시스템 검사
sudo fsck /dev/sda1
`/dev/sda1` 파티션의 파일 시스템을 검사합니다. 마운트가 해제된 상태여야 합니다.
파일 시스템 자동 복구
sudo fsck -y /dev/sdb1
`/dev/sdb1` 파티션의 파일 시스템 오류를 사용자 확인 없이 자동으로 복구합니다.
파일 시스템 유형 지정 후 검사
sudo fsck -t ext4 /dev/sdc1
`ext4` 파일 시스템 유형을 명시적으로 지정하여 `/dev/sdc1`을 검사합니다. 이는 `fsck.ext4`를 직접 호출하는 것과 같습니다.
모든 파일 시스템 검사
sudo fsck -A
`/etc/fstab`에 정의된 모든 파일 시스템을 자동으로 검사합니다. 부팅 시와 유사한 동작을 수행합니다.
설치
fsck는 `util-linux` 패키지의 일부로, 대부분의 리눅스 배포판에 기본적으로 포함되어 있습니다. 별도의 설치가 필요하지 않습니다. 단, 특정 파일 시스템 전용 도구는 별도의 패키지 설치가 필요할 수 있습니다.
XFS 도구 설치 (Debian/Ubuntu)
sudo apt update
sudo apt install -y xfsprogs
ext4 도구 설치 (Debian/Ubuntu)
sudo apt update
sudo apt install -y e2fsprogs
팁 & 주의사항
fsck 명령어 사용 시 유의할 점들을 정리했습니다.
팁
- fsck는 **반드시 마운트가 해제된 상태**에서만 실행해야 합니다. 마운트된 파티션에 대해 실행하면 데이터 손상이나 손실이 발생할 수 있습니다. 시스템의 루트 파일 시스템(`/`)을 검사하려면, 단일 사용자 모드(single-user mode)로 부팅하거나 라이브 CD/USB를 사용해야 합니다.
- 자동 복구 옵션(`-y`)은 편리하지만, 손상 정도가 심할 경우 중요한 데이터를 삭제할 수도 있습니다. 따라서 중요한 데이터가 있는 경우 `-n` 옵션으로 먼저 검사하는 것이 안전합니다.
- `fsck`를 실행하기 전에 `umount` 명령으로 대상 파티션을 마운트 해제해야 합니다. (예: `sudo umount /dev/sdb1`)