포맷하지 않고 ext4 파일 시스템의 불량 섹터를 무시하시겠습니까?

포맷하지 않고 ext4 파일 시스템의 불량 섹터를 무시하시겠습니까?

UDisk내 디스크에 평가 표시

Disk is OK, 19 bad sectors (24° C / 75° F)

이 숫자는 1년 동안 동일하게 유지되었으므로 디스크에 오류가 있는 것은 아니지만 불량 섹터로 인해 시스템이 충돌하는 것으로 보입니다. 내 Ext4 파일 시스템이 포맷하지 않고 이를 무시할 수 있습니까?

답변1

예, ext4 파일 시스템은 포맷하지 않고도 이를 무시할 수 있습니다.

그러나 매우 오래된 하드 드라이브가 아닌 이상 하드 드라이브는 다음 쓰기 시 운영 체제에 투명하게 불량 섹터를 "예비" 섹터에 자동으로 재할당할 수 있습니다.

따라서 올바른 접근 방식은 불량 블록 목록을 가져오고 만일의 경우에 대비하여 각 블록을 여러 번 읽으려고 시도한 다음 다시 쓰는 것입니다(또는 읽을 수 없는 경우 0으로 설정합니다. 이 경우 파일을 식별하여 어딘가에서 복구할 수 없는지 확인하고 싶습니다). 예를 들어 이렇게 할 수 있습니다 (그러나 Enter 키를 누르기 전에 모든 것을 다시 확인하십시오. 어리석은 일을 하고 하드 드라이브나 파티션에 직접 쓰는 것은 dd쉽습니다 ).dd

또한 이를 사용하여 하드 드라이브의 SMART 데이터를 확인할 수도 있습니다 smartctl.

답변2

fsck.ext2이 옵션을 사용하여 실행할 수 있습니다 -c. 이 옵션은 을 실행하고 badblocks읽을 수 없는 블록이 포함된 보이지 않는 파일을 만든 다음 두 파일이 동일한 블록을 공유하지 않도록 할 수 있습니다. 이러한 블록 중 하나라도 다른 파일에서 사용되는 경우 이는 충돌로 표시되며 블록 복사 또는 파일 삭제와 같은 다양한 복구 옵션이 제공됩니다.

-a이러한 복구에는 파괴적인 작업이 포함되므로 auto() 실행 중에는 수행할 수 없습니다 . 결합 -c하고 -a파일 시스템 검사가 실패할 수 있고 해당 실행에서 불량 블록 inode가 올바르게 빌드되었는지 확실하지 않습니다(그래야 스캔을 반복하지 않고도 대화형 복구를 수행할 수 있어야 합니다).

이렇게 하면 블록이 할당된 것으로 표시되고 사용되지 않습니다.

관련 정보