새 드라이브 세트가 있는데 친구가 새 드라이브를 사용하기 전에 불량 블록을 살펴보라고 제안했습니다. 이미지를 생성하기 전에 일부 새 드라이브에서 불량 블록이 실행되는 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
쓰기를 수행하면 캐시가 "오버플로"되므로 펌웨어는 캐시를 더 이상 사용하지 않기로 결정합니다.