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?Ce que vous voulez, c'est rsync .
Cette commande peut être utilisée pour synchroniser un dossier, et aussi pour reprendre la copie lorsqu'elle est interrompue à mi-chemin. La commande pour copier un disque est :
rsync -avxHAX --progress / /new-disk/
Les options sont les suivantes :
-a : all files, with permissions, etc..
-v : verbose, mention files
-x : stay on one file system
-H : preserve hard links (not included with -a)
-A : preserve ACLs/permissions (not included with -a)
-X : preserve extended attributes (not included with -a)
Pour améliorer la vitesse de copie, ajoutez -W
( --whole-file
), pour éviter de calculer les deltas/diffs des fichiers. C'est la valeur par défaut lorsque la source et la destination sont spécifiées comme des chemins locaux, puisque le véritable avantage de l'algorithme de transfert delta de rsync est de réduire l'utilisation du réseau.
Pensez également à ajouter --numeric-ids
pour éviter de mapper les valeurs uid/gid par nom d'utilisateur/groupe.
La réponse de Michael Aaron Safyan ne tient pas compte des fichiers épars. -S
corrige ce problème.
De plus, cette variante n'envoie pas de spam avec la progression de chaque fichier et ne fait pas de synchronisation delta, ce qui nuit aux performances dans les cas hors réseau.
Parfait pour copier le système de fichiers d'un lecteur local vers un autre lecteur local.
rsync -axHAWXS --numeric-ids --info=progress2
J'utilise souvent
> cp -ax / /mnt
En supposant que /mnt est le nouveau disque monté sur /mnt et qu'il n'y a pas d'autres montages sur /.
le -x le garde sur un seul système de fichiers.
Ceci doit bien sûr être fait en tant que root ou en utilisant sudo.
Ce lien propose quelques alternatives, dont celle ci-dessus.
http://linuxdocs.org/HOWTOs/mini/Hard-Disk-Upgrade/copy.html
Comme Michael Safyan le suggère ci-dessus, j'ai utilisé rsync
à cette fin. Je suggère d'utiliser des options supplémentaires pour exclure les répertoires que vous ne souhaitez probablement pas copier.
Cette version est assez spécifique aux systèmes basés sur Gnome et Debian/Ubuntu, car elle inclut les sous-répertoires des répertoires personnels des utilisateurs qui sont spécifiques à Gnome, ainsi que le cache des paquets APT.
La dernière ligne exclura tout nommé cache/Cache/.cache, ce qui peut être trop agressif pour certaines utilisations :
rsync -WavxHAX --delete-excluded --progress \
/mnt/from/ /mnt/to/
--exclude='/home/*/.gvfs' \
--exclude='/home/*/.local/share/Trash' \
--exclude='/var/run/*' \
--exclude='/var/lock/*' \
--exclude='/lib/modules/*/volatile/.mounted' \
--exclude='/var/cache/apt/archives/*' \
--exclude='/home/*/.mozilla/firefox/*/Cache' \
--exclude='/home/*/.cache/chromium'
--exclude='home/*/.thumbnails' \
--exclude=.cache --exclude Cache --exclude cache
Pour une copie locale unique d'un disque à l'autre, je suppose que cp suffit comme décrit par Wolfmann ci-dessus.
Pour les travaux plus importants, comme les sauvegardes locales ou à distance, par exemple, le meilleur est rsync .
Bien entendu, rsync est nettement plus complexe à utiliser.
Pourquoi rsync :
-
cela vous permet de copier (synchronisé synchronisée) tout ou partie de votre lecteur A vers lecteur B, avec de nombreuses options, comme exclure certains répertoires de la copie (par exemple exclure /proc).
-
Un autre grand avantage est que cette outil natif surveille le transfert de transfert : par exemple pour les transferts massifs, si la connexion est interrompue, il continuera à partir du point de rupture.
-
Et enfin, mais pas des moindres, rsync utilise connexion ssh, ce qui vous permet de de réaliser des "copies" sécurisées synchronisées à distance "synchronisées et sécurisées. Jetez un coup d'oeil à la homme page ainsi que ici pour quelques exemples .
- Réponses précédentes
- Plus de réponses