포맷하지 않고 하드 드라이브에 불량 섹터 표시


22

내 집 우분투 서버에서 하나의 드라이브가 어떤 이유로 든 읽기 전용이라는 것을 알았습니다. 파고 나는 하드 드라이브에 오류가있을 때 이것이 발생할 수 있음을 발견했습니다. 불량 블록을 사용하여 오류를 확인했으며 실제로 손상된 섹터가 있습니다.

대부분의 경우 합리적 인 행동은 데이터 백업, HDD 제거 및 새 HDD 구입을 시도하는 것입니다. 그러나이 서버에는 이미 여러 곳에서 백업하지 않은 것이 없으므로 서버가 죽을 때까지 사용하고 싶습니다. 음악을 스트리밍하고 간단한 스크립트를 실행하는 데 사용합니다. 어쨌든 모든 것을 다시 설치하는 것은 큰 소란입니다.

HDD를 포맷하지 않고 불량 블록을 표시하는 방법이 있습니까?

답변:


29

손상된 파일 시스템이 아니라 디스크의 물리적 불량 블록에 대해 이야기한다고 가정합니다.

디스크의 물리적 상태를 확인하려면 설치하는 것이 가장 좋습니다 smartmontools

sudo apt-get install smartmontools

모든 최신 디스크는 SMART 라는 시스템을 사용하여 상태를 기록하기 때문에 작동합니다

smartctrl이 상태를 읽으 려면 명령을 사용하십시오 . 예를 들어 첫 번째 디스크 호출에서 모든 속성을 읽으려면

sudo smartctl --all /dev/sda

전반적인 건강 상태에 대해 이야기하는 라인을 조심하십시오. 이 오류가 표시되면 디스크가 곧 고장날 가능성이 큽니다.

SMART overall-health self-assessment test result: PASSED

확인하려는 다른 행은 보류중인 섹터 수와 재 할당 된 섹터입니다.

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       48
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       2

재 할당 된 디스크는 일반적으로 원시 필드에 디스크가 작업 예비 섹터와 교환 한 불량 섹터 수를 나열합니다. 보류는 다음 쓰기가 실패 할 경우 재 할당 될 수있는 섹터입니다.

모델이 지원할 때 디스크 자체 테스트를 시작할 수도 있습니다

sudo smartctl -t long /dev/sda

모든 섹터를 강제로 확인하려면 badblocks데이터가 기록되는 모드에서 사용하십시오 . 일반적으로 실행해도 안전하지만 디스크에 추가로드가 발생하여 디스크가 고장날 수 있습니다. 항상 데이터를 백업하십시오.

sudo badblocks -svvn -c 262144 /dev/sda

이 방법으로 디스크를 완전히 처리 한 경우 디스크 컨트롤러는 모든 불량 블록을 작업 블록으로 교체해야하며 SMART 로그에서 재 할당 된 수가 증가합니다.


2
-c한 번에 테스트되는 블록 의 영향 또는 개수는 무엇입니까? 다시 말해 기본값 인 64에 비해 왜 그렇게 큰 값입니까?
greole

4
1024 바이트의 기본 블록 크기에 한 번에 64 개의 기본값을 곱하면 각 요청마다 64k 만 처리됩니다. 처리량이 최대 150MiB / s 인 최신 디스크를 사용하면 내가 생각하는 것보다 더 많은 오버 헤드가 발생합니다. 버스에서 데이터를 기다리지 않고 드라이브에서 가장 효율적인 방식으로 데이터를 처리 할 수있는 기회를주고 싶습니다.
user228505

/ dev / sda가 시스템에서 사용하고있는 것 같습니다. 불량 블록을 실행하는 것은 안전하지 않습니다!
Dim

1
@Dims 활성 마운트 된 디스크에서 이것을 실행하지 않도록 지시합니다. 먼저 디스크를 마운트 해제하십시오. 귀하의 경우 시스템 드라이브 일 수 있습니다. 먼저 구조 시스템으로 부팅하십시오.
user228505

2
@Dims 어쨌든 실행하려면 -force 옵션이 있습니다. 즉 sudo badblocks -svvn -c 262144 / dev / sda -force
ADR
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.