명령 줄에서 모든 파티션 삭제


40

Linux의 명령 줄 (특히 Ubuntu)에서 장치의 모든 파티션을 어떻게 삭제합니까? fdisk를 보려고했지만 대화식 프롬프트가 표시됩니다. 장치 명령 (예 : / dev / sda)을 줄 수있는 단일 명령을 찾고 있는데 ext4, linux-swap 및 기타 파티션을 삭제합니다. 기본적으로 이것은 GParted를 열고 모든 파티션을 수동으로 선택하고 삭제하는 것과 같습니다. 이것은 매우 간단 해 보이지만 안타깝게도 Google을 통해 아무것도 찾을 수 없었습니다.

답변:


44

이것으로 충분합니까?

dd if=/dev/zero of=/dev/sda bs=512 count=1 conv=notrunc

4
파티션은 삭제되지 않습니다. 파티션을 삭제함으로써 그는 MBR을 유지하고 파티션 테이블을 비우려고했습니다.
Mircea Vutcovici

2
아니요, 이것은 내가 필요한 것을 정확하게하는 것처럼 보입니다. 데이터가 여전히 있는지는 신경 쓰지 않습니다. GParted는 이것을 실행 한 후 파티션이 사라 졌음을 보여주었습니다.
Cerin

Mircea Vutcovici는 데이터가 아니라 MBR의 부트 스트랩 코드에 대해 이야기했습니다. MBR 스타일 파티션 테이블에서 4 개의 기본 항목과 함께 삭제했기 때문에 이제 사라졌습니다.
JdeBP

1
드라이버를 마운트 해제하는 것을 잊지 마십시오. 그렇지 않으면 작동하지 않습니다.
OrangeTux

드라이브에서 ZFS를 사용하고 다른 용도로 사용하려는 경우에도 효과적입니다. 표준 Windows 또는 Linux 파티션 및 형식은 ZFS 레이블을 제거하지 않으므로 중요한 문제가 발생할 수 있습니다.
Tony Maro

32

wipefs프로그램을 사용하면 파티션 테이블 서명을 쉽게 삭제할 수 있습니다.

wipefs -a /dev/sda

에서 man wipefs

wipefs는 지정된 장치에서 파일 시스템, RAID 또는 파티션 테이블 서명 (매직 문자열)을 지워서 libblkid에 서명을 보이지 않게 할 수 있습니다.

wipefs는 파일 시스템 자체 나 장치의 다른 데이터를 지우지 않습니다. 옵션없이 사용하면 wipefs는 보이는 모든 파일 시스템과 기본 서명의 오프셋을 나열합니다.

wipefs는 파티션 테이블 서명을 지울 때 BLKRRPART ioctl을 호출하여 변경 사항을 커널에 알립니다.


12

빠르고 더러운 : gparted파티션을 삭제하거나 급한 경우 :

dd if=/dev/zero of=/dev/[disk device] bs=512 count=1

이렇게하면 드라이브의 MBR이 zap됩니다 (데이터는 그대로 유지됨).

또는

dd if=/dev/zero of=/dev/[disk device]

전체 드라이브를 지우려면 (모든 것에 단일 패스를 0으로 작성하십시오. "안전하지는 않지만 일반적으로 충분합니다"), 안전한 디스크 정리를 위해 "디스크 분쇄기"도구를 사용하십시오.


7

man sfdisk비 대화식 fdisk 변형 인를 참조하십시오 . 그 외에는 pk가 쓴 것처럼 dd를 사용하여 전체 파티션 테이블을 삭제할 수 있습니다.


6

파티션을 반복하는 스크립팅이 필요할 수 있지만 parted 를 사용할 수도 있습니다.


3

MBR 스타일 파티션에 대해 이야기한다면 ...

dd if=/dev/zero of=/dev/[disk device] bs=1 count=64 seek=446 conv=notrunc

설명:

dd

이 표준 명령은 소스에서 바이트를 복사하여 대상에 씁니다. 이 작업을위한 가장 유연한 도구입니다.

if=/dev/zero

여기서 우리는 바이트를 0으로 /dev/zero내보내는 특수한 장치 인를 읽고 있음을 지정합니다 NUL.

of=/dev/[disk device]

여기에서는 우리가 쓰는 장치를 지정합니다.

bs=1

dd블록의 관점에서 생각 합니다 . 기본 블록 크기는 시스템에 따라 512 바이트, 1024 바이트 또는 4096 바이트 일 수 있습니다. 그러나 우리는 그보다 더 정확하게 문제를 해결해야하므로 dd1 바이트의 블록 크기를 사용하도록 지시합니다.

카운트 = 64

여기서, 1 차 파티션 테이블은 4 개의 16 바이트 파티션 항목으로 구성되어 총 64 바이트 dd이므로 64 개의 블록 (또는 bs=1매개 변수로 인해 바이트)을 작성하도록 지시 합니다.

찾기 = 446

MBR 내의 기본 파티션 테이블 (여기서는 GPT에 대해서는 언급하지 않음)은 446 바이트에 있으므로 dd쓰기 전에 446 바이트를 검색 하도록 지시 합니다.

확장 파티션은 일반적으로 확장 파티션 테이블을 가리 키도록 기본 파티션 슬롯을 사용하여 생성되므로 4 개의 기본 파티션을 지우면 확장 파티션 테이블도 효과적으로 지울 수 있습니다. OS에서 찾을 수 없으므로 읽고 해석 할 수 없습니다. (확장 파티션 테이블을 지우려면 운영 체제에 대해 더 알아야합니다. 다른 운영 체제는 다른 방식으로 확장 파티션을 수행합니다.)


2

나는 똑같은 일을하고 싶었지만 (슬랙웨어 14.2는 제외) 여기에 제안 된 대부분의 솔루션에 영향을 줄 수 없다는 것을 알았습니다. 가장 정교하고 잘 문서화 된 솔루션은 교체 파티션을 만드는 새로운 문제를 만듭니다. 파티션을 삭제했지만 일부 파티션 소프트웨어가 파티션 백업을 자동으로 찾은 것 같습니다.

f3probe ( http://oss.digirati.com.br/f3 )는 모든 파티션을 빠르고 쉽게 삭제하고 대용량 드라이브로 작업하는 문제를 해결하고 전체 드라이브에 걸쳐 정확히 1 개의 파티션을 생성 한다는 것을 알았 습니다. 지우는 것.

거기에서 새 파티션을 간단하게 만들 수도 있습니다.

f3probe --destructive --time-ops /dev/sdb
# Now we know only 1 partition exists on /dev/sdb
#    which is /dev/sdb1
#
# Unmount that partition
umount /dev/sdb1

#
# Delete that single partition
parted /dev/sdb rm 1

#
# Now you can create new partitions
# i.e. parted /dev/sdb mkpart primary fat32 1049K 15.8G
# 
# Update /etc/fstab before rebooting....

0

sfdisk 인 향상된 비 대화식 fdisk 버전을 사용하십시오.

파티션 테이블을 지우려면 다음 명령을 사용하십시오.

sfdisk --delete /dev/sda
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.