Tento copiar todos os arquivos de um NTFS para uma unidade externa e quero preservar todas as permissões e atributos. A unidade externa já possui um NTFS e contém outros arquivos.
Eu considerei usar as seguintes ferramentas:
ntfsclone
não funciona, pois opera no nível do setor e clonaria todo o FS, destruindo assim os dados antigos. Se usado para criar um arquivo de imagem, não consigo acessar o conteúdo de uma máquina Windows.rsync
não preserva todos os metadados.
Uma alternativa seria usar robocopy
dentro de um Windows em execução, mas eu preferiria copiar os arquivos sem. (A partição de origem é usada como sistema C:\
.)
Como posso copiar os arquivos?
-AXogt
por exemplo, deve reter os metadados do FS em sua maior parte. Por favor, explique o que você tentou que não funciona e quais "metadados" você está vendo que não são retidos entre as partições NTFS.Respostas:
Não há como copiar exatamente arquivos NTFS, passando pelo Linux. Até o Wine , a camada de compatibilidade do Windows no Linux, funciona convertendo permissões entre o Linux e o Windows, limitando-se ao seu denominador menos comum (bastante pequeno).
A única solução que vejo é executar o Windows no Linux dentro de uma máquina virtual (ou física).
Acredito que você tenha mencionado essa possibilidade em seu post e prefere evitá-la, mas não vejo outra possibilidade. Somente o Windows pode copiar exatamente arquivos NTFS; O Linux é capaz apenas de copiar partições NTFS.
Este artigo pode ajudar: Como instalar e executar o Microsoft Windows gratuitamente no Linux , usando máquinas virtuais gratuitas disponibilizadas para download pela Microsoft .
fonte
streams_interface=xattr
é definida por padrão. Se eu entendi direito, isso significa que os atributos de arquivo NTFS (incluindo permissões do Windows) são mapeados paraxattr
atributos no linux. Desdecp -a
ersync -X
copia esses atributos, não deveria ser uma cópia exata?system.ntfs_acl
. O mesmo parece ser verdade para outros matadados no NTFS. Como os atributos xattr são copiados ao usarrsync -X
orcp -a
, ele também pode copiar os metadados. Depende das limitações concretasxattr
e da implementação dentfs-3g
, mas me parece possível.A primeira coisa é que você precisa se decidir se deseja copiar arquivos, ...
ou você deseja fazer uma cópia completa, setor por setor, da sua partição NTFS, incluindo os "dados antigos", os "outros arquivos", além de "todos os metadados" mencionados acima de maneira ampla.
Para o último, use dd:
Diverta-se.
fonte
dd
seria uma má escolha, pois não leva em conta as informações de FS. Se você possui um NTFS, sempre deve usá-lontfsclone
para criação de imagens.robocopy
na minha pergunta. Então, eu aprecio o seu dinheiro, mas não é realmente uma resposta para minha pergunta.O Linux pode copiar bem o conteúdo dos arquivos NTFS , mas nem todas as datas e atributos modificados / criados / acessados (presumo que seja isso que você deseja preservar).
Então, por que você não apenas anota as datas e atributos atuais (
dir
deve poder exibi-los), copia os arquivos no linux e, depois de executar o Windows, altera novamente as datas e os atributos de volta aos originais.Use uma ferramenta no Windows que possa alterar os arquivos, como um destes :
Aparentemente , o próprio File Explorer do Windows também não preserva todas as datas do arquivo corretamente . Mas os comandos tar do zip & cygwin devem salvar as datas dos arquivos, portanto, usar um desses no Windows para criar um arquivo primeiro também deve funcionar e, em seguida, basta copiar o arquivo da maneira antiga.
Se os atributos forem super importantes e difíceis de copiar, mesmo no Windows, eles provavelmente deverão ser copiados em um arquivo de texto ou banco de dados ou transformados em parte do nome do arquivo ...
fonte