Dipende dall'esatta funzione della partizione e dallo scopo della copia. Tuttavia, dirò che in generale dd
è uno strumento inappropriato per il backup dei filesystem . Non è nemmeno quello a cui era destinato.
Perderà molto tempo a copiare sezioni vuote della partizione.
Può portare a incongruenze se il filesystem è attualmente montato, in parte perché è un'entità a livello di sistema operativo e potrebbe non essere sincronizzata con il dispositivo a blocchi sottostante. Chiamare sync
inizialmente non aiuterà molto in questo, poiché il processo non è istantaneo.
Usa cp -a
o rsync
invece. È quindi necessario creare la partizione di destinazione, ovviamente, quindi non è così facile da eliminare, ma è molto più sicura e flessibile. Se devi creare un'immagine del filesystem , vedi sotto.
Se hai intenzione di copiare il filesystem di root, non usarlo assolutamente dd
. Devi usare qualcosa come rsync -ax
(o cp -ax
su singole directory di livello superiore), perché ci sono un sacco di cose che NON devono essere nella copia . Su Linux, questo include:
/dev
/lost+found
/mnt
/proc
/run
/sys
/tmp
Alcune di queste sono in realtà interfacce del kernel e non directory reali su disco. Se li copi, stai copiando un mucchio di informazioni che non verranno applicate nella copia; se provi a far funzionare un sistema con esso, ciò comporterà solo uno spazio sprecato poiché l'interfaccia reale verrà montata in cima. Altri contengono informazioni temporanee in uso durante l'esecuzione dei processi e questi sono più un problema, poiché il sistema non sarà in grado di risolvere i rifiuti se li copi.
Se vuoi creare un file di immagine del filesystem di root (o di qualsiasi filesystem), crea un file di immagine vuoto - questo è un uso appropriato per dd
:
dd if=/dev/zero of=whatever.img bs=1024 count=1000000
È un'immagine da 1024 MB (1000000 * 1024). Regola count
se lo desideri di altre dimensioni. Creare, ad esempio, un ext
filesystem nel file :
mke2fs whatever.img
Ti avvertirà che questo non è un vero dispositivo a blocchi. Procedere. Ora monta il file immagine:
mount whatever.img /mnt/img
/mnt/img
deve esistere ma potrebbe tutto. Ora puoi rsync
(o cp -a
) entrare /mnt/img
. Il contenuto rimarrà all'interno whatever.img
quando lo smonti.
Tuttavia...
Per essere chiari, usa il metodo di immagine del filesystem appena descritto se hai assolutamente bisogno di un file di immagine per qualsiasi motivo. Se il tuo obiettivo è copiare la partizione su un altro disco rigido, non hai bisogno di un'immagine : crea una nuova partizione con un filesystem vuoto su quell'unità, montala e copia lì. Potresti invece semplicemente mettere il contenuto del filesystem in una directory vuota e archiviarlo:
tar -czf myarchive.tar.gz [the directory path]
È quindi possibile distribuire questo in una partizione esistente (vuota o di altro tipo) posizionandolo nel livello superiore e usando:
tar -xzf myarchive.tar.gz
Attenzione che sovrascriverà i file esistenti se i loro percorsi corrispondono a qualcosa nell'archivio. Altrimenti lascerà la stessa gerarchia di directory esistente.