GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Dd crée-t-il un fichier énorme lorsque j'essaie de créer une image disque de sauvegarde ?

J'ai essayé de faire fonctionner CUDA sur mon système et en train de jouer avec les pilotes nvidia, j'ai suffisamment cassé Ubuntu pour que j'aie dû reformater ma partition de disque plusieurs fois. J'ai maintenant été frappé avec ce bâton suffisamment de fois pour essayer de sauvegarder ma partition une fois que j'ai installé tous mes outils, programmes et autres, en utilisant dd (comme recommandé par un ami).

Cependant, quand j'ai couru

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

J'ai finalement eu une erreur indiquant que mon lecteur manquait d'espace. C'était étrange pour moi, car la partition est assez grande et je n'ai qu'une nouvelle installation d'ubuntu avec quelques (petits) programmes dessus.

J'ai pensé que ce qui pourrait se passer, c'est qu'il essayait récursivement d'écrire une copie de ce qu'il avait déjà écrit, alors j'ai essayé d'écrire le fichier directement sur une autre partition à la place :

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

Mais cela a pris une éternité et j'ai interrompu le processus une fois que le fichier a atteint une taille dont j'étais à peu près sûr qu'il était trop gros pour ne contenir que les données que je voulais.

Qu'est-ce qui se passe? Est-ce que /media a les autres partitions montées et traite donc les autres partitions comme faisant partie de /dev/sda4 ? Est-ce que dd copie l'intégralité de la partition octet par octet, en ignorant quels octets contiennent réellement des fichiers ?

Et quoi qu'il en soit, comment puis-je faire ce que j'essaie de faire, correctement ?

Oh, et voici mes informations sur le disque, au cas où cela serait important :

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

Réponse acceptée :

Si vous copiez une partition avec dd , le fichier de sortie sera aussi gros que la partition. dd effectue une copie physique du disque, il n'a aucune connaissance de l'espace vierge ou utilisé.

Si vous compressez le fichier de résultat, vous économiserez beaucoup d'espace, étant donné que l'espace vide se comprimera très bien (attention, cela va être très en termes de calcul lourd). Vous pouvez même compresser la sortie de dd à la volée, avec quelque chose sur la ligne dd if=/dev/sdaX | gzip -c > compressed_file.gz .

vraiment important :

De plus, vous ne pouvez pas (jamais) faire un dd sur une partition live (montée),
les données enregistrées seront totalement incohérentes et
absolument pas utiles pour une sauvegarde. Pensez-y :des blocs de données sont
continuellement alloués, déplacés et supprimés ; c'est comme prendre une photo
avec un long temps d'exposition sur une cible en mouvement.

Pour copier la partition avec dd vous devez démarrer à partir d'un autre -
live USB ou autre.

Que ferais-je pour résoudre le problème en cours (remarquez, uniquement des instructions génériques, car vous devez savoir ce que vous faites)

En relation :Plusieurs comptes Dropbox sur le même ordinateur ?

Première option achetez Norton Ghost ou explorez les options open source :partimage et clonezilla (je n'ai jamais testé moi-même).

Deuxième option faites-le manuellement :

  1. créez une partition supplémentaire pour les sauvegardes, appelez-la /dev/sdX (ou utilisez une partition de données commune, peu importe).

  2. pour sauvegarder :

    • démarrer avec une clé USB en direct
    • monter la vraie partition racine dans /real
    • monter la partition supplémentaire dans /extra
    • faire un gros tar, sur la ligne (cd /real && tar cvf /extra/mybck.tar.gz)
  3. restaurer

    • démarrer avec une clé USB en direct
    • monter la vraie partition racine dans /real
    • monter la partition supplémentaire dans /extra
    • restore, sur la ligne de (cd /real && tar xvpf /extra/mybck.tar.gz) , attention au p option pour conserver les métadonnées
    • chrooter dans /real
    • mettre à jour grub ou le chargeur de démarrage que vous utilisez

Vous pouvez remplacer tar avec votre archiveur préféré, assurez-vous simplement qu'il respectera la propriété/le mode des fichiers. rsync vaut la peine d'être exploré.


Ubuntu
  1. Éviter un fichier supplémentaire lors de la création de Tar.gz ?

  2. Créer une image de sauvegarde (clonage)

  3. Étiquette de disque non reconnue lors de la création d'une partition

  4. Créer une image de la partition Windows sous Linux

  5. Comment créer un fichier image de partition formatée à partir de zéro ?

Commande Fdisk sous Linux (créer des partitions de disque)

DD Utility - Sauvegardez et restaurez facilement les fichiers d'image disque dans Ubuntu

Créer un fichier de sauvegarde d'image ISO à partir d'un dossier dans Ubuntu 17.10

Comment monter un fichier de disque dur virtuel (VHD) dans Ubuntu Linux ?

Comment créer des partitions de disque sous Linux

Comment créer des partitions de disque à l'aide de cfdisk