
TL;DR: ¿Existe alguna forma de clonar los metadatos de un disco en otro disco?
Estoy intentando copiar todos los datos (incluidos los metadatos) de un disco de 4TiB a otro disco de 2TiB. He verificado que el disco de 4TiB contiene solo datos de 1TiB y su sistema de archivos es ext4
.
Mi enfoque anterior era el siguiente:
- Cambie el tamaño del sistema de archivos en el disco de origen:
resize2fs -M <source disk mountpath>
- Calcule la cantidad de bloques de 16MiB necesarios para el sistema de archivos reducido.
- Utilice dd para copiar todos los datos (incluidos los metadatos):
dd bs=16M if=<src> of=<dst> count=<# block calculated in step2
.
Este método funciona bien cuando la cantidad de datos es relativamente pequeña. Pero cuando el tamaño de los datos es grande, por ejemplo 1TiB
, ambos resize2fs
pueden dd
llevar mucho tiempo.
Estoy pensando en usarlo rsync
en lugar de dd
, por lo que no es necesario cambiar el tamaño del sistema de archivos original y, además, rsync
parece ser más rápido que dd
. Pero un problema es que rsync
no copia los metadatos del disco, como uuid, etiqueta, etc.
Me gustaría que el nuevo disco tenga exactamente los mismos metadatos que el original, de modo que pueda usar directamente el nuevo disco para reemplazar el original sin modificar nada en el servidor. ¿Existe alguna forma de clonar también los metadatos del disco?
Respuesta1
Sí, hay una manera de clonar la unidad con metadatos: use dd como lo hizo originalmente. Aunque no está claro por qué es necesario hacerlo en fragmentos de 16 MB.
Escribir grandes cantidades de datos lleva tiempo; no hay forma de evitarlo a menos que obtenga unidades más rápidas.