`btrfs scrap`이 불량 블록/섹터를 기억할 수 있습니까?

`btrfs scrap`이 불량 블록/섹터를 기억할 수 있습니까?

다음과 같이 포맷된 USB 썸 드라이브가 있습니다.BTFS체재. 그런데 1GB 파일을 디스크에 복사하면 파일이 손상되는 것을 발견했습니다. 보고 btrfs scrub에 따르면 많다고 한다고칠 수 없는실수. 하지만 디스크에 계속해서 더 많은 파일을 복사하면 파일은 괜찮은 것 같습니다. 따라서 디스크의 연속 블록 중 극히 일부만이 손상되었다고 생각합니다.

btrfs scrub전체 드라이브를 정리하고 손상된 블록을 기억하여 나중에 다시 사용하지 않는 것이 가능한지 궁금합니다 .

답변1

아마도 효과가 있을 것입니다. 하지만 플래시 미디어의 작동 방식 때문에 도움이 되지 않을 것입니다.

개별 비트를 쓰거나 지울 수 있는 하드 드라이브와 달리 플래시 미디어는 개별 비트를 쓸 수 있지만 모두 지울 수만 있습니다.블록 지우기한 번. 삭제 블록의 크기는 다양할 수 있지만 일반적으로 약 128k입니다. 단 하나의 "섹터"(하드 드라이브와 운영 체제가 처리하는 크기 단위)를 변경하려면 많은 내용을 지우고 다시 작성해야 하므로 썸 드라이브는 삭제 블록을 섹터 크기 단위로 나눕니다. 무언가를 변경하면 방금 변경한 섹터를 "더 이상 사용되지 않음"으로 표시한 다음 수정된 버전을 다른 곳에 기록합니다. 잠시 후 지워진 블록에 더 이상 활성 섹터가 없음을 확인하고 해당 블록을 지웁니다.

즉, 섹터가 손상된 경우 다음에 해당 섹터에 쓸 때 이제 다른 섹터가 되므로 더 이상 손상되지 않습니다.

또한 플래시 메모리는 많은 쓰기 주기 후에 마모되는 경향이 있으며, 이 시점에서 실패하게 됩니다(정확한 수는 플래시 칩의 품질에 따라 다르지만 100,000개 미만인 경우는 거의 없습니다). 썸 드라이브에는 이러한 목적과 블록 콘텐츠를 지우는 데 필요한 추가 공간을 위해 발표되지 않은 추가 용량이 있습니다. 예를 들어 4g 썸 드라이브에는 4000M가 노출될 수 있지만 내부적으로는 4096M 또는 4200M 등이 있습니다. 너무 많은 쓰기/삭제 주기 후에 특정 지우기 블록이 실패하기 시작하면 썸 드라이브가 이를 그렇게 표시하고 더 이상 사용하지 않게 됩니다. 잠시 동안 이 작업을 수행할 수 있지만 결국에는 추가 공간을 모두 사용하게 되며, 요청된 변경 사항을 적용하기 위해 섹터를 복사하려고 하면 더 이상 빈 섹터를 찾지 못하고 쓰기 오류만 생성될 수 있습니다.

귀하의 경우와 같이 썸 드라이브가 이 지점에 도달하면 교체해야 할 때입니다(아직 발생하지 않은 경우). 곧 데이터 손실이 시작됩니다.

관련 정보