Respostas:
Vai
dd if=/dev/zero of=/dev/sda
acabar com uma tabela de partição pré-existente?
Sim, a tabela de partições está na primeira parte da unidade, portanto, escrever sobre ela irá destruí-la. Isso dd
escreverá sobre toda a unidade se você a deixar executar (por isso levará algum tempo).
Algo como dd bs=512 count=50 if=/dev/zero of=/dev/sda
seria suficiente para substituir os 50 primeiros setores, incluindo a tabela de partições MBR e a GPT principal. Embora, pelo menos de acordo com a Wikipedia, a GPT tenha uma cópia secundária da tabela de partições no final da unidade, portanto, substituir apenas a parte da cabeça da unidade pode não ser suficiente.
(Você não precisa usar dd
, no entanto. head -c10000 /dev/zero > /dev/sda
Ou cat /bin/ls > /dev/sda
teria o mesmo efeito.)
faz
fdisk /dev/sda g
(para GPT) acabar com os zeros escritos por / dev / zero?
Também sim (desde que você salve as alterações).
(No entanto, o fraseado no título é apenas confuso, /dev/zero
por si só não faz nada mais do que qualquer armazenamento regular.)
/bin/ls
for suficientemente curta, a operação de gravação poderá substituir apenas alguns bytes do MBR, e a parte mais importante (setores inicial e final das partições) poderá permanecer intacta. Embora uma reinstalação do MBR (mais comumente grub --install /dev/sda
) ainda seja necessária para tornar o sistema inicializável novamente.
ls
binário real , não a saída da execução. O menor binário ELF possível "Hello World" parece ter 98 bytes (menos que um MBR), mas acho seguro assumir que qualquer binário com recursos reais deve ser maior que um MBR (a notoriamente pequena implementação do FreeBSD ls
é 32784 bytes de comprimento, até grandes o suficiente para substituir a parte do início do disco de uma GPT). ;)
ls
. Uma lista de /usr/bin
provavelmente seria longa o suficiente. Eu usaria apenas echo
como exemplo, mas o IIRC precisa de quase 500 bytes para substituir uma tabela de partição MBR, por isso é um pouco cansativo digitar. (seja qual for o número exato) #
A tabela de partição é armazenada próximo ao início 1 do dispositivo de disco (lógico 2 ).
Sobrescrever essa área por qualquer coisa (zeros /dev/zero
ou outros dados) substituirá a tabela de partições por coisas sem sentido, de modo que não será mais óbvio onde as partições no dispositivo começam.
Ainda é possível verificar o disco inteiro e tentar identificar os "bytes mágicos" que marcam o início dos sistemas de arquivos.
Por outro lado, se você usar fdisk
(ou qualquer outra ferramenta de particionamento) para criar uma nova tabela de partição, a ferramenta substituirá os primeiros bytes do disco para armazenar essa nova tabela.
Há apenas um começo no disco; portanto, o que você fizer por último "ficará" lá.
Observe, no entanto, que alguns formatos de tabela de partição (como GPT) manterão cópias de backup em locais diferentes (por exemplo, no final do disco para GPT), dos quais algumas informações da partição podem ser recuperadas.
1: por exemplo, nos primeiros 512 bytes para um MBR ou nos primeiros e últimos 17408 bytes para uma GPT
2: A unidade pode remapear internamente os blocos lógicos em diferentes partes do meio físico, mas esse mapeamento é invisível para (e sem importância para) o sistema operacional.
/dev/zero
apagando algo, estádd
apagando copiando sobre ele. Os fatos de que os bytes são zero e de que os zero bytes são originários, em/dev/zero
vez de alguma outra fonte de zeros, são pequenos detalhes.