Linux ETC

 하드 디스크의 베드블럭 처리 방법

하드디스크에서 갑자기 이상 증세가 발생 했을 경우, 굉장히 큰 장애 혹은 데이터 유실의
우려가 있을 수 있어 민감한 사항입니다.
데이터 백업은 물론 다들 잘 하고 계시리라 봅니다… (선택이 아닌 필수!! 라고 생각 합니다.)

이전 글에 베드블럭 검사 하는 명령어인 badblocks에 대해 포스팅 한 적이 있습니다.

[root@ ~]# badblocks -v /dev/sda2
Checking blocks 0 to 10482412
Checking for bad blocks (read-only test): done
Pass completed, 0 bad blocks found.

위 방법으로 베드블럭이 다수 검출 되었고, 계속적으로 늘어난다면 디스크를 반드시 교체 해주어야 합니다.

하지만, 더 이상 늘어나지 않는 경우엔 디스크를 무조건 교체할 수는 없는터라..
 조치 방법은 fsck를 활용 합니다.


Badblocks는 하드디스크의 물리적 에러 검출
# badblocks -sv /dev/hda3


fsck를 통해 베드블럭에 데이터가 쌓이고, 추가 되는 것을 방지하는 마스킹 작업 실행

Ex) ext3 파일시스템 일 경우
fsck.ext3 -cvf /dev/hda3

베드블럭에 이미 데이터가 있다면 다른 곳으로 옮기려 시도하며,
만약 해당 블록 상태가 파괴 되었다면 블록의 내용도 유실 가능성이 있습니다.