Je voudrais copier toute la hiérarchie du système de fichiers d'un lecteur à l'autre, c'est-à-dire le contenu de chaque répertoire ainsi que les fichiers ordinaires sur la plate-forme Linux. Je serais reconnaissant de connaître la meilleure façon de le faire, éventuellement avec les fonctions intégrées de Linux. Le système de fichiers est une famille étendue.
Réponses
Trop de publicités?Comme mentionné dans les commentaires de juniorRubyist, l'approche préférée ici devrait être d'utiliser dd
. La raison principale est la performance, il s'agit d'une copie bloc par bloc au lieu de fichier par fichier.
Cloner une partition
# dd if=/dev/sda1 of=/dev/sdb1 bs=64K conv=noerror,sync status=progress
Cloner un disque entier
# dd if=/dev/sdX of=/dev/sdY bs=64K conv=noerror,sync status=progress
Cloner une partition montée inscriptible
La clé pour cloner une partition qui est montée en lecture-écriture est de la remonter en lecture seule. Ensuite, faites le clonage et enfin remontez-la en lecture-écriture.
# mount -o remount,ro /path/to/mount_point
# dd if=/dev/sda1 of=/dev/sdb1 bs=64K conv=noerror,sync status=progress
# mount -o remount,rw /path/to/mount_point
Note. Cette opération peut avoir des effets secondaires sur les applications en cours. Par exemple, si votre système a des applications qui nécessitent d'écrire sur cette partition particulière exactement quand vous avez besoin de la cloner, ces applications devront être arrêtées pendant que la partition est clonée. Ou si c'est votre propre application, réécrivez-la pour gérer ce scénario.
Cloner un disque avec une ou plusieurs partitions montées et inscriptibles.
La stratégie et les effets secondaires sont les mêmes que pour le Cloner une partition montée inscriptible sauf que cette fois les commandes de remontage sont répétées pour chaque point de montage inscriptible.
# mount -o remount,ro /path/to/writeable_mount_point1
# mount -o remount,ro /path/to/writeable_mount_point..
# mount -o remount,ro /path/to/writeable_mount_pointN
# dd if=/dev/sdX of=/dev/sdY bs=64K conv=noerror,sync status=progress
# mount -o remount,rw /path/to/writeable_mount_point1
# mount -o remount,rw /path/to/writeable_mount_point..
# mount -o remount,rw /path/to/writeable_mount_pointN
Notes finales
La manière préférée et recommandée de cloner un disque/une partition est de le faire sur un système non monté, car cela n'aura pas d'effets secondaires non déterministes. Il en va de même pour les systèmes construits sur le concept de montages en lecture seule.
Références
rsync
"Cette approche est considérée comme meilleure que le clonage de disque avec dd car elle permet d'utiliser une taille, une table de partition et un système de fichiers différents. de partition et de système de fichiers différents, et meilleure que la copie avec cp -a, car elle car elle permet un meilleur contrôle des autorisations de fichiers, des attributs Control Lists (ACLs) et les attributs étendus."
De :
https://wiki.archlinux.org/index.php/Full_system_backup_with_rsync
Page Homme Ici
J'ai essayé les commandes rsync proposées ici mais j'ai finalement obtenu des résultats beaucoup plus propres et rapides avec partclone
. Démontez les partitions source et cible, puis exécutez ce qui suit :
partclone.ext4 -b -s /dev/sd(source) -o /dev/sd(target)
e2fsck -f /dev/sd(target)
resize2fs /dev/sd(target)
Les étapes suivantes sont réalisées :
- Cloner (seulement les parties utilisées de) la partition
- s'assurer que le système de fichiers est correct (resize2fs impose cette étape)
- redimensionner la partition vers le nouveau système de fichiers
Ce qui précède fonctionne dans le cas où la partition cible est de la même taille ou plus grande que la source. Si votre cible est plus petite que la source (mais contient toutes les données), faites ce qui suit :
e2fsck -f /dev/sd(target)
resize2fs -M /dev/sd(target)
partclone.ext4 -b -s /dev/sd(source) -o /dev/sd(target)
resize2fs /dev/sd(target)
resize2fs -M
réduit le système de fichiers à la taille minimale avant de cloner les données.
Notez que partclone
n'est pas installé par défaut sur la plupart des systèmes. Utilisez une distro vivante comme clonezilla ou installer partclone à partir du gestionnaire de paquets de votre distros ( apt-get install partclone
sur les sytèmes basés sur Debian).
Dd' est génial, mais ddrescue (apt install gddrescue) est encore mieux. Si dd est interrompu, il n'y a aucun moyen de redémarrer (une autre bonne raison d'utiliser rsync). Lorsque vous utilisez ddrescue avec un fichier journal, il garde la trace des blocs qui ont été copiés.
Lors de la sauvegarde d'un système à double démarrage Windows/Linux, j'utilise ntfsclone pour les partitions Windows et ddrescue pour la partition Linux et dd pour le MBR. (Je n'ai pas essayé de sauvegarder un système à double démarrage utilisant GPT/UEFI).
Ce que j'aimerais voir, c'est un outil ddrescue capable de créer des fichiers comme ntfsclone où l'espace non alloué est marqué par des caractères de contrôle. Cela rend l'image non montable directement, mais lui permet d'être seulement aussi grande que les données contenues.
Quelqu'un doit inventer le "format d'image spécial" ntfsclone pour ddrescue...
- Réponses précédentes
- Plus de réponses