Como você exclui todas as partições em um dispositivo a partir da linha de comando no Linux (especificamente no Ubuntu)? Eu tentei olhar para o fdisk, mas ele apresenta um prompt interativo. Estou procurando um único comando, que eu possa fornecer um caminho de dispositivo (por exemplo, /dev/sda) e excluirá o ext4, linux-swap e quaisquer outras partições que encontrar. Essencialmente, isso seria a mesma coisa que se eu abrisse o GParted e selecionasse e excluísse manualmente todas as partições. Isso parece bastante simples, mas infelizmente não consegui encontrar nada através do Google.
Isso bastaria?
O
wipefs
programa permite excluir facilmente a assinatura da tabela de partição:A partir de
man wipefs
Rápido e Sujo: use
gparted
para deletar as partições, ou se estiver com pressa:Isso zap o MBR da unidade (os dados ainda estão intactos).
Alternativamente:
para limpar toda a unidade (escreva uma única passagem de zeros sobre tudo. Não é "seguro", mas geralmente bom o suficiente), ou use uma ferramenta "destruidora de disco" para uma limpeza segura.
Use a versão não interativa aprimorada do fdisk, que é o sfdisk
Para apagar a tabela de partição, use este comando:
Nota: nenhuma confirmação será lançada, as partições serão excluídas instantaneamente e para sempre!
Consulte
man sfdisk
, que é uma variante não interativa do fdisk. Fora isso, você pode excluir toda a tabela de partições com dd, como pk escreveu.Você deve ser capaz de usar o parted para isso também, embora isso possa envolver alguns scripts para percorrer as partições.
Se estamos falando de partições no estilo MBR...
Explicação:
Este comando padrão copia bytes de uma origem e os grava em um destino. É a ferramenta flexível mais simples para este trabalho.
Aqui, especificamos que estamos lendo de
/dev/zero
, que é um dispositivo especial que emiteNUL
bytes--zeros.Aqui, especificamos em qual dispositivo estamos gravando.
dd
pensa em termos de blocos . O tamanho do bloco padrão pode ser 512 bytes, 1024 bytes ou 4096 bytes, dependendo do seu sistema. No entanto, precisamos abordar as coisas com mais precisão do que isso, então dizemosdd
para usar um tamanho de bloco de 1 byte.Aqui, dizemos
dd
para escrever 64 blocos (ou bytes, devido ao nossobs=1
parâmetro), já que a tabela de partição primária consiste em 4 entradas de partição de 16 bytes, para um total de 64 bytes.A tabela de partição primária dentro do MBR (portanto, não falando sobre GPT aqui) está localizada a 446 bytes, então instruímos
dd
a buscar 446 bytes antes de escrever.As partições estendidas geralmente são criadas usando um slot de partição primária para apontar para a tabela de partições estendidas, portanto, se apagarmos as 4 partições primárias, também limparemos efetivamente a tabela de partições estendidas; o sistema operacional não poderá encontrá-lo, portanto, não poderá lê-lo e interpretá-lo. (Se você quiser limpar a tabela de partições estendidas, precisará saber mais sobre o sistema operacional; sistemas operacionais diferentes fazem partições estendidas de maneiras diferentes.)
Eu queria fazer a mesma coisa (exceto no Slackware 14.2), mas descobri que não poderia efetuar 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 da partição automaticamente.
Achei que o f3probe ( http://oss.digirati.com.br/f3 ) resolveu o problema de deletar todas as partições, de forma rápida e fácil, trabalhando com drives de grande capacidade, e criei exatamente 1 partição abrangendo todo o drive, o que foi fácil deletar.
Também foi fácil, a partir daí, criar novas partições, de forma direta.
ou seja
Usando o gparted do petalinux no EMMC para mim, foi
Aqui a saída de ajuda correspondente
BTW: relativo
wipefs -a /dev/sda
(e talvez algumas outras soluções aqui)Usar isso fez comandos como
parted /dev/mmcblk0 --script mkpart primary fat32 1MiB 2049MiB
para eu falhar com oError: /dev/mmcblk0: unrecognised disk label
. O comando mklabel do gparted está 'reparando' esta condição resp. parece ser uma boa preparação para os passos seguintes.Veja também https://unix.stackexchange.com/questions/200582/scripteable-gpt-partitions-using-parted