본문으로 건너뛰기

리눅스 파일시스템 점검 및 복구는 어떻게 하나요?

💡 요약 정리

  • e2fsck 명령어로 리눅스 파일시스템의 오류를 점검하고 복구할 수 있습니다.
  • 사용 전 반드시 해당 파일시스템을 unmount해야 합니다.
  • 다양한 옵션과 예제를 통해 활용 범위를 확장할 수 있습니다.

1. e2fsck 란?

  • 리눅스의 파일 시스템을 점검 및 복구를 할 수 있는 명령어입니다. fsck의 확장 명령어라고 볼 수 있습니다.

  • 주로 슈퍼블록 및 파일 시스템의 오류를 수정하며 다음과 같은 세부 사항이 있습니다.

    • indo, block, sizes 점검
    • 디렉토리구조 점검
    • 디렉토리 연결성 점검
    • 파일 링크 정보
    • 전체파일 갯수 점검
    • 전체블록수 중 사용중인 블록 점검 등
  • 디스크에 badblock이 발생하였을 경우, 해당 블록을 사용할 수 없도록 마킹하는 기능도 있습니다.

디스크에 badblock이 존재할 경우 시스템에 심각한 장애를 초래할 수 있기 때문에, 발견 즉시 디스크를 교체하여 사용하는 것이 바람직합니다.


2. 사용 형식

# e2fsck [-pacnyrdfvtFV] [-b 수퍼블록] [-B 블록크기] [-l|-L 배드블록목록화일] 장치명
  • 현재 마운트 되어 있는 장치는 df, mount 명령어로 확인 가능합니다.
  • 마운트 되어 있지 않은 장치는 fdisk -l 명령어로 확인 가능합니다.

주의: e2fsck로 특정 파일시스템을 점검할 경우 반드시 먼저 해당 파일시스템을 unmount 한 후에 점검해야 합니다. mount 되어있는 상태에서 파일시스템을 점검할 경우, 오히려 파일시스템에 손상을 초래할 수 있습니다.


3. 사용 예

- fsck로 특정 파일 시스템 점검 하기

[root@localhost /]# e2fsck /dev/sda1

- fsck로 특정 파일 시스템 강제 점검 하기

  • -f 옵션을 사용하여 파일 시스템을 강제로 점검할 수 있습니다.
[root@localhost /]# e2fsck -f /dev/sda1

- 저널링 파일시스템(ext3, ext4) 점검하기

  • -j 옵션을 사용하여 저널링 파일 시스템을 점검할 수 있습니다.
[root@localhost /]# e2fsck -j ext3 /dev/sda1
저널링 파일 시스템이란?
  • 시스템의 비정상 종료나 전원 문제가 발생했을 경우 데이터의 손상을 방지하고 안정성을 높이기 위한 기술로, 데이터베이스에서 사용되던 저널링 기술을 적용한 파일 시스템입니다.
  • 복구 속도가 매우 빠르다는 장점이 있습니다.
  • 리눅스에서는 일반적으로 ext3, ext4가 사용되며, 그 외 JFS2, XFS, ReiserFS, Reiser4 등도 존재합니다.

- 특정 파일 시스템 강제 점검 및 상세 작업 내용 보기

  • -v 옵션을 사용하여 e2fsck의 상세 작업 내역을 볼 수 있습니다.
[root@localhost /]# e2fsck -fv /dev/sda1

- 파일 시스템의 백업 슈퍼블록을 이용한 복구 방법

  • -b [백업슈퍼블록번호] 옵션을 사용하여 복구할 수 있습니다.
[root@localhost /]# e2fsck -b 32768 /dev/sda1
슈퍼블록이란?
  • 리눅스 파일시스템은 블록그룹(Block Group)이라는 구조를 이루고 있으며, 각 그룹의 맨 앞에는 슈퍼블록이 존재합니다.
  • 모든 슈퍼블록은 동일한 정보를 가지고 있으며, 파일시스템이 파괴되었을 경우 해당 정보를 이용해 복구할 수 있습니다.
  • e2fsck 실행으로 정상 복구가 되지 않을 경우, 슈퍼블록을 이용한 복구가 필요하며, 이때 슈퍼블록의 정확한 위치를 알고 있어야 합니다.

- 파일 시스템 점검 시 버퍼캐시의 내용을 디스크에 저장하기

  • -F 옵션을 사용합니다.
[root@localhost /]# e2fsck -F /dev/sda1

- 파일 시스템 점검 시 오류 자동 수정 하기

  • -p 옵션을 사용하면 오류가 발생했을 때 자동으로 복구 작업을 수행합니다.
[root@localhost /]# e2fsck -p /dev/sda1

- 파일 시스템 점검 시 모든 항목에 yes로 자동 입력하기

  • -p 옵션을 사용하면 yes/no 항목에서 모두 yes로 응답합니다.
[root@localhost /]# e2fsck -p /dev/sda1

- 디스크의 배드블록 마킹 하기

  • -c 옵션으로 배드블록의 아이노드에 마킹할 수 있습니다.
[root@localhost /]# e2fsck -c /dev/sda1