Dd se = / dev / zero di = / dev / sda cancellerà una tabella delle partizioni preesistente?


13

Sarà # dd if=/dev/zero of=/dev/sdaspazzare 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?


6
Non sta /dev/zerocancellando qualcosa, lo sta ddcancellando copiandolo. I fatti che i byte risultano essere zero e che i byte zero provengono /dev/zeroinvece da qualche altra fonte di zero, sono dettagli minori.
Chrylis

2
Se desideri semplicemente cancellare la tabella delle partizioni, wipefs potrebbe essere più affidabile.
pipe il

Risposte:


23

Sarà dd if=/dev/zero of=/dev/sdaspazzare 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 ddscriverà 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/sdasarebbe 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/sdaO cat /bin/ls > /dev/sdaavrebbe 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/zeroper sé non fa nulla di più rispetto a qualsiasi normale archiviazione.)


Nota a margine: se l'output di /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/sdasia ancora necessaria una reinstallazione MBR (più comunemente ) , per rendere nuovamente avviabile il sistema.
Peter - Ripristina Monica il

8
@peterh Si noti che stanno reindirizzando il file lsbinario 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). ;)
n.

Oh sì, potresti usare anche l'output di ls. Un elenco di /usr/binsarebbe probabilmente abbastanza lungo. Stavo per usare solo echocome 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)
ilkkachu il

1
Probabilmente dovresti usare bs e contare con dd per questo, altrimenti andrà avanti per qualche tempo, devi solo azzerare il settore. 512 byte per i dischi legacy. (vedi @ n.st in basso) In effetti la tabella delle partizioni è alla fine di questo ed è abbastanza piccola da consentirti di fare una copia e zero con un editor esadecimale prima di copiarla per preservare il contenuto di avvio. Ci sono anche strumenti per questo, è comune per l'inizializzazione del disco NAS farlo.
mckenzm,

1
Volevo solo aggiungere che in caso di unità GPT, DEVI anche pulire l'estremità del disco. Un'implementazione GPT conforme controllerà la tabella secondaria alla fine del disco e riscriverà anche la prima parte (ignorando qualsiasi cosa tu abbia già lì). Vedi: news.ycombinator.com/item?id=18541493
wbkang

10

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/zeroo 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.


1
Quasi a destra - la tabella delle partizioni (vecchia, di tipo MBR) risiede nei byte 1BE - 1FD dell'MBR. I primi byte contengono l'IBL (caricatore di avvio iniziale).
RudiC,

@RudiC Un buon punto, l'ho affermato più precisamente ora.
n.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.