강좌
클라우드/리눅스에 관한 강좌입니다.
자격증 분류

리눅스마스터2급강좌 : 파일시스템의 검사 및 복구(fsck)

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터2급강좌 : 파일시스템의 검사 및 복구(fsck)



파일 시스템의 검사 및 복구


1) fsck

 

fsck(file system checker)는 리눅스에서 파일 시스템을 검사해서 오류를 수정해 주는 프로그램이다.

 

 

 

 

리눅스 사용 중에 파일 시스템이 깨졌다는 표현을 많이 사용하는데, 이 때 깨진 파일 시스템을 복구하기 위해 가장 먼저, 그리고 가장 일반적으로 사용하는 명령어가 fsck이다(이 명령어와 관련하여 필수적으로 e2fsck와 함께 알아두도록 한다).

 

 

 

fsck 명령어는 다음과 같이 사용한다.

 

 

 

 

 

 

fsck [-sAVRTMNP] [-C [-t 파일 시스템 유형] [파일시스템옵션] [장치명] 또는 [마운트 포인트] ...

 

 

 

 

 

 

 

그리고 이와 함께 사용되는 주요한 옵션들은 다음과 같다.

 

옵션

설명

-s

fsck 동작을 시리얼화한다.

 

 

 

 

대화형 모드에서 여러 파일 시스템을 점검할 때 유용하다(주의: e2fsck는 기본값으로 대화형으로 실행한다.

 

 

 

 

e2fsck을 비대화형 모드로 실행하려면, 에러를 자동으로 치유하고자 하는 경우에는 -p 또는 -a 옵션을 주고 자동으로 치유하고 싶지 않은 경우에는 -n 옵션을 준다.)

-t

검사할 파일 시스템의 형식을 지정한다.

 

 

 

 

A 옵션과 같이 사용되면 /etc/fstab 파일에 기술된 파일 시스템중 해당하는 형식의 파일 시스템들만 검사하게 된다.

 

 

 

 

파일 시스템 형식 앞에 no 를 붙이게 되면 해당 파일 시스템 형식을 제외한 다른 파일 시스템들을 검사한다.

-A

/etc/fstab 파일에 기술되어 있는 파일 시스템들을 지정된 순서에 맞게 모두 검사한다.

 

 

 

 

일반적으로 rc 스크립트에 기술되어(rc스크립트 참조) 시스템 자동으로 검사하도록 설정된다.

-N

실행하지 않고 단지 수행될 내용을 출력한다.

 

 

 

 

, 수행 내용을 시뮬레이션한다.

-P

-A 플래그와 같이 사용될 때 다른 파일 시스템과 함께 병렬 처리하여 루트 파일 시스템을 점검하도록 한다.

 

 

 

 

이것은 루트 파일 시스템에 의심스러운 상태라면 오류를 일으킬 수 있으므로 안전한 방법은 아니다.

-R

-A 플래그와 같이 사용될 때 루트 파일 시스템은 제외하도록 한다.(이미 읽기-쓰기 가능으로 마운트되어 있는 경우)

-V

실행되는 각 파일 시스템용 명령을 포함하여 자세한 출력을 수행한다.

파일 시스템 특정 옵션

-a

어떤 질문도 하지 않고 파일 시스템을 자동으로 보수한다.

-r

대화형 모드로 파일 시스템의 오류를 수정한다.

 

 

 

 

, 사용자에게 확인을 요구한다.

-n

몇몇 파일 시스템에 특정된 것으로, 문제를 수정하지 않고 단순히 그런 문제를 표준출력(stdout)으로 보고한다.

-y

몇몇 파일 시스템에 특정된 것으로, 감지된 파일 시스템 오류를 자동적으로 수정하도록 한다.

 

 

 

 

fsck/etc/fstab 파일에 설정되어 있는 파일 시스템을 기본 작업 대상으로 한다.

 

 

 

 

그리고 fsck는 수행 시에 /etc/fstab에 지정된 파일 시스템 타입으로 수행을 하게 되지만, -t 옵션을 사용하여 파일 시스템 타입을 지정할 수 있다.

 

 

 

 

만약 파일 시스템으로 주어진 값이 유효하지 않는 경우에는 기본값으로 ext2가 주어진다.

 

 

 

 

그리고 장치명이나 마운트 포인트를 여러 개 지정하여 각기 다른 물리적 드라이브 상의 여러 파일 시스템을 검사하는 병렬 처리가 가능하다.

 

 

 

fsck로 파일 시스템의 점검과 복구를 할 때에는 반드시 mount 해제를 한 후에 작업해야 한다.

 

 

 

 

만약 mount 된 파일 시스템을 대상으로 fsck 작업을 하면 파일 시스템이 손상될 수 있다(mount를 해제하지 않더라도 경고 메시지에 yes를 입력하면 fsck를 진행할 수 있다).

 

 

다음과 같이 fsck 명령을 실행해 보자.

 

 

 

 

 

# umount /dev/sdb1

# fsck t ext4 /dev/sdb1

 

 

 

 

 

 

 

그런데 파일 시스템이 현재 사용되고 있는 경우에는 mount를 해제할 수 없다.

 

 

 

 

특히 /home 디렉토리로 mount한 파일 시스템의 경우에는 특정 사용자가 로그인하여 파일 시스템을 사용하고 있다면 mount를 해제할 수 없게 된다.

 

 

 

 

따라서 이 경우에는 사용자들이 시스템에 로그인할 수 없도록 조치를 취할 필요가 있다.

 

 

 

 

예를 들어 다음과 같이 시스템의 런레벨을 1로 조정하고 /home 파일 시스템을 umount 한다.

 

 

 

 

 

 

 

 

 

 

# init 1

# umount /home (또는 장치명)

 

 

 

 

 

 

 

그런데 루트(/) 파일 시스템의 경우 mount가 해제될 수 없으므로 루트 파일 시스템을 검사할 때에는 읽기 전용으로 마운트하여 검사를 진행할 수 있다.

 

 

 

 

그렇지만 간단하게 다음과 같은 방법들을 사용할 수 있다.

 

 

 

 

먼저 루트(/) 파일 시스템에 / 아래에 “forcefsck” 파일을 만들고 재부팅하면 리눅스가 재부팅하면서 fsck를 실행한다.

 

 

 

 

 

 

 

 

 

 

# touch /forcefsck

 

 

 

 

 

 

 

그리고 shutdown 명령에 -F 옵션을 사용하면 재부팅 시에 fsck를 실행하도록 할 수도 있다.

 

 

 

 

이 옵션은 루트 파일 시스템에 “forcefsck” 파일을 / 아래에 만든다.

 

 

 

 

fsck 명령이 실행된 후에는 이 파일은 삭제된다.

 

 

 

 

 

 

 

 

 

 

# shutdown -rF now

 

 

 

 

 

 

 

위와 같이 하기 어려운 상황이라면 설치 CDLive CD를 사용하여 파일 시스템 검사 및 복구를 진행할 수 있다.

 

 

 

 

먼저 설치 CDCD-ROM 드라이브에 넣고 시스템을 시작하여 설치 메뉴에서 “Rescue installed system”를 선택하고 이후의 설정 과정을 거쳐서 루트(/) 파일 시스템을 읽기 전용으로 마운트하고 fsck 등을 이용하여 파일 시스템을 검사 및 복구하는 것이다.

 

 

 

 

그리고 Live CD를 이용하여 리눅스로 부팅한 후에 터미널에서 fsck 명령을 내릴 수도 있다.

 

 

 

ext2, ext3, ext4 등에서 모두 fsck를 실행할 수 있는데, -t 옵션을 사용하지 않고 fsck.ext3, fsck.ext4 등과 같이 명령을 내릴 수도 있다.

 

 

 

 

fsck는 리눅스에서 사용가능한 파일 시스템 점검프로그램인 “fsck.파일시스템유형에 대한 전위(front-end) 프로그램일 뿐이기 때문이다.

 

 

 

 

현재 fsck.ext2, fsck.ext3, fsck.ext4, fsck.ext4dev, fsck.cramfs, fsck,vfat, fsck.msdos 명령을 사용 가능하다.

 

 

 

 

그리고 이 개별 명령어들은 각각의 명령어에 특화된 옵션들이 존재한다.

 

 

 

 

 

 

다음과 같이 복수의 옵션을 적용시켜 보자. 다음은 fsck의 실제 작업 없이 특정 파일 시스템의 점검이 어떻게 수행되는가를 확인하기 위해 fsck 명령에 N 옵션을 적용시킨 것이다.

 

 

 

 

 

 

 

# fsck N t ext4 /dev/sdb1

 

 

 

 

 

 

 

 

 

mount/umount

mountumount 명령어에 대한 설명은 3장의 파일 저장장치 마운트와 언마운트부분을 참고하기 바란다.

 

 

 

 

 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,035 명
  • 현재 강좌수 :  35,798 개
  • 현재 접속자 :  148 명