Punto informatico Network
Canali
20090625121531_705979872_20090625121450_342713463_sl_sync.png

Guida all'utilizzo di dd

30/01/2010
- A cura di
Linux & Open Source - Nella suite di GNU Coreutils è presente un piccolo programmino, semplice e versatile, che può salvarvi la giornata... o essere la vostra rovina.

Tag

Passa qui con il mouse e visualizza le istruzioni per utilizzare i tag!

linux (1) .

Valutazione

  •  
Voto complessivo 5 calcolato su 87 voti

Rimuovere il primo stadio del bootloader

Per azzerare i primi 446 byte di un Master Boot Record da eventuali malware che infettano il settore 0:

dd if=/dev/zero of=/dev/sda bs=446 count=1

Ricordate poi di reinstallare il bootloader, sia esso GRUB o il bootloader di un sistema operativo Microsoft, altrimenti potreste avere un sistema non avviabile!!!

Se invece volessimo azzerare l'intero MBR potremmo usare questo comando:

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

Rimuovendo l'intero MBR rimuoverete sia il bootloader che la tabella di partizione, e dovrete ripetere sia il partizionamento del disco che l'installazione del bootloader.

Rimozione di una tabella di partizione dal Master Boot Record

Viceversa, un utilizzo più avanzato di dd riguarda la rimozione di una tabella di partizione lasciando invariati tutti gli altri dati (bootloader, disk signature, eccetera):

dd if=/dev/zero of=/dev/sda ibs=2 obs=2 seek=223 count=32

Dove pone le dimensioni dei blocchi in lettura a 2 byte, uguale alla dimensione dei blocchi in scrittura. Salta i primi 2*223 byte (446 byte) e sovrascrive con zeri (/dev/zero) i successivi 2*32 byte (i 64 byte della tabella di partizione).

Oppure

dd if=/dev/zero of=/dev/sda ibs=64 obs=2 seek=223 count=1

Dove sostanzialmente l'effetto è lo stesso, ma invece di cancellare 32 blocchi da 2 byte cancella direttamente 1 blocco da 64.

Controllate sempre le opzioni di dd!! Devono corrispondere agli esempi riportati!!

Per maggiori informazioni sul Master Boot Record e sulla sua struttura, potete andare alla scoperta del Master Boot Record in quest'articolo.

Verifica della velocità di dd

In qualsiasi momento potete controllare che cosa stia facendo dd inviandone il segnale SIGUSR1 attraverso kill da un altro terminale. Dovete usare un altro terminale poiché, a meno che non abbiate relegato dd in background (posponendo il carattere & alle righe di comando), esso si prenderà il terminale in cui è stato invocato e, nel caso di scritture particolarmente lunghe potreste aver il bisogno di controllare a che punto sia.

Allora andate in un altro terminale e invocate kill con la seguente riga:

kill -USR1 $(pidof dd)

Ora non dovete fare altro che tornare allo stesso terminale di invocazione di dd e leggere l'output di stderr, lo stesso che compare al termine della scrittura.

Ricordate però che se avete reindirizzato stderr in /dev/null nella riga di invocazione non vedrete scritto nulla da nessuna parte, non importa quante volte ripeterete il kill, né dove andiate a vedere o quanto tempo aspettiate.

Conclusioni

È inutile sottolineare che l'utilizzo di dd è da consigliare solo sotto controllo di un utente esperto, o da parte di uno stesso utente esperto. dd non considera la struttura di un filesystem, ma agisce direttamente sul supporto di memorizzazione fisico e ignora del tutto il supporto logico, che è rappresentato dalle partizioni o dai filesystem stessi, qualora si specifichi una periferica di memorizzazione fisica (sda, sdb, sdc...), quindi è necessaria una gestione responsabile del programma e dei suoi effetti.

Non mi stancherò mai di ripeterlo: dd può diventare uno strumento molto avanzato, e non lo usate se non siete sicuri di ciò che fate.

Iscriviti gratuitamente alla newsletter, e ti segnaleremo settimanalmente tutti i nuovi contenuti pubblicati su MegaLab.it!
Pagina precedente
Procedure intermedie

 

Segnala ad un amico

Tuo nome Tuo indirizzo e-mail (opzionale)
Invia a:
    Aggiungi indirizzo email
    Testo

    © Copyright 2025 BlazeMedia srl - P. IVA 14742231005

    • Gen. pagina: 1.27 sec.
    •  | Utenti conn.: 116
    •  | Revisione 2.0.1
    •  | Numero query: 44
    •  | Tempo totale query: 0.1