답변:
윌
dd if=/dev/zero of=/dev/sda
기존 파티션 테이블을 닦아?
예, 파티션 테이블은 드라이브의 첫 부분에 있으므로 덮어 쓰면 손상됩니다. 즉 dd
당신이 (꽤 시간이 좀 걸릴 것입니다, 그래서)가 실행할 수 있도록 경우 전체 드라이브에 걸쳐 작성합니다.
같은 뭔가 dd bs=512 count=50 if=/dev/zero of=/dev/sda
MBR 파티션 테이블 및 기본 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 재설치 (가장 일반적으로 )가 필요합니다.
ls
도 사용할 수 있습니다 . 목록이 /usr/bin
충분할 것입니다. echo
예제로만 사용하려고 했지만 IIRC에서는 MBR 파티션 테이블을 덮어 쓰려면 거의 500 바이트가 필요하므로 입력하기에는 약간 지쳤습니다. (정확한 숫자가 무엇이든)
파티션 테이블은 (논리적 2 ) 디스크 장치 의 시작 1 근처에 저장됩니다 .
해당 영역을 /dev/zero
다른 데이터 (0 또는 다른 데이터)로 덮어 쓰면 파티션 테이블이 횡설수설로 바뀌므로 장치의 파티션이 시작되는 위치가 더 이상 명확하지 않습니다.
그래도 여전히 전체 디스크를 스캔하고 파일 시스템의 시작을 표시하는 "매직 바이트"를 식별 할 수 있습니다.
반대로 fdisk
(또는 다른 파티셔닝 도구)를 사용하여 새 파티션 테이블을 만드는 경우 도구는 디스크의 처음 몇 바이트를 덮어 써서 새 테이블을 저장합니다.
디스크에는 시작이 하나뿐이므로 마지막으로 수행하는 작업은 "고정"됩니다.
그러나 GPT와 같은 일부 파티션 테이블 형식은 백업 사본을 다른 위치 (예 : GPT의 디스크 끝)에 보관하여 일부 파티션 정보를 복구 할 수 있습니다.
1 : 예를 들어 MBR 의 첫 512 바이트 또는 GPT 의 첫 번째 및 마지막 17408 바이트
2 : 드라이브는 논리적 블록을 물리적 매체의 다른 부분에 내부적으로 다시 매핑 할 수 있지만 매핑은 보이지 않습니다 (그리고 중요하지 않음). 운영 체제.
/dev/zero
무언가를 지우는 것이 아니라dd
그것을 복사하여 그것을 지우는 것입니다. 바이트가 0이되고 0 바이트가/dev/zero
다른 0의 소스 대신에 발생한다는 사실 은 사소한 세부 사항입니다.