Sarà # dd if=/dev/zero of=/dev/sda
spazzare via una tabella delle partizioni preesistente?
O è il contrario, vale a dire
# fdisk /dev/sda
g
(per GPT)
cancellare gli zeri scritti da /dev/zero
?
Sarà # dd if=/dev/zero of=/dev/sda
spazzare via una tabella delle partizioni preesistente?
O è il contrario, vale a dire
# fdisk /dev/sda
g
(per GPT)
cancellare gli zeri scritti da /dev/zero
?
Risposte:
Sarà
dd if=/dev/zero of=/dev/sda
spazzare via una tabella delle partizioni preesistente?
Sì, la tabella delle partizioni si trova nella prima parte dell'unità, quindi la scrittura su di essa la distruggerà. Questo dd
scriverà su tutto il disco se lo lasci funzionare (quindi ci vorrà del tempo).
Qualcosa del genere dd bs=512 count=50 if=/dev/zero of=/dev/sda
sarebbe sufficiente per sovrascrivere i primi 50 settori, tra cui la tabella delle partizioni MBR e il GPT primario. Sebbene almeno secondo Wikipedia, GPT ha una copia secondaria della tabella delle partizioni alla fine dell'unità, quindi sovrascrivere solo la parte nella testa dell'unità potrebbe non essere sufficiente.
(Non è necessario utilizzare dd
, tuttavia. head -c10000 /dev/zero > /dev/sda
O cat /bin/ls > /dev/sda
avrebbe lo stesso effetto.)
fa
fdisk /dev/sda g
(per GPT) spazzare via gli zeri scritti da / dev / zero?
Anche sì (a condizione che tu salvi le modifiche).
(Tuttavia, il fraseggio nel titolo è semplicemente confuso, di /dev/zero
per sé non fa nulla di più rispetto a qualsiasi normale archiviazione.)
/bin/ls
è abbastanza breve, l'operazione di scrittura potrebbe sovrascrivere solo i pochi byte dell'MBR e la parte più importante (settori iniziale e finale delle partizioni) può rimanere intatta. Sebbene grub --install /dev/sda
sia ancora necessaria una reinstallazione MBR (più comunemente ) , per rendere nuovamente avviabile il sistema.
ls
binario effettivo , non l'output da eseguirlo. Il binario ELF "Hello World" più piccolo possibile sembra essere 98 byte (quindi meno di un MBR), ma penso che sia sicuro supporre che qualsiasi binario con funzionalità effettive dovrebbe essere più grande di un MBR (l'implementazione notoriamente piccola di FreeBSD ls
è 32784 byte lunghi, anche abbastanza grandi da sovrascrivere la parte di inizio del disco di un GPT). ;)
ls
. Un elenco di /usr/bin
sarebbe probabilmente abbastanza lungo. Stavo per usare solo echo
come esempio, ma IIRC hai bisogno di quasi 500 byte per sovrascrivere una tabella delle partizioni MBR, quindi è un po 'stanco da digitare. (qualunque fosse il numero esatto)
La tabella delle partizioni è memorizzata vicino all'inizio 1 del dispositivo disco (logico 2 ).
La sovrascrittura di quell'area con qualsiasi cosa (zero da /dev/zero
o qualsiasi altro dato) sostituirà la tabella delle partizioni con incomprensibili, quindi non sarà più ovvio dove iniziano le partizioni sul dispositivo.
Si può comunque scansionare l'intero disco e provare a identificare i "byte magici" che segnano l'inizio dei file system.
Al contrario, se si utilizza fdisk
(o qualsiasi altro strumento di partizionamento) per creare una nuova tabella delle partizioni, lo strumento sovrascriverà i primi byte del disco per memorizzare quella nuova tabella.
C'è solo un inizio sul disco, quindi qualunque cosa tu faccia per ultimo "rimarrà" lì.
Si noti, tuttavia, che alcuni formati di tabella delle partizioni (come GPT) manterranno copie di backup in luoghi diversi (ad es. Alla fine del disco per GPT), da cui è possibile recuperare alcune informazioni sulla partizione.
1: ad es. Nei primi 512 byte per un MBR o nel primo e nell'ultimo 17408 byte per un GPT
2: L'unità può rimappare internamente i blocchi logici in diverse parti del supporto fisico, ma quella mappatura è invisibile (e non importante per) il sistema operativo.
/dev/zero
cancellando qualcosa, lo stadd
cancellando copiandolo. I fatti che i byte risultano essere zero e che i byte zero provengono/dev/zero
invece da qualche altra fonte di zero, sono dettagli minori.