Qual é a diferença entre esses comandos para remover todas as partições e qual é preferível?

1

A ideia é limpar todas as partições com um comando de terminal. Eu encontrei estes:

 dd if=/dev/zero of=/dev/sda bs=1M count=8 && sync

e

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

As fontes são aqui e aqui .

Editar após comentários:

E sobre isso:

dd if=/dev/zero of=/dev/sdXXX bs=512 count=1

de aqui

Eu tenho este problema . O mbr é  já perdi eu acho. Eu só quero um disco rígido virgem no qual criar novas partições e instalar novos sistemas.

    
por cipricus 20.02.2015 / 14:25

3 respostas

2

O valor fornecido para opções de tamanho de bloco é base 10. O valor padrão para tamanhos de bloco de entrada e saída é de 512 bytes. Um tamanho de bloco maior resulta em mais memória sendo usada pelo dd e geralmente é mais rápida.

count=BLOCKS
      Copy BLOCKS 'ibs'-byte blocks from the input file, instead of
      everything until the end of the file.
notrunc'  Do not truncate the output file.
sync'     Pad every input block to size of 'ibs' with trailing zero bytes.

dd Manpage

    
por Mitch 20.02.2015 / 14:44
1

O primeiro e o segundo comando sobrescreverão o MBR do seu dispositivo, mas eles são diferentes em relação à GPT.

O primeiro comando grava 8 MB de zeros e libera os buffers do sistema de arquivos. No caso de haver uma GPT, as partes do GPT principal serão sobrescritas.

O segundo comando grava 512B de zeros. No caso de haver uma GPT, a tabela principal ainda estará intacta. (A opção conv=notrunc não faz nenhuma diferença porque todos os dados no disco são perdidos de qualquer maneira.)

Qualquer GPT secundário no final do disco não é afetado por esses comandos.

O terceiro comando começa a escrever na partição XX e não remove a tabela de partições.

Isso deve apagar seu MBR ou GPT.

sgdisk -Z /dev/sdX

Depois disso, você poderá criar um novo MBR ou GTP.

    
por geram 20.02.2015 / 14:45
0

Iniciou uma sessão usb ao vivo e fez

sudo dd if=/dev/urandom of=/dev/sda bs=1M

Mas isso não parecia funcionar como eu queria, já que a luz para o processador estava praticamente desligada (ou é a luz do disco rígido?), enquanto o cooler era muito alto .

Então eu li que o comando urandom é muito lento, pois está realmente tentando produzir números realmente aleatórios. Eu não estava interessado em limpar todos os dados para segurança, mas apenas em limpar todas as partições (algo estava errado com elas), então parei o procedimento e fiz:

sudo dd if=/dev/zero of=/dev/sda bs=1M

Com isso, o cooler se acalmou enquanto a "luz de trabalho" estava lá permanentemente.

E para ver o progresso disso, abri uma janela de terminal separada e fiz

watch -n5 'sudo kill -USR1 'pgrep ^dd''

que a cada 5 segundos informa o progresso na janela do terminal inicial ( source )

245423407104 bytes (245 GB) copied, 3430.82 s, 71.5 MB/s
234354+0 records in
234354+0 records out
245737979904 bytes (246 GB) copied, 3435.84 s, 71.5 MB/s
234655+0 records in
234655+0 records out
246053601280 bytes (246 GB) copied, 3440.88 s, 71.5 MB/s
234956+0 records in
234956+0 records out
246369222656 bytes (246 GB) copied, 3445.91 s, 71.5 MB/s

... demorou 2 horas e 30 minutos para um disco rígido de 500 GB em um laptop de 4 anos com ram de 4 GB.

    
por cipricus 20.02.2015 / 17:03