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


13

# dd if=/dev/zero of=/dev/sda기존 파티션 테이블을 닦아?

아니면 다른 방법으로, 즉

# fdisk /dev/sda g (GPT 용)

에 의해 쓰여진 제로를 닦아 /dev/zero?


6
그것은 /dev/zero무언가를 지우는 것이 아니라 dd그것을 복사하여 그것을 지우는 것입니다. 바이트가 0이되고 0 바이트가 /dev/zero다른 0의 소스 대신에 발생한다는 사실 은 사소한 세부 사항입니다.
chrylis

2
파티션 테이블을 지우려면 wipefs 가 더 안정적 일 수 있습니다.
파이프

답변:


23

dd if=/dev/zero of=/dev/sda기존 파티션 테이블을 닦아?

예, 파티션 테이블은 드라이브의 첫 부분에 있으므로 덮어 쓰면 손상됩니다. 즉 dd당신이 (꽤 시간이 좀 걸릴 것입니다, 그래서)가 실행할 수 있도록 경우 전체 드라이브에 걸쳐 작성합니다.

같은 뭔가 dd bs=512 count=50 if=/dev/zero of=/dev/sdaMBR 파티션 테이블 및 기본 GPT 포함하는 제 50 개 섹터를 덮어하기에 충분하다. 적어도 Wikipedia에 따르면 GPT에는 드라이브 끝에 보조 테이블의 2 차 사본이 있으므로 드라이브 헤드의 일부만 덮어 쓰는 것으로 충분하지 않을 수 있습니다.

( dd하지만 사용할 필요는 없습니다 . head -c10000 /dev/zero > /dev/sda또는 cat /bin/ls > /dev/sda같은 효과가 있습니다.)

수행 fdisk /dev/sda g은 / dev / 0으로 기록 된 0을 쓸어 (GPT에 대한)?

또한 예 (변경 사항을 저장 한 경우).

(단, 제목에 말씨는, 혼란 /dev/zero하지 않는 그 자체로 더 이상 정규 스토리지보다 아무것도.)


참고 사항 :의 출력 /bin/ls이 충분히 짧은 경우 쓰기 작업은 MBR의 몇 바이트 만 덮어 쓸 수 있으며 가장 중요한 부분 (파티션의 시작 및 끝 섹터)은 그대로 유지 될 수 있습니다. grub --install /dev/sda시스템을 다시 부팅 가능하게하려면 MBR 재설치 (가장 일반적으로 )가 필요합니다.
peterh-복원 모니카

8
그들은 실제 리디렉션하고 있다는 @peterh 주 ls이진, 아니 그것을 실행의 출력을. 가장 작은 "Hello World"ELF 바이너리는 98 바이트 (MBR보다 작음) 인 것처럼 보이지만 실제 기능이있는 바이너리는 MBR보다 커야한다고 가정하는 것이 안전하다고 생각합니다 (유명하게 작은 FreeBSD 구현 ls은 32784입니다). 바이트 길이, 심지어 GPT의 디스크 시작 부분을 덮어 쓸 수있을 정도로 큼). ;)
n.st

예, 출력 ls도 사용할 수 있습니다 . 목록이 /usr/bin충분할 것입니다. echo예제로만 사용하려고 했지만 IIRC에서는 MBR 파티션 테이블을 덮어 쓰려면 거의 500 바이트가 필요하므로 입력하기에는 약간 지쳤습니다. (정확한 숫자가 무엇이든)
ilkkachu

1
아마도 bs를 사용하고 dd로 카운트해야합니다. 그렇지 않으면 얼마 동안 진행될 것입니다. 섹터를 0으로 설정하면됩니다. 레거시 디스크의 경우 512 바이트 (아래 @ n.st 참조) 실제로 파티션 테이블은 이것의 끝에 있으며 부팅 내용을 보존하기 위해 다시 복사하기 전에 16 진 편집기로 복사하고 0을 만들 수있을 정도로 작습니다. 이를위한 도구도 있지만 NAS 디스크를 초기화하는 것이 일반적입니다.
mckenzm

1
GPT 드라이브의 경우 디스크 끝을 닦아야한다는 것을 추가하고 싶었습니다. 호환 GPT 구현은 디스크 끝에서 보조 테이블을 확인하고 첫 번째 부분도 다시 작성합니다 (이미 존재하는 것은 무시). 참조 : news.ycombinator.com/item?id=18541493
wbkang

10

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

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

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

디스크에는 시작이 하나뿐이므로 마지막으로 수행하는 작업은 "고정"됩니다.

그러나 GPT와 같은 일부 파티션 테이블 형식은 백업 사본을 다른 위치 (예 : GPT의 디스크 끝)에 보관하여 일부 파티션 정보를 복구 할 수 있습니다.

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


1
거의 오른쪽-(오래된 MBR 유형) 파티션 테이블은 MBR의 바이트 1BE-1FD에 있습니다. 처음 몇 바이트에는 IBL (초기 부팅 로더)이 포함됩니다.
RudiC

@RudiC 좋은 지적, 나는 지금 더 정확하게 언급했습니다.
18:23:24
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.