Para una simple transferencia de / home a otro disco cp -aque 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

cpes lento, otros métodos también lo serían. A menos que no sea una copia orientada a archivosnoatimeopció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
bsdtarlugar detarporque al menos en algunas distribuciones de Linuxtares GNU tar que, al contrario debsdtar(fromlibarchive) no maneja la preservación de atributos extendidos o ACL o atributos de Linux.pvalmacenará 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 depvno son compatibles-a(para informes de velocidad promedio), puede usarpv -B 200Msolo allí.En cualquier caso, esos no tendrán la limitación de
cp, que hace las lecturas y las escrituras secuencialmente. Aquí tenemos dostartrabajando 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
clone2fscuá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
ext4mayorí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,
zfsobtrfscuá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
--aclsopción de almacenar las ACL en el archivo. Y me sorprendería que una herramienta alienígena (debsdtaralgún tipo) como la maneje mejor que la (esencialmente) nativa ...tarpara 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).--aclsRecomiendo rsync, por ejemplo:
O, para transferir con compresión:
fuente
rsyncgeneralmente es mucho más lento quecpotar|tarrsynces 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.