dd if=/dev/zero of=/dev/sda 기존 파티션 테이블을 지웁니까?

dd if=/dev/zero of=/dev/sda 기존 파티션 테이블을 지웁니까?

# dd if=/dev/zero of=/dev/sda기존 파티션 테이블이 지워지 나요 ?

아니면 그 반대입니다.

# fdisk /dev/sda g(GPT의 경우)

지우기 /dev/zero?기록된 0

답변1

dd if=/dev/zero of=/dev/sda기존 파티션 테이블이 지워지 나요 ?

예, 파티션 테이블은 드라이브의 첫 번째 부분에 있으므로 덮어쓰면 손상됩니다. 실행시키면 dd전체 드라이브가 포함됩니다(따라서 꽤 오랜 시간이 걸립니다).

이와 같은 것은 dd bs=512 count=50 if=/dev/zero of=/dev/sdaMBR 파티션 테이블과 기본 GPT를 포함하여 처음 50개 섹터를 포괄하기에 충분합니다. 적어도 Wikipedia에 따르면,GPT에는 파티션 테이블의 보조 복사본이 있습니다.때문에 드라이브 헤드를 덮는 것만으로는 충분하지 않을 수 있습니다.

(그러나 .를 사용할 필요는 없습니다 dd. head -c10000 /dev/zero > /dev/sda그렇지 cat /bin/ls > /dev/sda않으면 동일한 효과가 나타납니다.)

(GPT의 경우) fdisk /dev/sda g/dev/zero에 기록된 0이 지워지나요?

이 방법도 작동합니다(변경 사항을 저장한 경우).

(단, 제목의 표현 자체는 혼란스러울 뿐이지, /dev/zero그 자체는 아닙니다.하다일반 스토리지 그 이상입니다. )

답변2

파티션 테이블은 (논리 2) 디스크 장치 의 시작 부분 근처에 저장됩니다 .

/dev/zero해당 영역을 0 이나 다른 데이터 로 덮어쓰면 파티션 테이블이 횡설수설로 대체되므로 장치에서 파티션이 시작되는 위치가 더 이상 명확하지 않습니다.
그러나 여전히 전체 디스크를 스캔하여 파일 시스템의 시작을 표시하는 "매직 바이트"를 식별하려고 시도할 수 있습니다.

반대로, fdisk(또는 다른 파티션 도구)를 사용하여 새 파티션 테이블을 생성하는 경우 도구는 디스크의 처음 몇 바이트를 덮어써 새 테이블을 저장합니다.

디스크에는 시작이 하나만 있으므로 마지막에 무엇을 하든 거기에 "고정"됩니다.

그러나 일부 파티션 테이블 형식(예: GPT)은 일부 파티션 정보를 복구할 수 있는 다른 위치(예: GPT가 디스크 끝에 있음)에 백업 복사본을 저장합니다.

1: 예를 들어MBR의 처음 512바이트또는GPT의 첫 번째 및 마지막 17408바이트
2: 드라이브는 논리적 블록을 물리적 미디어의 다른 부분에 내부적으로 다시 매핑할 수 있지만 이 매핑은 운영 체제에 보이지 않으며 중요하지 않습니다.

관련 정보