Intento copiar todos los archivos de un NTFS a una unidad externa y quiero preservar todos los permisos y atributos. La unidad externa ya tiene un NTFS y contiene otros archivos.
He considerado usar las siguientes herramientas:
ntfsclone
no funciona ya que opera a nivel de sector y clonaría todo el FS, destruyendo así los datos antiguos. Si se usa para crear un archivo de imagen, no puedo acceder al contenido desde una máquina con Windows.rsync
no conserva todos los metadatos.
Una alternativa sería usar robocopy
dentro de un Windows en ejecución, pero preferiría copiar los archivos sin él. (La partición fuente se usa como la del sistema C:\
).
¿Cómo puedo copiar los archivos?
-AXogt
por ejemplo, debería retener los metadatos FS en su mayor parte. Explique qué ha intentado que no funciona y qué "metadatos" está viendo que no se retienen entre las particiones NTFS.Respuestas:
No hay forma de copiar exactamente los archivos NTFS, pasando por Linux. Incluso Wine , la capa de compatibilidad de Windows en Linux, funciona mediante la conversión de permisos de un lado a otro entre Linux y Windows, por lo que se limita a su denominador menos común (bastante pequeño).
La única solución que puedo ver es ejecutar Windows en Linux dentro de una máquina virtual (o física).
Creo que ha mencionado esta posibilidad en su publicación y preferiría evitarla, pero no veo otra posibilidad. Solo Windows puede copiar exactamente archivos NTFS; Linux solo es capaz de copiar particiones NTFS.
Este artículo podría ayudar: Cómo instalar y ejecutar Microsoft Windows de forma gratuita en Linux , utilizando máquinas virtuales gratuitas que Microsoft puede descargar .
fuente
streams_interface=xattr
está configurada por defecto. Si lo entiendo correctamente, esto significa que los atributos del archivo NTFS (incluidos los permisos de Windows) se asignan a losxattr
atributos en Linux. Desdecp -a
yrsync -X
copia estos atributos, ¿no debería ser una copia exacta?system.ntfs_acl
. Lo mismo parece ser cierto para otros matadatos en NTFS. Dado que los atributos xattr se copian al usarrsync -X
ocp -a
, también podría copiar los metadatos. Depende de las limitaciones concretasxattr
y la implementación dentfs-3g
, pero me parece posible.Lo primero es que debe decidir si desea copiar archivos, ...
o desea hacer una copia completa, sector por sector, de su partición NTFS, incluidos los "datos antiguos", los "otros archivos", así como "todos los metadatos" que ha mencionado anteriormente de manera muy amplia.
Para este último, use dd:
Que te diviertas.
fuente
dd
sería una mala elección, ya que no tiene en cuenta la información del servicio fijo. Si tiene un NTFS, siempre debe usarlontfsclone
para la creación de imágenes.robocopy
en mi pregunta. Así que agradezco su capacidad de pago, pero en realidad no es una respuesta a mi pregunta.Linux puede copiar bien el contenido de los archivos NTFS , solo que no todas las fechas y atributos modificados / creados / accedidos (supongo que eso es lo que desea preservar).
Entonces, ¿por qué no solo
dir
toma nota de las fechas y atributos actuales ( debería poder mostrarlos), luego copie los archivos en Linux y, una vez que esté ejecutando Windows, vuelva a cambiar las fechas y atributos a los originales.Use una herramienta en Windows que pueda cambiar los archivos, como uno de estos :
Aparentemente , el propio Explorador de archivos de Windows ni siquiera conserva todas las fechas de archivo correctamente . Pero los comandos tar de zip & cygwin deberían guardar las fechas de los archivos, por lo que usar uno de esos en Windows para crear un archivo primero también debería funcionar, luego simplemente copie el archivo de la manera anterior.
Si los atributos son súper importantes y difíciles de copiar, incluso en Windows, probablemente deberían ser respaldados en un archivo de texto o base de datos, o formados en parte del nombre de archivo ...
fuente