J'aime cloner une partition entière ou un disque dur entier sur un disque externe plus grand, mais créer un fichier fragmenté. J'utilise souvent dd
pour le clonage, mais cela ne prend pas en charge les fichiers fragmentés. Pour contourner le problème, j'ai utilisé quelque chose comme:
cp --sparse=always <(dd if=/dev/sda1 bs=8M) /mount/external/backup/sda1.raw
Cependant, ceci est un peu trop délicat à mon goût et ne me permet pas de reprendre le processus si avorté. Il est amusant qu’il existe un outil NTFS pour this ( ntfsclone
), mais il n’existe aucun outil de ce type pour les systèmes de fichiers natifs de Linux (EXT2-4).
Existe-t-il un meilleur outil pour cela, par exemple une dd
variante avec un support fragmenté? Je ne recherche pas de logiciel propriétaire pour les sauvegardes sur disque, mais souhaite simplement créer une copie clonée clairsemée que je peux monter en tant que périphérique de boucle si nécessaire.
la source
cp
, il ne m'est jamais venu à l'esprit que vous pouviez copier une image disque de manière éparse. Je les ai toujours juste compressées si j'avais besoin de gagner de la place. Maintenant, pourquoi est-ce dans une question pas une réponse?Réponses:
Vous voulez
dd_rescue
.la source
dd_rescue
ligne, j'ai découvert qu'il existe également un outil différent appeléddrescue
(sans le trait de soulignement) qui a été développé indépendamment de,dd_rescue
mais semble en principe faire la même chose. Je viens de mentionner cela ici en tant que général FYI.dd_rescue
etddrescue
ne sont pas la même chose. Théoriquement, ils font le même travail, mais en général, j'ai eu plus de chance avec les plus vieux / originauxdd_rescue
.-s
la position à la commande d'origine. (Cela ressemblerait à celadd_rescue -a -b 8M -s 42000k /dev/sda1 /mount/external/backup/sda1.raw
.)Juste pour être complet, l’appel à ddrescue . Le drapeau
--sparse
ou-S
permet à la destination d'être écrite de manière peu précise:Ou avec option longue:
Ou si vous préférez les MiB :
Pour que le sauvetage puisse être interrompu et repris, vous pouvez également utiliser un fichier journal:
Notez que GNU
ddrescue
etdd_rescue
sont des programmes différents. Mais GNUddrescue
semble être plus répandu. Par exemple, il est déjà fourni avec GRML .la source
dd if=sda1.raw of=/dev/sdb1
. Toutefois, pour utiliser ddrescue lors de la restauration, il vous suffit de remplacer la source / destination utilisée pour la récupération par la nouvelle source / destination, de préférence avec un nouveau fichier journal. Si possible (et souvent pas), vous pouvez bien sûr utiliser ddrescue pour copier des données directement du disque source incorrect vers un disque de remplacement.Un correctif a été proposé en 2007 pour fournir une prise en charge des fichiers fragmentés dans GNU dd, mais il semble ne pas l'avoir fait dans coreutils (du moins pas à partir de la 8.4). Je doute que dd ait trop changé depuis, le correctif pourrait s’appliquer à la version actuelle sans trop de travail.
Je suis également très impressionné par l’utilisation créative de
cp
votre question, et cela m’a amené à l’utiliser pour réaliser la reprise (reprise ici de ~ 80M dans la source):Edit: grattez ça. Le second
dd
serait bien sûr de chercher la mauvaise position dans le fichier de sortie, car sa longueur n'est pas la même que celle de l'entrée.la source
cp
- merci!Il suffit d'ajouter mes 2 centimes. Une autre façon de créer un fichier fragmenté à partir d'un disque brut est d' utiliser qemu-img en utilisant quelque chose comme:
Vous pouvez également l'utiliser sur une seule partition. En outre, vous avez la possibilité de convertir le disque / la partition brute vers tout autre format pris en charge par qemu-img (QCOW2, VHD [x], vmdk, etc.).
la source
Une autre option est rsync . Par exemple:
Explication:
-S
/--sparse
pour sauter des blocs épars en écriture-P
/--partial --progress
pour afficher les progrès et conserver les fichiers partiellement transférés--copy-devices
copier le contenu de l'appareilVous pouvez effectuer un ajout
--append
pour reprendre une copie interrompue (ou--append-verify
pour confirmer la somme de contrôle sur les correspondances de données nouvelles et anciennes).Edit : Je viens de me rendre compte que copy-devices.diff est à l’étude et peut ne pas être présent sur de nombreux systèmes (bien qu’il soit inclus dans Fedora , Ubuntu , Debian et autres)
la source
Remarque: cela ne fonctionne pas pour les raisons décrites dans les commentaires, je le laisse ici pour référence.
Surveillez les statistiques de dd en utilisant kill -USR1:
Reprendre en utilisant sauter / chercher:
Sans $ i_bytes, il serait plus difficile de reprendre. Il est probablement plus facile de consigner les statistiques dd dans un fichier en cas de panne de la machine.
la source
cp
écrasera simplement le fichier existant, n'est-ce pas? Je connais leskip
et d'autres options dedd
. La question est lacp
partie.Il existe xfsdump et xfsrestore pour XFS, qui est un système de fichiers natif Linux depuis assez longtemps.
la source
Pourquoi pas simplement:
la source