불량 섹터를 재할당하려고 합니다. 이것을 읽은 후질문내 이해는 하드 드라이브가 자동으로 재할당을 시도한다는 것입니다. 프로세스를 트리거하기 위해 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은 지정된 섹터에 대해 낮은 수준의 쓰기(일반적인 블록 계층 읽기/쓰기 메커니즘을 완전히 우회)를 실행합니다. 이는 드라이브에서 불량 섹터(미디어 오류)를 강제로 복구하는 데 사용할 수 있습니다.