gparted는 불량 차단 목록을 최대한 활용합니까?

gparted는 불량 차단 목록을 최대한 활용합니까?

하드 드라이브가 있고 /dev/sda다음 두 가지가 모두 있다고 가정합니다.

  • /dev/sda1싱글이다외부 4파티션은 전체 디스크를 차지하며 대부분의 데이터는 비어 있습니다.
  • dumpe2fs -b /dev/sda1불량 블록 목록을 출력합니다(이 경우 단일 높은 숫자).끝 근처의 불량 블록을 나타냅니다 /dev/sda.다행히 어떤 파일에도 속하지 않습니다.

/dev/sda1이제 gparted시작 부분에 스왑 파티션을 추가해야 합니다.v0.30.0-3ubuntu1)는 다음 용도로 사용됩니다.

  • 크기 조정(축소)sda1, 몇 GB 후에 시작하지만 동일한 위치에서 끝나도록 합니다.
  • 축소로 인해 남은 간격에 스왑 파티션 추가sda1.

이것으로 gparted작업이 완료되고 dumpe2fs -b /dev/sda1다시 실행됩니다. 무슨 일이야? 할 수 있다...?

  1. 아무것도 출력되지 않습니다. 이는 크기 조정 시 불량 블록을 잊어버린다는 의미입니다.
  2. 산출끊임없는.
  3. 산출비 + 비어디은 지금 막 확대/축소의 현재 시작 위치에 /dev/sda1해당하는 오프셋 입니다.

노트: 문제를 단순화하기 위해 문제의 하드 드라이브가 그렇지 않다고 가정합니다.영리한펌웨어. (펌웨어에 대한 설명은 주제에서 벗어났습니다.)

답변1

GParted는 ext2/3/4 불량 블록 목록을 고려하지 않습니다. 강제 불량 블록이 있는 ext4 파일 시스템을 만든 다음 GParted를 사용하여 이를 이동하여 이를 확인했습니다. 이동된 파티션에서 실행하면 dumpe2fs -b동일한 오프셋에 불량 블록이 표시됩니다.

결과는 2이므로 파일 시스템에서 무시한 불량 블록은 더 이상 미디어의 실제 불량 블록과 일치하지 않습니다. 이는 파일 시스템이 사용하기에 안전한 블록을 무시하고 피해야 하는 불량 블록을 사용할 수 있음을 의미합니다.

어느 정도 이것은 의미가 있습니다. GParted(또는 다른 도구)인 경우행동파일 시스템별 도구를 사용하지 않고 컨테이너를 이동하는 파티션입니다. 이는 일반적으로 파일 시스템 데이터가 해당 컨테이너와 관련되어 있기 때문에 작동합니다. 일반적으로 파일 시스템 데이터 구조는 이동으로 인해 업데이트될 필요가 없습니다. 그러나 불량 블록 목록에 설명된 기능은 컨테이너와 함께 이동하지 않습니다. GParted가 이 문제를 처리하도록 하는 것은 매우 복잡합니다. 불량 블록 목록 자체를 업데이트해야 할 뿐만 아니라 이동도 해야 합니다. 이동된 파일 시스템에서 불량 블록이 새로운 위치가 되도록 데이터를 삭제합니다.

답변2

디스크의 복제본이 새 디스크에 쓰는 동안 불량 블록을 읽는 것을 보았으므로 불량 블록은 제거되지 않습니다. 불량 블록 자체가 표시됩니다. 그런 다음 이러한 불량 블록을 다시 검사하고 수리 도구(예: 또는 기타)를 사용하여 깨끗한 것으로 표시해야 fsck합니다 ntfsfix. 그러나 이는 실제 불량 블록이 아닌 유령 불량 블록입니다. 그러나 이는 제거하기 전에 수리해야 한다는 생각을 증명합니다. 크기를 조정해도 마커가 지워져서는 안 되며, 파티션을 완전히 포맷하면 해당 마커에 대한 새 위치 마커가 생성되어야 합니다. 수술 후 그것이 어디로 향하게 될지는 기억이 나지 않습니다. 그러나 agc가 말했듯이 이것은 테스트될 수 있습니다.

관련 정보