불량 블록 출력을 해석하는 방법


43

불량 블록에 대한 매뉴얼 페이지는 출력의 세 숫자가 특히 무엇을 의미하는지 언급하지 않는 것 같습니다.

패스 완료, 불량 블록 7 개 발견 (7/0/0 오류)
패스 완료, 120 개의 불량 블록 발견 (0/0/120 오류)

"읽기 / 쓰기 / 비교 중 오류" 라고 생각 합니다. 누군가 나를 밝게 할 수 있습니까?

답변:


45

당신의 추측은 맞습니다.

소스 코드는 다음과 같습니다.

if (v_flag)
    fprintf(stderr,
            _("Pass completed, %u bad blocks found. (%d/%d/%d errors)\n"),
            bb_count, num_read_errors, num_write_errors, num_corruption_errors);

따라서 읽기 / 쓰기 / 손상 오류입니다. 그리고 부패는 이전에 작성된 데이터와의 비교를 의미합니다.

if (t_flag) {
    /* test the comparison between all the
       blocks successfully read  */
    int i;
    for (i = 0; i < got; ++i)
        if (memcmp (blkbuf+i*block_size,
            blkbuf+blocks_at_once*block_size,
            block_size))
            bb_count += bb_output(currently_testing + i, CORRUPTION_ERROR);
}

완전한. 나에게 일어난 일 중 하나를 소스에서 찾아 보았지만 어쨌든 그렇지 않았습니다. 감사. :)
Tomalak

물론 그 경우에도 커널 오류 메시지가없는 이유이기도합니다 (0/0/120 errors).
Tomalak

손상 오류의 가능한 원인 badblocks은 실행 중 디스크에 다른 내용이 기록 된 것이므로이 오류는 전혀 오류가 아닙니다 (사용자 오류 제외).
frostschutz

이 경우 불량 블록과 함께 독점적으로 사용하는 것으로 의심되는 디스크입니다. 다른 프로세스는 쓰지 않습니다. 수동으로 위치를 계산하는 데 부족한 불량 섹터 목록으로 출력 파일을 시각화하는 방법이 있습니까?
Tomalak

-8

잘못된. 배드 블럭이 말한다면 아무것도 "오류가 발견되지"아니, 그것은 의미 :

  • 기계를 즉시 끄십시오
  • 교체 디스크 받기
  • 중요한 데이터는 안전합니다 $ GOD_OF_BACKUPS에기도하십시오
  • 새 디스크를 설정하는 데 필요한 모든 작업을 수행하고 이전 디스크의 데이터를 복사하십시오.

선택적으로 엔터테인먼트를 위해 또는 문진으로 디스크를 보관할 수 있습니다.

(최신 디스크에는 불량 블록을 다시 매핑 할 수있는 여분의 실린더 세트가 있습니다. 디스크가 없으면 디스크를 제조 할 수있는 방법이 없기 때문에 불량 블록 목록을 보았을 때 사용자가 피의 지옥을 외쳤 습니다 . 불량 블록 표시되면 해당 공간을 의미합니다 회전 디스크의 일반적인 장애 모드는 기하 급수적으로 많은 불량 블록 수를 제공하기 때문에 일반적으로 디스크에 몇 시간이 남아 있음을 의미합니다.)


10
그것은 질문조차 아니었다.
Tomalak

1
badblocks중요한 데이터가있는 디스크에서는 실행하지 마십시오 . 디스크에 오류가 있으면 오류 badblocks로 인해 원본 데이터를 다시 쓸 수없는 경우 비파괴 쓰기 모드에서도 추가 손상이 발생할 수 있습니다.
frostschutz

@frostschutz, -n테스트는 읽기 전용으로되어 있습니까?
vonbrand

3
아니요, -n비파괴 쓰기입니다. 따라서 테스트 후 원본 데이터를 기록하지만 복원합니다. 오류로 인해 실패 할 수 있습니다. 읽기 전용의 경우 badblocks옵션을 전혀 사용하지 않는다고 생각합니다.
frostschutz

나쁜 조언은 아니지만 질문에 맞지 않습니다. Q & A 스타일 답변을 만들 수도 있습니다.
neverMind9
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.