GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Dd sta creando un file enorme quando provo a creare un'immagine del disco di backup?

Ho cercato di far funzionare CUDA sul mio sistema e nel processo di pasticcio con i driver nvidia ho rotto Ubuntu abbastanza gravemente da dover riformattare la mia partizione del disco più volte. Ora sono stato colpito con quel bastone abbastanza volte che sto provando a eseguire il backup della mia partizione una volta che ho installato tutti i miei strumenti, programmi e cose, usando dd (come consigliato da un amico).

Tuttavia, quando ho corso

sudo dd if=/dev/sda4 of=~/backup.img

Alla fine ho ricevuto un errore che la mia unità ha esaurito lo spazio. Questo è stato strano per me, dal momento che la partizione è piuttosto grande e ho solo una nuova installazione di Ubuntu insieme ad alcuni (piccoli) programmi su di essa.

Ho pensato che quello che potrebbe essere successo è che stava cercando ricorsivamente di scrivere una copia di ciò che aveva già scritto, quindi ho provato a scrivere il file direttamente su un'altra partizione:

sudo dd if=/dev/sda4 of=/media/Ye\ Olde\ Data/ubuntu\ reinstall\ backup/backup.img

Ma ci è voluto un'eternità e ho interrotto il processo una volta che il file ha raggiunto una dimensione che ero abbastanza sicuro fosse troppo grande per contenere solo i dati che volevo.

Che cosa sta succedendo? È che /media ha le altre partizioni montate e quindi tratta le altre partizioni come parte di /dev/sda4? È che dd copia l'intera partizione byte per byte, ignorando quali byte contengono effettivamente dei file?

E in ogni caso, come posso fare quello che sto cercando di fare, correttamente?

Oh, ed ecco le informazioni sul mio disco, nel caso siano importanti:

sudo sfdisk -l /dev/sda

Disk /dev/sda: 62260 cylinders, 255 heads, 63 sectors/track
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sda1   *      0+     12-     13-    102400    7  HPFS/NTFS/exFAT
/dev/sda2         12+  14602-  14590- 117187500    7  HPFS/NTFS/exFAT
/dev/sda3      29192+  62260-  33069- 265622493+   5  Extended
/dev/sda4      14602+  29191-  14590- 117193728   83  Linux
/dev/sda5      61228+  62260-   1032-   8287232   82  Linux swap / Solaris
/dev/sda6      29192+  61227   32036- 257329138+   7  HPFS/NTFS/exFAT

Risposta accettata:

Se copi una partizione con dd , il file di output sarà grande quanto la partizione. dd esegue una copia fisica del disco, non è a conoscenza dello spazio vuoto o utilizzato.

Se comprimi il file dei risultati risparmierai molto spazio, dato che lo spazio vuoto si comprimerà molto bene (attenzione, questo sarà computazionalmente molto pesante). Puoi anche comprimere l'output di dd al volo, con qualcosa sulla riga di dd if=/dev/sdaX | gzip -c > compressed_file.gz .

molto importante:

Inoltre, non puoi (mai) fare un dd su una partizione live (montata)
, i dati registrati saranno totalmente incoerenti e
assolutamente non utili per un backup. Pensaci:i blocchi di dati vengono
continuamente allocati, spostati ed eliminati; è come scattare una foto
con un tempo di esposizione lungo a un bersaglio in movimento.

Per copiare la partizione con dd è necessario eseguire l'avvio da uno diverso –
USB live o altro.

Cosa farei per risolvere il problema in questione (attenzione, solo istruzioni generiche perché devi sapere cosa stai facendo)

Correlati:più account Dropbox sullo stesso computer?

Prima opzione acquista Norton Ghost o esplora le opzioni opensource:partimage e clonezilla (mai testato da solo).

Seconda opzione fallo manualmente:

  1. crea una partizione aggiuntiva per i backup, chiamala /dev/sdX (o usa una partizione dati comune, qualunque cosa).

  2. per eseguire il backup:

    • avvio con live usb
    • monta la vera partizione di root in /real
    • monta la partizione aggiuntiva in /extra
    • fai un grosso tar, sulla riga di (cd /real && tar cvf /extra/mybck.tar.gz)
  3. da ripristinare

    • avvio con live usb
    • monta la vera partizione di root in /real
    • monta la partizione aggiuntiva in /extra
    • ripristina, sulla riga di (cd /real && tar xvpf /extra/mybck.tar.gz) , fai attenzione al p opzione per preservare i metadati
    • chroot in /real
    • aggiorna grub o il bootloader che stai utilizzando

Puoi sostituire tar con il tuo archiviatore preferito, assicurati solo che rispetterà la proprietà/modalità dei file. rsync vale la pena esplorare.


Ubuntu
  1. Linux:come creare un file immagine di partizione formattato da zero?

  2. Creare un backup dell'immagine (clonazione)

  3. Esclusione della directory durante la creazione di un file .tar.gz

  4. Quando sarebbe utile creare un hard link?

  5. Come creare un file immagine di partizione formattato da zero?

Comando Fdisk in Linux (Crea partizioni del disco)

Utility DD:backup e ripristino semplici dei file immagine del disco in Ubuntu

Crea un file di backup dell'immagine ISO da una cartella in Ubuntu 17.10

Come montare il file del disco rigido virtuale (VHD) in Ubuntu Linux?

Come creare partizioni del disco su Linux

Come creare partizioni del disco usando cfdisk