파괴 모드에서 불량 블록으로 단일 패스를 수행하는 방법은 무엇입니까?

파괴 모드에서 불량 블록으로 단일 패스를 수행하는 방법은 무엇입니까?

나는 사용하고있다불량 블록디스크의 모든 데이터를 파괴적으로 삭제합니다. 다음 명령을 사용합니다.

badblocks -wsp 0 /dev/sdb1

-p 0단일 패스만 결과가 나오길 바라면서 옵션을 전달했지만 여러 패스를 받게 되었습니다.

Testing with pattern 0xaa: done
Reading and comparing: done
Testing with pattern 0x55: done
Reading and comparing: done
Testing with pattern 0xff: done
Reading and comparing: 19.01% done, 7:43:47 elapsed. (0/0/0 errors)

맨페이지를 읽으면 -w옵션 자체에 네 가지 패스가 포함되어 있음을 알 수 있습니다.

-w 쓰기 모드 테스트를 사용합니다. 이 옵션을 사용하면 badblocks는 장치의 모든 블록에 일부 패턴(0xaa, 0x55, 0xff, 0x00)을 쓰고 모든 블록을 읽고 내용을 비교하여 불량 블록을 검색합니다. 이 옵션은 -n 옵션과 함께 사용할 수 없습니다. 상호 배타적이기 때문입니다.

이것은 내 필요에 비해 과도합니다. 단일 파괴 패스를 달성할 수 있는 방법이 있나요?

답변1

맨페이지를 더 자세히 읽어보니 문제가 해결되었습니다. -w옵션 설명에서 알 수 있듯이 실제로 단일 패스를 수행합니다 -p.

기본값은 0입니다. 즉, 첫 번째 패스 후에 불량 블록이 종료됩니다.

패스는 네 가지 테스트 패턴으로 구성됩니다.

-w 쓰기 모드 테스트를 사용합니다. 이 옵션을 사용하면 badblocks는 장치의 모든 블록에 일부 패턴(0xaa, 0x55, 0xff, 0x00)을 쓰고 모든 블록을 읽고 내용을 비교하여 불량 블록을 검색합니다.

다음 옵션 을 사용하여 패턴을 재정의할 수 있습니다 -t.

-t test_pattern 디스크 블록에 읽고 쓸 테스트 패턴을 지정합니다. test_pattern은 0에서 ULONG_MAX-1 사이의 숫자 값이거나 블록이 무작위 비트 패턴으로 채워져야 함을 지정하는 "random"이라는 단어일 수 있습니다. 읽기/쓰기(-w) 및 비파괴(-n) 모드의 경우 원하는 각 테스트 패턴에 대해 -t 옵션을 지정하여 하나 이상의 테스트 패턴을 지정할 수 있습니다. 읽기 전용 모드의 경우 단일 패턴만 지정할 수 있으며 "임의"일 수 없습니다. 패턴을 사용한 읽기 전용 테스트에서는 지정된 패턴이 이전에 디스크에 기록되었다고 가정합니다. 그렇지 않은 경우 많은 수의 블록이 검증에 실패합니다. 여러 패턴이 지정된 경우 다음 패턴으로 진행하기 전에 모든 블록이 하나의 패턴으로 테스트됩니다.


예제 명령 및 출력:

# badblocks -wsvt 0 /dev/sdz
Checking for bad blocks in read-write mode
From block 0 to 488386583
Testing with pattern 0x00: done                                                 
Reading and comparing: done                                                 
Pass completed, 0 bad blocks found. (0/0/0 errors)

답변2

오류를 찾는 것이 아니라 데이터를 파괴하는 것이 목표라면 다음을 사용할 수 있습니다.

dd if=/dev/zero of=/dev/sdX status=progress

여기서 X는 대상 장치의 문자입니다.

그러나 디스크의 데이터가 정말로 걱정된다면 dd를 여러 번 실행하거나 삭제 또는 파쇄와 같은 다른 도구를 사용하거나 badblock이 작업을 수행하도록 놔둘 수 있습니다. 이는 모두 데이터 삭제에 투자하려는 시간에 따라 다릅니다.

관련 정보