3TB 드라이브에 결함이 있습니다. 배드블럭이 많은데 아직 2.6Tb 정도의 사용 가능한 공간이 있어서 쓰레기 저장용(음악, 영상 등)으로 활용하고 싶은데요. 처음에 어느 분의 매뉴얼을 접하게 되었습니다. 그는 디스크를 여러 파티션으로 나눈 다음 JBOD(Just Bunch of Disks) RAID를 만들었습니다. 관심이 있으시면 링크(러시아어)가 있습니다. https://habr.com/ru/post/252211). 그러나 해당 기사의 댓글에서 누군가는 '-c' 키를 사용하여 mkfs 자체에서도 동일한 작업을 수행할 수 있다고 언급했습니다. 이제 나는 그것이 어떻게 작동하는지 궁금합니다. 예, 다음 내용을 알려주는 매뉴얼 페이지가 있습니다.
-c 파일 시스템을 생성하기 전에 장치에 불량 블록이 있는지 확인하십시오. 이 옵션을 두 번 지정하면 빠른 읽기 전용 테스트 대신 느린 읽기-쓰기 테스트가 사용됩니다.
거의 동일한 내용을 설명하는 아치 위키 기사가 있습니다. 장치에 불량 블록이 있는지 확인한 다음 무엇을 합니까? 인터넷 여기저기에서는 배드 블록을 표시해 OS에서는 이를 사용하지 않는다고 한다. 어떻게 확인할 수 있나요? 추가 사용을 위해 표시된 블록을 표시하는 유틸리티가 있습니까(향후 파티션 생성 등)?
답변1
사실입니다 man mkfs.ext4
( man 8 mke2fs
)는 귀하가 인용한 내용을 말합니다.
-c
파일 시스템을 생성하기 전에 장치에 불량 블록이 있는지 확인하십시오. 이 옵션을 두 번 지정하면 빠른 읽기 전용 테스트 대신 느린 읽기-쓰기 테스트가 사용됩니다.
하지만 다음도 있습니다 -l
.
-l filename
파일 이름에서 불량 블록 목록을 읽습니다. 불량 블록 목록의 블록 번호는 에서 사용하는 것과 동일한 블록 크기를 사용하여 생성되어야 합니다mke2fs
. 결과적으로 이-c
옵션은 올바른 매개변수를 프로그램에 자동으로 전달하므로mke2fs
디스크를 포맷하기 전에 디스크의 불량 블록을 검사하는 훨씬 간단하고 오류가 발생할 가능성이 적은 방법입니다 .mke2fs
badblocks
그럼 조사해보자 man 8 badblocks
:
중요 사항: 의 출력이 또는 프로그램
badblocks
에 공급되는 경우 생성되는 블록 번호는 파일 시스템에서 사용하는 블록 크기에 따라 크게 달라지므로 블록 크기를 올바르게 지정하는 것이 중요합니다. 이러한 이유로 사용자가 직접 실행하지 말고 및 프로그램 의 옵션을 사용하는 것이 좋습니다 .e2fsck
mke2fs
badblocks
-c
e2fsck
mke2fs
e2fsck
(ext4의 경우라고도 함 ) 언급되어 있으므로 [강조 내용]을 fsck.ext4
확인해 보겠습니다 .man 8 e2fsck
-c
이 옵션을 사용하면 불량 블록을 찾기 위해 프로그램을e2fsck
사용하여 장치의 읽기 전용 스캔을 수행하게 됩니다.badblocks(8)
불량 블록이 발견되면 불량 블록 inode에 추가하여 파일이나 디렉터리에 할당되지 않도록 합니다.이 옵션을 두 번 지정하면 비파괴 읽기-쓰기 테스트를 사용하여 불량 블록 스캔이 수행됩니다.
과 mke2fs
은 e2fsck
동일한 툴킷의 일부이므로예상하다 -c
mke2fs
설명에 명시적으로 명시되어 있지 않음에도 불구하고 동일한 방식으로 작동합니다 .
그런 다음 불량 블록을 확인하기 위해 파일 시스템은 사용에 대해 알고 있습니다 dumpe2fs
. 에서 man 8 dumpe2fs
:
-b
파일 시스템에서 불량으로 예약된 블록을 인쇄합니다.
(크레디트이 답변).
정보를 저장하는 것은 파일 시스템입니다. 향후 파일 시스템에 사용하려면 현재 파일 시스템을 삭제하기 전에 저장해야 합니다. 그리고 파티션 테이블을 변경하거나 새 파일 시스템에 대해 다른 블록 크기를 선택하면 숫자를 다시 계산해야 합니다.