본문으로 바로가기

e2fsck란?

리눅스 파일시스템 점검 및 복구를 할 수 있는 명령어입니다. (fsck의 확장 명령어)

손상된 파일 시스템에 대해 복구 조치를 하게된다면 데이터의 손실이 있을 수 있습니다.

e2fsck 명령어를 사용하기전에 검사할 디렉토리는 마운트 해제 후 검사를 진행해야 합니다.


/ 디렉터리 같은 경우에는 마운트 해제가 되지않기 때문에 강제로 부팅시 강제로 검사를 해주어야 하는데,

아래 방법 따라하시면 부팅시 자동으로 / 디렉터리 파일시스템 검사 됩니다.


1. touch /forcefsck (OS 공통)

위 명령어로 /forcefsck 디렉토리를 만든 후 재부팅

(부팅후 /forcefsck 디렉터리는 자동삭제됨)


2. /etc/grub.cfg (CentOS6.x)

kernel 맨 뒷부분에 'fsck.mode=force' 삽입 후 재부팅




3. /etc/default/grub (CentOS7.x)

GRUB_CMDLINE_LINUX 맨 뒷부분에 'fsck.mode=force' 삽입 후

grub2-mkconfig -o /boot/grub2/grub.cfg

명령어로 grub.cfg 재생성 해주시고 재부팅



아래는 fsck 명령어 사용법입니다.


# e2fsck -f /dev/sdb1

-f : 파일시스템이 이상이 없더라도 강제적으로 파일 시스템을 점검 할 때 사용 


# e2fsck -j ext3 /dev/sdb1 

-j : 저널링 파일 시스템을 대상으로 작업할때 사용 하는 옵션. 저널링 파일 시스템(보통 ext3)를 대상으로 작업할때 옵션이 아니라 필수 해줘야 하는 옵션 


# e2fsck -j ext3 -fv /dev/sdb1

-v : 점검내역 상세 보기(ext3의 파일 시스템으로 구성된 sdb1 파티션을 강제로 점검하면서 상세내역도 보는 명령)


# e2fsck -b 98304 -p /dev/sdb1 

-p : 오류 있는 파일 시스템의 자동 복구


# e2fsck -b 98304 -y /dev/sdb1 

-y : 수행 과정의 질문에 모두 yes라 응답하는 옵션


# e2fsck -b 98304 -n /dev/sdb1 

-n : 수행 과정의 질몬에 모두 no 로 응답하는 옵션


# e2fsck -j ext3 -cv /dev/sdb1 (/dev/sdb1 파일 시스템내의 배드블록이 있다면 배드블록 아이노드에 마킹하는 작업)

-c : 점검 과정에서 찾게된 베드블록을 마킹하여 사용치 못하게 하는 옵션


위 방법으로도 복구가 안될때는 아래방법을 이용해 백업 슈퍼블록을 이용해 파일시스템을 복구할 수 있습니다.


# dumpe2fs /dev/sda3 | grep superblock   // superblock 확인



# e2fsck -b superblock -f -j ext3 -y /dev/sdb1 // superblock 은 위에서 확인한 위치


명령어 사용 예)

# e2fsck -b 163840 -f -j ext3 -y /dev/sda3

sda3 파티션의 파일시스템을 3번째 슈퍼블록 복사본을 이용하여 강제로 복구 실행 및 모든 질문에 y로 응답



명령어 출처

http://realforce111.tistory.com/38