web-dev-qa-db-fra.com

Clonage avec la commande DD

Comment puis-je sauvegarder une partition (pas le disque entier) sur une autre partition d'un disque dur externe en utilisant DD?

J'ai réalisé ceci avec la commande suivante:

Sudo dd if=/dev/sda6 of=/dev/sdb3 bs=1M 

Cependant mes exigences sont:

  1. J'ai besoin de sauvegarder /dev/sda6 et de le stocker sous forme de fichier image (.img) dans /dev/sdb3

  2. De préférence en tant que fichier image compressé (.gz) (c'est en fait ce que j'essaie de réaliser)

(Voici mes tentatives stupides qui, évidemment, n'ont pas fonctionné:

Sudo dd if=/dev/sda6 of=/dev/sdb3/backup.img bs=4096 conv=notrunc,noerror

Sudo dd bs=1M if=/dev/sda6 | gzip -c > /dev/sdb3/backup.gz
2
Din

Sauf si /dev/sdb3 est monté en fait sur /dev/sdb3 (j'en doute, recherchez des informations sur les périphériques et les points de montage), vous devez:

  1. Découvrez où /dev/sdb3 est monté. Utilisez la commande mount pour cela. Supposons que /dev/sdb3 soit monté dans /home.
  2. Pointez votre fichier en écrivant à cet endroit:

    Sudo dd if=/dev/sda6 of=/home/backup.img
    
  3. Une fois cela fait, vérifiez que le fichier img contient ce que vous attendez.

En outre, est-il nécessaire de sauvegarder l'intégralité de la partition? Je trouve généralement plus facile et plus utile de sauvegarder des fichiers en utilisant rsync ou quelque chose de similaire, puis en compressant le cas échéant le répertoire de sauvegarde obtenu. Mais c'est vraiment à vous de décider.

4
roadmr

Ce que vous voulez faire implique 3 étapes simples:

  1. Création d'un fichier disque
  2. Copier les données de la partition dans le fichier disque
  3. Compresser le fichier disque

Création d'un fichier disque

  1. Monter et CD sur la partition où vous souhaitez conserver un fichier de disque
  2. Utilisez fallocate pour créer et préallouer des blocs dans un fichier de disque. C'est beaucoup plus rapide que de créer un fichier en le remplissant de zéros à l'aide de dd ou d'autres outils. Pour spécifier la taille du fichier de disque, vous pouvez utiliser les préfixes MB/MiB/GB/GiB. Par exemple, si vous voulez une image disque de taille 50 Gio, vous devez

    $ fallocate -l 50GiB part_backup.img

  3. Formatez le fichier disque. Dans cet exemple, j'utilise ext4 et désactive la fonction de journalisation car elle n'est pas nécessaire dans ce cas.

    $ mkfs.ext4 -O '^has_journal' part_backup.img

  4. Maintenant que notre fichier de disque est prêt, montez-le avec losetup. Passez l'option --show pour qu'elle imprime le périphérique de bouclage sur lequel votre fichier de disque est monté, par exemple /dev/loop0

    $ Sudo losetup --show -f part_backup.img

  5. Créez un dossier de montage dans /mnt et montez le périphérique de bouclage dans le dossier.

    $ Sudo mount /dev/loop0 /mnt/my_disk_file

Copier les données de la partition dans le fichier disque

  1. Montez la partition contenant les fichiers que vous souhaitez sauvegarder et identifiez le point de montage
  2. Utilisez rsync pour copier les fichiers dans le fichier disque que vous venez de monter.

    $ Sudo rsync -avzPSX /mnt/media_partition/ /mnt/my_disk_file

  3. Veuillez regarder ce que chacun de ces rsync choisit de faire dans l'homme de rsync si vous êtes inutilisé. Lisez également la note sur la fin de la barre oblique dans la source de sauvegarde.

Compresse le fichier disque

  1. Démontez le fichier disque comme d'habitude

    $ Sudo umount /mnt/my_disk_file
    $ Sudo losetup -d /dev/loop0

  2. Utilisez gzip pour compresser le fichier disque

1
Flint