Excluindo todas as partições da linha de comando

30

Como você exclui todas as partições em um dispositivo da linha de comando no Linux (especificamente no Ubuntu)? Eu tentei olhar para o fdisk, mas apresenta um prompt interativo. Eu estou procurando um único comando, que eu possa dar um caminho de dispositivo (por exemplo, / dev / sda) e ele irá deletar o ext4, linux-swap, e quaisquer outras partições que encontrar. Essencialmente, isso seria o mesmo que se eu abrisse o GParted e selecionasse e apagasse manualmente todas as partições. Isso parece bastante simples, mas infelizmente não consegui encontrar nada no Google.

    
por Cerin 23.03.2011 / 15:42

7 respostas

35

Isso seria suficiente?

dd if=/dev/zero of=/dev/sda bs=512 count=1 conv=notrunc
    
por 23.03.2011 / 15:48
21

O programa wipefs permite excluir facilmente a assinatura da tabela de partições:

wipefs -a /dev/sda

De man wipefs

wipefs can erase filesystem, raid or partition-table signatures (magic strings) from the specified device to make the signatures invisible for libblkid.

wipefs does not erase the filesystem itself nor any other data from the device. When used without any options, wipefs lists all visible filesystems and the offsets of their basic signatures.

wipefs calls the BLKRRPART ioctl when it has erased a partition-table signature to inform the kernel about the change.

    
por 02.05.2017 / 21:25
7

Rápido e sujo: use gparted para excluir as partições ou se você estiver com pressa:

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

Isso irá zerar o MBR da unidade (os dados ainda estão intactos).

Alternativamente:

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

para limpar a unidade inteira (escrever uma única passagem de zeros sobre tudo. Não "segura", mas geralmente boa o suficiente) ou usar uma ferramenta "trituradora de disco" para um apagamento seguro.

    
por 23.03.2011 / 15:50
4

Veja man sfdisk , que é uma variante não interativa do fdisk. Fora isso, você pode deletar toda a tabela de partição com o dd, como escreveu o pk.

    
por 23.03.2011 / 15:50
4

Você deve ser capaz de usar parted para isso também, embora isso possa envolver alguns scripts para percorrer as partições.

    
por 23.03.2011 / 15:56
0

Se estamos falando de partições no estilo MBR ...

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

Explicação:

dd

Este comando padrão copia bytes de uma fonte e os grava em um destino. É a ferramenta flexível mais simples para este trabalho.

if=/dev/zero

Aqui, especificamos que estamos lendo /dev/zero , que é um dispositivo especial que emite NUL bytes - zeros.

of=/dev/[disk device]

Aqui, especificamos em qual dispositivo estamos escrevendo.

bs=1

dd pensa em termos de blocos . O tamanho padrão do bloco pode ser de 512 bytes, 1024 bytes ou 4096 bytes, dependendo do seu sistema. No entanto, precisamos abordar as coisas com mais precisão do que isso, portanto, dizemos a dd para usar um tamanho de bloco de 1 byte.

count=64

Aqui, informamos dd para escrever 64 blocos (ou bytes, devido ao nosso parâmetro bs=1 ), uma vez que a tabela de partição primária consiste em 4 entradas de partição de 16 bytes, para um total de 64 bytes. p>

seek=446

A tabela de partição primária dentro do MBR (portanto, não falando sobre o GPT aqui) está localizada em 446 bytes, então instruímos dd a procurar 446 bytes antes de escrever.

Partições estendidas são geralmente criadas usando um slot de partição primária para apontar para a tabela de partições estendida, então se nós apagarmos as 4 partições primárias, nós efetivamente apagamos a tabela de partição estendida; o sistema operacional não conseguirá encontrá-lo, por isso não será capaz de lê-lo e interpretá-lo. (Se você quiser limpar a tabela de partição estendida, você precisará saber mais sobre o sistema operacional; sistemas operacionais diferentes fazem partições estendidas de maneiras diferentes.)

    
por 10.04.2017 / 19:16
0

Eu queria fazer a mesma coisa (exceto no Slackware 14.2), mas descobri que não poderia afetar a maioria das soluções propostas aqui, com a solução mais elaborada e bem documentada criando novos problemas para fazer partições de substituição. Isso excluiu a partição, mas alguns softwares de particionamento aparentemente encontraram os backups de partições automaticamente.

Encontrei o f3probe ( link ) resolvi o problema de deletar todas as partições, de forma rápida e fácil, trabalhando com grande capacidade drives, e criou exatamente 1 partição abrangendo toda a unidade, que foi fácil de apagar.

Também foi fácil, a partir daí, criar novas partições, de forma direta.

i.e.

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....
    
por 12.09.2018 / 11:15