Pagina 1 di 2 12 UltimoUltimo
Mostra risultati da 1 a 10 di 16

Discussione: [Guida] - Clonare dischi (o partizioni) da shell con "dd"

  1. #1
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Messaggi
    452
    Grazie dati 
    91
    Grazie ricevuti 
    268
    Ringraziato in
    174 post

    [Guida] - Clonare dischi (o partizioni) da shell con "dd"

    Linux ha in dotazione un semplice ma potente comando che consente di creare immagini RAW 1:1 di partizioni o di interi dischi.

    Questo può essere utile sia per normali operazioni di backup per le quali esistono comuque distro come SysRescueCD.

    SysRescueCD, con partimage, non effettua la copia RAW della partizione, ma del solo file system, cosa che riduce notevolmente la quantità di dati copiati, ma non rappresenta una vera copia 1:1 del disco o della partizione.

    Avere una copia 1:1 può essere utile, per esempio, se si vuole copiare l'intero disco di un notebook comprese le partizioni di ripristino per riaverlo lindo e pinto come lo si è comprato in caso di disastri accidentali o... colposi .



    Tutto questo va fatto da console per sfruttare al meglio la potenza dei comandi impiegati senza la sovrastruttura (ed i limiti di eventuali front-end grafici).



    Ecco la guida che ai meno navigati può sembrare ostica, ma con un minimo di confidenza col pinguino risulta abbastanza commestibile.

    Il comando "dd" legge byte per byte una qualsiasi periferica o file e ne indirizza il risultato al file o periferica di output.



    dd accetta i parametri if= (input file) e of= (output file)



    Per clonare un disco bisogna avere i privilegi di root, quindi, una volta aperto un terminale nel vostro gnome o KDE bisogna prima di tutto digitare

    Codice:
    Only registered members can view code.
    oppure

    Codice:
    Only registered members can view code.
    e digitare la password di root



    L'esempio prende in considerazione la clonazione di un intero disco rigido reindirizzando il file prodotto ad un'unita disco esterna (USB), il tutto con le notazioni e convenzioni du un sistema *buntu (debian).


    Bisogna prima di tutto individuare l'unità disco origine e quella di destinazione

    Codice:
    Only registered members can view code.
    Avremo un otput del tipo:
    Disco /dev/sda: 82.0 GB, 81964302336 byte
    255 testine, 63 settori/tracce, 9964 cilindri
    Unità = cilindri di 16065 * 512 = 8225280 byte
    Identificativo disco: 0x0eb34caf

    Dispositivo Boot Start End Blocks Id System
    /dev/sda1 * 1 1958 15727603+ 7 HPFS/NTFS
    /dev/sda2 1959 9963 64300162+ f W95 Esteso (LBA)
    /dev/sda5 1959 9963 64300131 7 HPFS/NTFS

    Disco /dev/sdb: 40.0 GB, 40027029504 byte
    255 testine, 63 settori/tracce, 4866 cilindri
    Unità = cilindri di 16065 * 512 = 8225280 byte
    Identificativo disco: 0xf6b3f6b3

    Dispositivo Boot Start End Blocks Id System
    /dev/sdb1 * 1 3953 31746081+ 7 HPFS/NTFS
    /dev/sdb2 3954 4584 5068507+ 83 Linux
    /dev/sdb3 4585 4715 1052257 82 Linux swap / Solaris
    /dev/sdb4 4716 4866 1212907+ 83 Linux

    Disco /dev/sdc: 4143 MB, 4143972352 byte
    33 testine, 63 settori/tracce, 3893 cilindri
    Unità = cilindri di 2079 * 512 = 1064448 byte
    Identificativo disco: 0xb032b032

    Dispositivo Boot Start End Blocks Id System
    /dev/sdc1 * 1 3894 4046832 b W95 FAT32

    Assumiamo quindi di voler clonare il disco rigido interno /dev/sda e salvare l'immagine "backup" sull'unità USB /dev/sdc1 montata in /mnt/sdc1


    NOTA: E' importante che l'unità che si va a clonare sia smontata per evitare che qualcosa vada a cambiarne il contenuto "in corso d'opera" con risultati imprevedibili, quindi ricordatevi di dare un umount a tutte le partizioni montate relative a quell'unità. Nel nostro esempio : sda1 e sda5.


    Naturalmente ci servirà comprimere l'immagine per non ritrovarci un file mastodontico che non sapremmo dove mettere.

    Per questo abbiamo a disposizione l'ottimo algoritmo di compressione gzip

    Per clonare:
    Codice:
    Only registered members can view code.
    Dove dd legge il disco /dev/sda ne invia il risultato a gzip, che a sua volta lo comprime lo scrive nel file.

    Per l'operazione inversa, vale a dire per ripristinare, il comando è:
    Codice:
    Only registered members can view code.
    Dove gzip decomprime il file e ne invia al risultato a dd che lo scrive sulla periferica.

    Piccolo problema: spesso le unità esterne sono formattate in FAT32 che supporta file fino a 4GB oppure si vorrà poi conservare lìimmagine su DVD il cui file system supporta massimo 2GB.

    Qui soccorre un altro comanduccio presente in Linux: split, che serve appunto a dividere il file in parti di una data dimensione.

    Poniamo di voler suddividere il risultatato in parti di 2GB, compatibili sia con i DVD che con FAT32.

    Per clonare daremo:
    Codice:
    Only registered members can view code.
    Dove dd legge la periferica, invia a gzip, che invia a split, che divide in parti di 2048MB (2GB) e lo scrive sul disco di destinazione.

    Notate che il nome del file di destinazione finisce con un "."

    Questo perché split aggiunge alla fine del nome del file "aa" "ab" "ac" e così via per distinguere i vari frammenti.

    Per rimettere le cose a posto invece usiamo l'ennesimo comando linux: "cat", che unisce (conCATena) tutto quello che gli viene dato in pasto.

    Codice:
    Only registered members can view code.
    Che preleva i vari pezzi li invia a gzip, che li scompatta e li passa a dd che li scrive sul device.

    dd consente un'altra utile funzione che è quella di copiare il bootsector di un disco rigido:

    Per copiare il MBR
    Codice:
    Only registered members can view code.
    per ripristinare il MBR
    Codice:
    Only registered members can view code.
    Ultima modifica di ginalfa; 06-04-10 alle 11: 46.

    Rispondi citando Rispondi citando

  2. # ADS
    Google Adsense Circuito Adsense
    Data registrazione
    da sempre
    Messaggi
    molti
     
  3. #2
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Località
    /dev/null
    Messaggi
    830
    Grazie dati 
    132
    Grazie ricevuti 
    426
    Ringraziato in
    341 post

    Riferimento: LINUX: Clonare dischi (o partizioni) da shell con "dd"

    Bella guida ,
    aggiungerei solo qualche piccolo appunto però: se non si usa gzip (o in generale non la si comprime) si può creare un immagine del disco montabile da terminale, in modo da potervi accedere senza dover necessariamente ripristinarla. Basta montare il modulo loop se non è compilato come buit-in nel kernel (modprobe loop) e poi passare il parametro loop a mount (mount [immagine] /mnt/disco -o loop).

    Altro particolare: passando il parametro -9 a gzip si ottiene la massima compressione (più lenta). Sarebbe da sperimentare l'utilizzo con lzma, che, seppur avendo tempi di compressione lunghi, ottiene i migliori risultati (un kernel arriva ad occupare anche fino al 33% in meno con lzma rispetto a gzip). Ovviamente i tempi di estrazione sono più lunghi rispetto a gzip, ma migliori di bzip2.

    Rispondi citando Rispondi citando

  4. #3
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Messaggi
    452
    Grazie dati 
    91
    Grazie ricevuti 
    268
    Ringraziato in
    174 post

    Riferimento: LINUX: Clonare dischi (o partizioni) da shell con "dd"

    Giusto. Io comunque ho finalizzato allo storage dell'immagine e non alla fruizione con mount -o loop.
    Per i diversi metodi compressione, perchè non posti le righe con le opportune modifiche?

    Rispondi citando Rispondi citando

  5. #4
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Località
    /dev/null
    Messaggi
    830
    Grazie dati 
    132
    Grazie ricevuti 
    426
    Ringraziato in
    341 post

    Riferimento: LINUX: Clonare dischi (o partizioni) da shell con "dd"

    Mi sono dimenticato di questa discussione

    Dunque
    Per i diversi metodi compressione, perchè non posti le righe con le opportune modifiche?
    Beh, per prima cosa non sono su Linux , quindi andrei a mente...

    Codice:
    Only registered members can view code.
    Per la massima compressione di gzip.

    Per lzma... non mi ricordo sinceramente il comando ed è solamente un'idea buttata lì :). Bisognerebbe prima fare qualche prova. In ogni caso dovrebbe bastare sostituire gzip con lzma o il giusto comando.
    Ultima modifica di K.a.o.s.; 10-04-10 alle 21: 40.

    Rispondi citando Rispondi citando

  6. #5
    Data registrazione
    Feb 2010
    Località
    NCC1701
    Messaggi
    3,822
    Grazie dati 
    1,307
    Grazie ricevuti 
    1,323
    Ringraziato in
    996 post

    Backup pendrive dove è installato Debian con mbr

    Ciao a tutti!
    Ovviamente grazie della guida al mitico ginalfa.
    Mi chiedevo come si fa a fare il backup compreso l'mbr di una pendrive dove è installato Debian 8.1.0 con dd, gzip e split. Installato non una live USB.
    Bisogna prima (da altro linux installato o da una live) fare il backup dell'mbr a parte e poi la pendrive bootable, e quindi poi fare prima il restore dell'mbr (in caso) e poi il restore del resto, oppure c'è un modo per farlo contemporaneamente?
    Io ho una licenza di Acronis ma per linux non è che è andata sempre a buon fine.
    Grazie comunque!
    Ultima modifica di Kirk78; 19-06-15 alle 21: 16. Motivo: scusami ginalfa: ho errato autore :(

    Rispondi citando Rispondi citando Il mio PC

  7. #6
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Messaggi
    452
    Grazie dati 
    91
    Grazie ricevuti 
    268
    Ringraziato in
    174 post

    Riferimento: [Guida] - Clonare dischi (o partizioni) da shell con "dd"

    dd copia brutalmente byte per byte da cima a fondo, quindi con la sintassi che trovi nel post copi anche la partition table e il MBR.

    Rispondi citando Rispondi citando

  8. #7
    Data registrazione
    Feb 2010
    Località
    NCC1701
    Messaggi
    3,822
    Grazie dati 
    1,307
    Grazie ricevuti 
    1,323
    Ringraziato in
    996 post

    Riferimento: [Guida] - Clonare dischi (o partizioni) da shell con "dd"

    Chiedo innanzitutto scusa a ginalfa che è l'autore (già corretto ) e contento di avere una tua risposta!
    Ma allora
    Codice:
    Only registered members can view code.
    copia anche l'MBR?
    Sopra vedevo che c'è un comando specifico per l'mbr
    Codice:
    Only registered members can view code.
    e quindi pensavo fosse diversificato e bisognasse fare entrambe le operazioni.



    edit ha anche una partizione di swap, in questo caso la home non è separata
    Ultima modifica di Kirk78; 19-06-15 alle 21: 34. Motivo: swap

    Rispondi citando Rispondi citando Il mio PC

  9. #8
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Messaggi
    452
    Grazie dati 
    91
    Grazie ricevuti 
    268
    Ringraziato in
    174 post

    Riferimento: [Guida] - Clonare dischi (o partizioni) da shell con "dd"

    Quel codice serve a copiare SOLO MBR, o meglio, i primi 512 byte in testa all'unità. Se non ricordo male in quei 512 bytes c'è anche la partition table. In seguito magari posso essere più preciso... Sto scrivendo dal cell
    Ultima modifica di ginalfa; 20-06-15 alle 08: 24.

    Rispondi citando Rispondi citando

  10. #9
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Messaggi
    452
    Grazie dati 
    91
    Grazie ricevuti 
    268
    Ringraziato in
    174 post

    Riferimento: [Guida] - Clonare dischi (o partizioni) da shell con "dd"

    Dunque, come ricordavo, i primi 512 bytes di un disco contengono il MBR e la PT. Piu precisamente i primi 446 bytes il MBR vero e proprio ed i successivi fino al 512 la PT.
    la sintassi è
    Codice:
    Only registered members can view code.
    dove quel 512 può essere impostato a 446 per il solo MBR.

    Per la cronaca esiste un port di dd ed altri comandi anche per windows, anche se la sintassi è un po' differente e più complicata nell'individuazione delle unità. Personalmente preferisco usarli in linux.

    Il limite di dd è che si porta dietro spietatamente tutta l'unità, quindi anche i settori vuoti e secondo me è conveniente per la sua rapidità solo per piccole unità.
    Se si tratta di fare copie di sistemi installati, magari con diverse partizioni (perchè copiare pure la swap?) è meglio usare clonezilla, che ha un sistema più raffinato di copia, che esclude i settori inutilizzati, con benefici sul peso dell'immagine finale.

    P.S.
    Che bello tornare qui dopo tanto tempo!!!!
    Ultima modifica di ginalfa; 20-06-15 alle 08: 22.

    Rispondi citando Rispondi citando

  11. #10
    Data registrazione
    Feb 2010
    Località
    NCC1701
    Messaggi
    3,822
    Grazie dati 
    1,307
    Grazie ricevuti 
    1,323
    Ringraziato in
    996 post

    Riferimento: [Guida] - Clonare dischi (o partizioni) da shell con "dd"

    Citazione Originariamente scritto da ginalfa
    Che bello tornare qui dopo tanto tempo!!!!
    Carissimo ginalfa sono estremamente felice di rivederti quì su CT! Bentornato, ci mancavi!

    perchè copiare pure la swap?
    Probabilmente ho detto una sciocchezza ma è solo un anno che sto lavorando di più su linux. Scusami della tonnaggine . A me basta che se la pendrive con Debian 8.1 installato, ergo piccola unità da 16GB, va down per qualche motivo ho la possibilità velocemente a ripristinarla all'origine senza doverla reinstallare.

    altri comandi anche per windows
    win... e che roba è?

    si porta dietro spietatamente tutta l'unità, quindi anche i settori vuoti
    Ma con gzip -9 dovrebbero essere compressi al 100%. Oppure no?

    In buona sostanza
    Codice:
    Only registered members can view code.
    copia tutta ivi compresa la MBR e partition table: corretto?

    Ho un brutto rapporto con clonezilla... già un paio di volte, però anni fa, mi ha fatto lo scherzetto di non funzionare oltre che, a me, mi faceva dei file belli grossi e poco compressi. Ma magari adesso è più ottimizzato.


    Rispondi citando Rispondi citando Il mio PC

Segnalibri

Regole di scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
Cookies:direttiva 2009/136/CE (E-Privacy)

Il sito utilizza cookies propri e di terze parti per maggiori informazioni faq - Termini di servizio - Cookies
Il forum non puo' funzionare senza l'uso dei cookies pertanto l'uso della community è vincolato dall'accettazione degli stessi, nel caso contrario siete pregati di lasciare la community, proseguendo la navigazione acconsenti all’uso dei cookie