불량 섹터 재할당

불량 섹터 재할당

불량 섹터를 재할당하려고 합니다. 이것을 읽은 후질문내 이해는 하드 드라이브가 자동으로 재할당을 시도한다는 것입니다. 프로세스를 트리거하기 위해 dd를 사용하여 해당 섹터에 쓰려고 시도했지만 전혀 변경된 사항이 없습니다.

$ smartctl -a /dev/sda
...
5 Reallocated_Sector_Ct   ...       0
197 Current_Pending_Sector  ...       1
...

불량 섹터는 215040입니다.

$ dd if=/dev/sda of=/dev/null bs=512 count=1 skip=215040
io-error on reading

섹터에 쓸 때 섹터가 할당되지 않는 이유는 무엇입니까?

$ dd if=/dev/zero of=/dev/sda bs=512 count=1 seek=215040
io-error on writing

섹터를 다시 작성하려면 어떻게 해야 합니까?

답변1

다음을 사용하여 낮은 수준의 쓰기를 시도해 보세요 hdparm.

sudo hdparm --yes-i-know-what-i-am-doing --write-sector 215040 /dev/sda

215040덮어쓰고 다시 매핑하려는 섹터 번호는 어디에 있고 /dev/sda쓰려는 장치는 어디에 있습니까?

로부터hdparm매뉴얼 페이지:

--write-sector

지정된 섹터 번호에 0을 씁니다. 매우 위험한. 이 플래그 뒤에는 섹터 번호(base10)가 제공되어야 합니다. hdparm은 지정된 섹터에 대해 낮은 수준의 쓰기(일반적인 블록 계층 읽기/쓰기 메커니즘을 완전히 우회)를 실행합니다. 이는 드라이브에서 불량 섹터(미디어 오류)를 강제로 복구하는 데 사용할 수 있습니다.

관련 정보