Pour un simple transfert de / home vers un autre disque cp -a
que j'utilise, cela me semble extrêmement lent. Vous aimeriez connaître un moyen plus efficace de terminer la tâche. J'ai / home monté en tant que volume logique, mais le disque cible n'est pas un système LVM
9
cp
c'est lent, d'autres méthodes le seraient aussi. À moins que ce ne soit pas une copie orientée fichiernoatime
option de montage pour réduire les écritures inutiles, spécialement dans le système de fichiers source.Réponses:
Essayez
tar
,pax
,cpio
avec mise en mémoire tampon de quelque chose.Je suggère
bsdtar
au lieu detar
parce qu'au moins sur certaines distributions Linuxtar
est GNU tar qui contrairement àbsdtar
(fromlibarchive
) ne gère pas la préservation des attributs étendus ou des ACL ou des attributs linux.pv
tamponnera jusqu'à 500M de données afin de mieux s'adapter aux fluctuations des vitesses de lecture et d'écriture sur les deux systèmes de fichiers (bien qu'en réalité, vous aurez probablement un disque plus lent que l'autre et le mécanisme de réécriture du système d'exploitation fera cette mise en mémoire tampon comme eh bien, cela ne fera probablement pas beaucoup de différence). Les anciennes versions depv
ne prennent pas en charge-a
(pour les rapports de vitesse moyenne), vous pouvez les utiliserpv -B 200M
seules.Dans tous les cas, ceux-ci n'auront pas la limitation de
cp
, cela fait les lectures et les écritures séquentiellement. Ici, nous avons deuxtar
fonctionnant simultanément, donc l'un peut lire un FS tandis que l'autre est occupé à attendre que l'autre FS termine l'écriture.Pour ext4 et si vous copiez sur une partition qui est au moins aussi grande que la source, voyez aussi celle
clone2fs
qui fonctionnentfsclone
, c'est-à-dire qui copie les blocs alloués uniquement et séquentiellement, donc le stockage rotationnel sera probablement le plus efficace.partclone généralise cela à quelques systèmes de fichiers différents.
Maintenant, quelques éléments à prendre en compte lors du clonage d'un système de fichiers.
Le clonage reviendrait à copier tous les répertoires, fichiers et leur contenu ... et tout le reste. Maintenant, tout le reste varie d'un système de fichiers à un autre. Même si nous ne considérons que les caractéristiques communes des systèmes de fichiers Unix traditionnels, nous devons considérer:
Ensuite, si vous envisagez
ext4
et la plupart des systèmes de fichiers Linux, vous devrez considérer:SELinux
)Tous les outils d' aide à tous ceux, ou quand ils le font, vous devez activer explicitement comme
--sparse
,--acls
... optionsrsync
,tar
... Et lors de la copie sur un des systèmes de fichiers différents, vous devez considérer le cas où ils ne le font pas prendre en charge le même ensemble de fonctionnalités.Vous devrez peut-être également tenir compte des attributs du système de fichiers eux-mêmes comme l'UUID, l'espace réservé à la racine, la fréquence fsck, le comportement de journalisation, le format des répertoires ...
Ensuite, il existe des systèmes de fichiers plus complexes, où vous ne pouvez pas vraiment copier les données en copiant des fichiers. Considérez par exemple
zfs
oubtrfs
quand vous pouvez prendre des instantanés de sous-volumes et les dériver ... Ceux-ci auraient leurs propres outils dédiés pour copier les données.La copie octet à octet du périphérique de bloc (ou au moins des blocs alloués lorsque cela est possible) est souvent la plus sûre si vous voulez vous assurer que vous copiez tout. Mais méfiez-vous du problème de conflit UUID, et cela implique que vous copiez sur quelque chose de plus grand (bien que vous puissiez redimensionner une copie instantanée de la source avant de copier).
la source
--acls
possibilité de stocker les ACL dans l'archive. Et je serais surpris si un outil étranger (enbsdtar
quelque sorte) comme le gère mieux que celui (essentiellement) natif ...tar
Linux (star
,bsdtar
,tar
), je ne suis pas au courant que GNU tar est mieux que les autres. Le choix des outils GNU est généralement plus politique que technique (voir par exemplebash
).--acls
Je recommande rsync, par exemple:
Ou, pour transférer avec compression:
la source
rsync
est généralement beaucoup plus lent quecp
outar|tar
rsync
est surtout efficace si vous avez déjà partiellement les données source disponibles sur le volume de destination, car il ne transférera que les données manquantes / modifiées. Je ne l'utiliserais pas pour une "première copie" rapide.