명령 을 실행하기 전에 dd
명령은 lsblk
다음 출력을 반환했습니다.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
명령이 dd if=/dev/urandom of=/dev/sda conv=fsync status=progress
실행되었습니다. 그러나 장치의 전원이 꺼지고 종료됩니다. 전원이 복원되면 명령은 lsblk
다음 출력을 반환합니다.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
sda2 8:2 0 487.5G 0 disk
답변1
여러 가지 가능성:
Linux는 다양한 파티션 테이블 유형을 지원하며 그 중 일부는 매직 바이트를 거의 사용하지 않으며 임의의 데이터를 잘못 식별하기 쉽습니다(*) [그래서 어느 정도 "유효한" 파티션 테이블이 무작위로 생성될 수 있습니다].
일부 파티션 테이블 유형에는 디스크 끝에(특히 GPT) 백업이 있는데, 이는 드라이브의 시작 부분이 임의의 가비지로 대체되는 경우 선택할 수 있습니다.
장치가 제대로 작동하지 않거나, 데이터를 쓰기 전에 연결이 끊어지거나, 오래된 데이터를 계속 반환하여 파티션 테이블이 여전히 존재합니다. 때로는 USB 스틱에서 이런 일이 발생합니다.
...
(*) 임의의 데이터가 포함된 1000개의 파일을 생성하고 결과가 무엇인지 확인하십시오.
$ truncate -s 8K {0001..1000}
$ shred -n 1 {0001..1000}
$ file -s {0001..1000} | grep -v data
0099: COM executable for DOS
0300: DOS executable (COM)
0302: TTComp archive, binary, 4K dictionary
0389: Dyalog APL component file 64-bit level 1 journaled checksummed version 192.192
0407: COM executable for DOS
0475: PGP\011Secret Sub-key -
....
드라이브를 무작위로 파쇄하는 목적은 오래된 데이터를 영원히 사라지게 하는 것입니다. 드라이브가 비어 있고, 사용되지 않았으며, 깨끗한 상태로 나타날 것이라는 보장은 없습니다.
이는 일반적으로 삭제 없이 달성됩니다. LVM을 사용하는 경우 LVM이 이전 데이터가 방해받지 않도록 생성한 LV의 처음 몇 개의 섹터를 0으로 만드는 것이 일반적입니다.
wipefs
파일 시스템 및 파티션 테이블 메타데이터를 제거하는 데 사용할 수 있는 오래된 매직 바이트 서명을 제거하는 전용 유틸리티( )도 있습니다 .
답변2
여기에서 볼 수 있듯이 MBR(마스터 부트 레코드)은 비교적 간단합니다.https://en.wikipedia.org/wiki/Master_boot_record.
사용하면 /dev/urandom
언제든지 파티션 테이블처럼 보이는 것을 만들 수 있습니다. 해결책은 파티션 테이블 영역을 0으로 채우고 dev/urandom
나머지 부분에 사용하는 것입니다.
Linux는 또한 트리거될 수 있는 다른 추가 디스크 형식도 지원하므로 임의의 데이터로 채워지면 "잘못된" 파티션이 표시됩니다.
답변3
512바이트의 컬렉션을 다음과 같이 정의합니다.마스터 부트 레코드0x55 0xAA
최종 값의 존재입니다. 그러한 값을 생성할 확률은 65,536분의 1입니다 /dev/urandom
. 가능성은 희박하지만 똑같이 가능성 없는 일이 항상 발생할 수 있습니다.
(다음과 같은 다른 파티션된 테이블도 있습니다.Apple 파티션 맵, 비슷한 짧은 서명이 있습니다. 이미 이들 중 하나를 생성했을 수도 있습니다. )
답변4
이 파티션이 이전에 이 디스크에 존재했습니까? 디스크가 GPT를 사용하는 경우 보조 GPT 헤더가 복원되었을 수 있으며 여전히 이전 파티션 테이블이 남아 있습니다.