![`scrub(1)`, 그러나 오프셋에서 복구할 수 있음](https://linux55.com/image/181492/%60scrub(1)%60%2C%20%EA%B7%B8%EB%9F%AC%EB%82%98%20%EC%98%A4%ED%94%84%EC%85%8B%EC%97%90%EC%84%9C%20%EB%B3%B5%EA%B5%AC%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%9D%8C.png)
여러 개의 매우 큰 하드 드라이브를 스크러빙해야 합니다. 하지만 데스크톱에서는 이 작업을 수행할 수 없습니다. 이동 중에 노트북으로 이 작업을 수행해야 합니다. 하드 드라이브를 한 번에 처리하려면 하루 이상이 걸리지 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-zero
0만 포함하고 크기가 0인 희소 파일입니다 /dev/sdx
. 희소 파일을 올바르게 지원하는 파일 시스템에서 지원되어야 하며 ext4/xfs/btrfs는 작동하지만 tmpfs/fat/ntfs는 작동하지 않습니다.
cryptsetup
0은 무작위 데이터로 암호화되므로 /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