2011. 8. 10. 02:52

♧ 리눅스에서는 윈도우에서 사용하는 scandisk 유틸리티와 같은

물리적인 수준에서 배드블록을 검사하기 위해 badblocks 명령어를 사용한다.

그리고 fsck 명령어를 사용해 논리적인 수준에서 파일시스템의 오류를 검사할 수도 있다.

 

■ badblocks - 장치의 배드블럭을 검색

badblocks [ -b 블록크기 ] [ -o 출력파일 ] [ -v ] [ -w ]

 

◈ [ 옵션 ]

옵 션

설 명

-b 블록크기

블록크기를 바이트 수로 나타냄 (기본값 : 1024 bytes)

-o 파일명

지정한 파일에 배드 블록의 리스트 기록

-v

자세한 출력 모드

-e 최대블록개수

점검을 멈출 최대 블록 개수 (0이면 지정된 범위 까지 점검)

-p num_passes

지정된 숫자 만큼 디스크 스캔 반복.

-w

읽기/쓰기 모드 에서 배드블록을 검사 (-n 옵션과 함께 사용 X, 상호 배타적임)

-n

비-파괴 읽고/쓰기 모드 ( -w옵션과 함께 사용 X, 상호 배타적임)

-s

검사 진행 과정 표시

 

 

badblocks 명령의 일반적인 사용 예:

 

▶ -v 옵션 : 자세한 정보 출력과 함께 기본적인 사용

$ sudo badblocks -v /dev/sdb1

Checking blocks 0 to 1044192

Checking for bad blocks (read-only test): done

Pass completed, 0 bad blocks found.

 

▶ 비-파괴 모드로 배드블록을 검사.

$ sudo badblocks -vsn /dev/sdb1

Checking for bad blocks in non-destructive read-write mode

From block 0 to 1044192

Checking for bad blocks (non-destructive read-write test)

Testing with random pattern: 12.88% done, 0:05 elapsed

☞ 기본적으로, 배드블록 검사는 읽기전용 모드에서 수행하는 것이 안전하다.

비-파괴(non-destructive) 읽고/쓰기 검사는 매우 느리지만

디바이스에 저장된 데이터의 손실 없이 검사할 수 있는 가장 좋은 방법이다.

 

▶ 읽기/쓰기 모드 검사. ( 경고 : 데이터가 파괴될 수 있음 )

$ sudo badblocks -vsw /dev/sdb1

Checking for bad blocks in read-write mode

From block 0 to 1044192

Testing with pattern 0xaa: done

Reading and comparing: done

Testing with pattern 0x55: done

Reading and comparing: done

Testing with pattern 0xff: done

Reading and comparing: done

Testing with pattern 0x00: done

Reading and comparing: done

Pass completed, 0 bad blocks found.

☞ 읽기/쓰기 모드에서 배드블록을 검사하는 것으로 빠르게 검사할 수는 있지만 데이터가 파괴 된다.

 

▶ 다수의 배드블록 검사 수행

$ sudo badblocks -vsnp 2 /dev/sdb1

☞ 디스크 품질을 검사하고, 초기 고장률을 낮추기 위한 테스트용으로 사용.

 

 

■ fcsk - 리눅스 파일시스템을 검사

fsck 명령어는 특정 파일시스템 유형에 사용되는 검사 유틸리티의 프론트엔드 역할을 수행.

 

fsck [ -AVRTNP ] [ -s ] [ -t 파일시스템유형 ] [ 파일시스템옵션 ] 파일시스템 [ ... ]

 

◈ [ 옵션 ]

옵 션

설 명

-A

/etc/fstab 파일에 표시된 모든 파일시스템을 한 번 씩 모두 점검.

-R

-A 플래그와 같이 사용될 때 루트 파일시스템은 제외

-T

시작할 때 버전정보를 출력하지 않음

-V

자세한 출력 수행

-N

실행하지는 말고 어떤 작업을 할 것인지만 보여줌.

 

 

fsck 명령의 일반적인 사용 예:

 

▶ 파일시스템 검사 (-TV : 자세한 출력 및 버전 출력 방지 옵션)

$ sudo fsck -TV /dev/sdb1

[/sbin/fsck.ext4 (1) -- /dev/sdb1] fsck.ext4 /dev/sdb1

e2fsck 1.41.14 (22-Dec-2010)

/dev/sdb1 is mounted.

 

WARNING!!! The filesystem is mounted. If you continue you ***WILL***

cause ***SEVERE*** filesystem damage.

 

Do you really want to continue (y/n)? yes

 

/dev/sdb1: 저널 복구중

/dev/sdb1: clean, 11/65280 files, 8523/261048 blocks

 

▷ 검사 수행 도중 문제가 발생하면, 문제를 수정할 것인지 사용자에게 물어보는데

-y옵션을 추가하여 모든 질문에 대해 yes로 답변하도록 할 수 있다.

$ sudo fsck -TVy /dev/sdb1

 

 

Posted by devanix