`scrub(1)`, 그러나 오프셋에서 복구할 수 있음

`scrub(1)`, 그러나 오프셋에서 복구할 수 있음

여러 개의 매우 큰 하드 드라이브를 스크러빙해야 합니다. 하지만 데스크톱에서는 이 작업을 수행할 수 없습니다. 이동 중에 노트북으로 이 작업을 수행해야 합니다. 하드 드라이브를 한 번에 처리하려면 하루 이상이 걸리지 scrub(1)만 노트북을 그렇게 오랫동안 고정해 둘 수는 없습니다.

scrub(1)어떤 종류의 오프셋 명령줄 인수도 기본적으로 지원하지 않습니다.

이를 수행하는 방법 scrub(1)(임의의 바이트 쓰기)이 있지만 복구 가능한 방법이 있습니까? 기본적으로 명령은 중단할 때 오프셋을 인쇄해야 하며 재개하려면 오프셋 매개변수를 허용해야 합니다.

답변1

dd진행 보고서는 ( 로 신호를 보내어) 생성되도록 강제할 수 SIGUSR1있으며 섹션 쓰기를 시작하라고 지시할 수 있습니다( seek를 사용하여

그런 다음 /dev/urandom과 같은 임의 바이트 소스가 필요합니다.

답변2

ddrescue다음 을 사용할 수 있습니다 cryptsetup.

truncate -s $(blockdev --getsize64 /dev/sdx) sdx-zero
cryptsetup open --type plain --cipher aes-xts-plain64 sdx-zero sdx-random
ddrescue /dev/mapper/sdx-random /dev/sdx sdx-scrub.map

복원하고 보존하려면 sdx-scrub.map동일한 명령을 다시 반복하십시오.

이 방법은 매번 동일한 비밀번호를 사용하는 경우에도 작동합니다.

cmp /dev/mapper/sdx-random /dev/sdx && echo OK || echo FAIL

그러나 복구 가능하게 하려면 cmp -i SKIP -n LIMIT.

검증을 수행하면 프로세스 시간이 두 배 더 오래 걸립니다. 검증이 없으면 슈뢰딩거 스크럽이 됩니다.


위의 예에서는 /dev/sdx청소하려는 드라이브입니다.

sdx-zero0만 포함하고 크기가 0인 희소 파일입니다 /dev/sdx. 희소 파일을 올바르게 지원하는 파일 시스템에서 지원되어야 하며 ext4/xfs/btrfs는 작동하지만 tmpfs/fat/ntfs는 작동하지 않습니다.

cryptsetup0은 무작위 데이터로 암호화되므로 /dev/mapper/sdx-random탐색 가능한 블록 장치도 무작위 데이터로 채워집니다( /dev/urandom탐색 불가능한 장치와 반대).

ddrescue그것으로부터 임의의 데이터를 읽고 sdx-random기록하며 /dev/sdx, 진행 상황을 추적하면서 정리합니다 sdx-scrub.map. 또한 진행률 표시줄과 오류(있는 경우)도 표시됩니다.

매번 비밀번호를 입력하고 싶지 않다면, 키 파일을 생성할 수도 있습니다:

printf "%s" $(uuidgen) > sdx-scrub.key

키 파일을 한 번만 생성하고 호출 간에 보관한 다음 명령 --key-file sdx-scrub.key에 추가하기만 하면 됩니다.cryptsetup


당신은 또한 볼 수 있습니다https://unix.stackexchange.com/a/352378/30851

관련 정보