불량 블록을 실행한 후 하드 디스크 읽기 처리량이 매우 나쁩니다. 복구할 수 있습니까?

불량 블록을 실행한 후 하드 디스크 읽기 처리량이 매우 나쁩니다. 복구할 수 있습니까?

새 드라이브 세트가 있는데 친구가 새 드라이브를 사용하기 전에 불량 블록을 살펴보라고 제안했습니다. 이미지를 생성하기 전에 일부 새 드라이브에서 불량 블록이 실행되는 badblocks -v -s -w -b 4096 -o ./sda.log /dev/sda반면 다른 드라이브에는 불량 블록이 없는 것으로 생각됩니다. p.s. 불량 블록 드라이브에 대한 전송 인텔리전스 테스트도 실행했는데 통과했습니다.

불량 블록을 실행 중인 드라이브의 경우 이미징 후 읽기 처리량이 매우 낮았고 dd if=/dev/sda bs=4096 of=/dev/null count=1M캐시가 평균 71.1MB/s로 떨어졌습니다. 방금 디스크 이미지를 구운 드라이브의 평균 읽기 속도는 195MB/s였습니다.

불량 블록을 실행하여 이러한 드라이브를 "손상"시켰습니까? 복원/재설정할 수 있나요?

스마트 디스플레이

  • 불량 블록의 높은 회전 시간은 약 3000입니다(새 드라이브의 경우 0).
  • 모든 드라이브에서 읽기 오류가 없고 섹터 재배치가 없습니다.
  • 모든 드라이브 자체 테스트를 통과했습니다.
  • 그 외에는 거의 동일한 smartctl -a보고서

답변1

부분 답변:

badblock -w단순히 읽는 대신 실제로 각 블록을 작성하므로 일반적인 "비파괴" 테스트 대신 "파괴" 테스트를 수행한 것입니다.

저것할 수 있다특히, 작성한 이미지가 하드 드라이브의 전체 용량보다 작은 경우에는 차이가 있습니다. 이미지만 있는 하드 드라이브에는 영향을 받지 않는 더 높은 번호의 블록이 있고, 불량 블록이 있는 하드 드라이브에는 더 높은 번호의 블록에 패턴이 있습니다.

그러나 이것이 처리량에 어떤 영향을 미치는지 이해하지 못합니다.

불량 블록의 높은 회전 시간은 약 3000입니다(새 드라이브의 경우 0).

회전 0은 값이 아직 설정되지 않은 것 같습니다. 현재 회전할 준비가 된 하드 드라이브가 없습니다. 여러 번 다시 시작해도 값이 여전히 0인가요?

질문에 실제 SMART 보고를 포함하는 것이 도움이 될 수 있습니다.

모든 드라이브에서 읽기 오류가 없고 섹터 재배치가 없습니다.

오류를 발견하면 어떻게 해야 합니까? 실제로 처리량에 영향을 미칩니다.


시도하고 싶다면(이것은 어둠 속에서 시도해 볼 수 있는 작업입니다): 불량 블록이 있는 하드 드라이브 한두 개를 가져와서 모든 블록에 0을 쓰고 dd(이렇게 하면 사용된 패턴을 덮어쓰게 됩니다 badblk) 하드 드라이브의 이미지를 다시 작성하여 제대로 작동하는지 확인하세요. 차이.

그렇다면 펌웨어는 "0" 블록을 "데이터" 블록과 다르게 처리하는 것입니다. 이유가 무엇이든지.


또 다른 아이디어는 드라이브에 빠른 캐시, 아마도 플래시 메모리가 있을 수 있다는 것입니다. 그러면 간단한 방법으로 읽기 및 쓰기 속도를 측정하는 테스트에서 드라이브가 좋아 보이게 됩니다. 따라서 실제로는 불가능한 판매량을 늘리기 위해 데이터 시트에 큰 숫자를 기록할 수 있습니다. 그리고 badblk쓰기를 수행하면 캐시가 "오버플로"되므로 펌웨어는 캐시를 더 이상 사용하지 않기로 결정합니다.

관련 정보