Para una simple transferencia de / home a otro disco cp -a
que uso, me parece una forma extremadamente lenta. Debería saber una forma más eficiente de completar la tarea. Tengo / home montado como volumen lógico, pero el disco de destino no es un sistema LVM
9
cp
es lento, otros métodos también lo serían. A menos que no sea una copia orientada a archivosnoatime
opción de montaje para reducir las escrituras innecesarias, especialmente en el sistema de archivos fuente.Respuestas:
Intenta
tar
,pax
,cpio
, con algo de amortiguación.Sugiero en
bsdtar
lugar detar
porque al menos en algunas distribuciones de Linuxtar
es GNU tar que, al contrario debsdtar
(fromlibarchive
) no maneja la preservación de atributos extendidos o ACL o atributos de Linux.pv
almacenará en búfer hasta 500 millones de datos para que pueda acomodar mejor las fluctuaciones en las velocidades de lectura y escritura en los dos sistemas de archivos (aunque en realidad, es probable que tenga un disco más lento que el otro y el mecanismo de escritura del sistema operativo hará ese búfer como bueno, entonces probablemente no habrá mucha diferencia). Las versiones anteriores depv
no son compatibles-a
(para informes de velocidad promedio), puede usarpv -B 200M
solo allí.En cualquier caso, esos no tendrán la limitación de
cp
, que hace las lecturas y las escrituras secuencialmente. Aquí tenemos dostar
trabajando simultáneamente, por lo que uno puede leer un FS mientras el otro está ocupado esperando que el otro FS termine de escribir.Para ext4 y si está copiando en una partición que es al menos tan grande como la fuente, vea también
clone2fs
cuál funcionantfsclone
, es decir, copia los bloques asignados solo y secuencialmente, por lo que el almacenamiento rotacional probablemente sea el más eficiente.Partclone generaliza eso a unos pocos sistemas de archivos diferentes.
Ahora, algunas cosas a tener en cuenta al clonar un sistema de archivos.
La clonación sería copiar todos los directorios, archivos y sus contenidos ... y todo lo demás. Ahora todo lo demás varía de un sistema de archivos a otro. Incluso si solo consideramos las características comunes de los sistemas de archivos Unix tradicionales, tenemos que considerar:
Entonces, si considera la
ext4
mayoría de los sistemas de archivos de Linux, deberá considerar:SELinux
)No todas las herramientas de apoyo a todos aquellos, o cuando lo hacen, usted tiene que permitir explícitamente como el
--sparse
,--acls
... opciones dersync
,tar
... Y al copiar en un diferentes sistemas de archivos, usted tiene que considerar el caso en que no lo hacen admite el mismo conjunto de características.También es posible que tenga que considerar los atributos del sistema de archivos como el UUID, el espacio reservado para la raíz, la frecuencia fsck, el comportamiento diario, el formato de los directorios ...
Luego, hay sistemas de archivos más complejos, en los que realmente no puede copiar los datos copiando archivos. Considere, por ejemplo,
zfs
obtrfs
cuándo puede tomar instantáneas de subvolúmenes y bifurcarlos ... Esos tendrían sus propias herramientas dedicadas para copiar datos.La copia de byte a byte del dispositivo de bloque (o al menos de los bloques asignados cuando sea posible) es a menudo la más segura si desea asegurarse de copiar todo. Pero tenga cuidado con el problema de choque de UUID, y eso implica que está copiando en algo más grande (aunque podría cambiar el tamaño de una copia instantánea de la fuente antes de copiar).
fuente
--acls
opción de almacenar las ACL en el archivo. Y me sorprendería que una herramienta alienígena (debsdtar
algún tipo) como la maneje mejor que la (esencialmente) nativa ...tar
para Linux (star
,bsdtar
,tar
), no soy consciente de que es mejor GNU tar ninguna de las otras. La elección de herramientas GNU es generalmente más política que técnica (ver, por ejemplobash
).--acls
Recomiendo rsync, por ejemplo:
O, para transferir con compresión:
fuente
rsync
generalmente es mucho más lento quecp
otar|tar
rsync
es principalmente eficiente si ya tiene parcialmente los datos de origen disponibles en el volumen de destino porque solo transferirá datos faltantes / modificados. No lo usaría para una "primera copia" rápida.