Copie exacte des fichiers de NTFS vers un autre NTFS en utilisant Linux

14

J'essaie de copier tous les fichiers d'un NTFS vers un lecteur externe et je souhaite conserver toutes les autorisations et tous les attributs. Le lecteur externe a déjà un NTFS et contient d'autres fichiers.

J'ai envisagé d'utiliser les outils suivants:

  • ntfsclonene fonctionne pas car il opère au niveau du secteur et clonerait l'ensemble du FS, détruisant ainsi les anciennes données. Si utilisé pour créer un fichier image, je ne peux pas accéder au contenu à partir d'une machine Windows.
  • rsync ne conserve pas toutes les métadonnées.

Une alternative serait d'utiliser à l' robocopyintérieur d'un Windows en cours d'exécution, mais je préférerais copier les fichiers sans. (La partition source est utilisée comme système C:\.)

Comment puis-je copier les fichiers?

Scolytus
la source
5
Quelles métadonnées exactes essayez-vous de conserver ici que RSYNC ne conservera pas avec les paramètres appropriés? Faites-vous référence aux métadonnées du type de logiciel de fichiers musicaux ou aux autorisations FS réelles, à la structure, à l'heure, au propriétaire, etc.? Je ne suis pas sûr de ce que vous avez déjà essayé avec RSYNC, mais il semblerait que l'utilisation des paramètres corrects, comme -AXogtpar exemple, devrait conserver les métadonnées FS pour la plupart. Veuillez expliquer ce que vous avez essayé qui ne fonctionne pas et quelles «métadonnées» que vous voyez qui ne sont pas conservées entre les partitions NTFS.
Pimp Juice IT du
Je sais que les fichiers eux-mêmes peuvent être copiés exactement octet par octet sous Linux, mais est-ce que toutes les dates telles que créées, modifiées, accessibles sont manquantes? Ou utilisateur / propriétaire NTFS et autorisations? N'y a-t-il aucun moyen de modifier ces dates et autorisations sur les fichiers après les avoir recopiés dans Windows NTFS?
Xen2050

Réponses:

8

Il n'y a aucun moyen de copier exactement les fichiers NTFS en passant par Linux. Même Wine , la couche de compatibilité Windows sous Linux, fonctionne en convertissant les autorisations dans les deux sens entre Linux et Windows, et se limite donc à leur (plutôt petit) dénominateur le moins commun.

La seule solution que je peux voir est d'exécuter Windows sur Linux dans une machine virtuelle (ou physique).

Je pense que vous avez mentionné cette possibilité dans votre message et que vous préféreriez l’éviter, mais je ne vois aucune autre possibilité. Seul Windows peut copier exactement les fichiers NTFS; Linux est uniquement capable de copier des partitions NTFS.

Cet article peut vous aider: Comment installer et exécuter Microsoft Windows gratuitement sur Linux , à l'aide de machines virtuelles gratuites mises à disposition au téléchargement par Microsoft .

harrymc
la source
Je n'en suis pas sûr, mais selon la page de manuel de ntfs-3g, l'option streams_interface=xattrest définie par défaut. Si je comprends bien, cela signifie que les attributs de fichier NTFS (y compris les autorisations Windows) sont mappés sur des xattrattributs sous Linux. Depuis cp -aet rsync -Xcopie ces attributs, ne devrait-il pas s'agir d'une copie exacte?
JojOatXGME
@JojOatXGME: Les modèles d'autorisations de Windows et Linux sont complètement différents. Seuls les attributs les plus élémentaires ont une contrepartie exacte.
harrymc
Je connais. Je ne prétends pas que Linux comprend ces attributs, mais les attributs xattr sont des paris de valeur-clé qui ne doivent pas être compris par le système d'exploitation. ntfs-3g semble rendre les autorisations Windows disponibles en tant qu'attribut xattr system.ntfs_acl. La même chose semble être vraie pour d'autres matadonnées dans NTFS. Étant donné que les attributs xattr sont copiés lors de l'utilisation de rsync -Xou cp -a, il peut également copier les métadonnées. Cela dépend des limites concrètes xattret de la mise en œuvre de ntfs-3g, mais cela me semble possible.
JojOatXGME
alors comment pouvons-nous tester cela correctement? c'est ce dont nous avons besoin avec une déclaration comme celle-ci. Il ne pourrait être utile que s'il peut être testé ....
UV il y a
1

La première chose est que vous devez vous décider si vous souhaitez copier des fichiers, ...

ou vous voulez faire une copie complète, secteur par secteur, de votre partition NTFS, y compris les "anciennes données", les "autres fichiers", ainsi que "toutes les métadonnées" que vous avez mentionnées ci-dessus très largement.

Pour ce dernier, utilisez dd:

dd if=/dev/sda2 of=/mnt/usbdisk/my-ntfs-partition-D.img bs=1M

S'amuser.

Paxsali
la source
2
Eh bien, j'ai pris ma décision et c'est déjà la question. Je souhaite copier les fichiers avec toutes les métadonnées associées. Cela devrait être possible car le FS source et le FS de destination sont NTFS, ayant ainsi les mêmes capacités. L'utilisation ddserait un mauvais choix car elle ne prend pas en compte les informations FS. Si vous avez un NTFS, vous devez toujours l'utiliser ntfsclonepour la création d'images.
Scolytus
Dans ce cas, utilisez robocopyor ntfscopy ( tzworks.net/prototype_page.php?proto_id=9 ), mais aucun de ceux-ci n'est disponible sur linux.
Paxsali
Eh bien, je l'ai également mentionné robocopydans ma question. J'apprécie donc vos moyens, mais ce n'est pas vraiment une réponse à ma question.
Scolytus
1

Linux peut très bien copier le contenu des fichiers NTFS , mais pas toutes les dates et les attributs modifiés / créés / accessibles (je suppose que c'est ce que vous voulez conserver).

Alors, pourquoi ne prenez-vous pas simplement note des dates et des attributs actuels (vous dirdevriez pouvoir les afficher), puis copiez les fichiers sous linux, et une fois que vous exécutez Windows, changez à nouveau les dates et les attributs sur les originaux.

Utilisez un outil sous Windows qui peut modifier les fichiers, comme l'un de ceux-ci :

Apparemment , l'explorateur de fichiers de Windows ne conserve même pas toutes les dates de fichiers correctement . Mais les commandes tar de zip et cygwin devraient enregistrer les dates des fichiers, donc utiliser l'une de celles de Windows pour créer une archive en premier devrait également fonctionner, puis copiez simplement l'archive à l'ancienne.


Si les attributs sont super importants et difficiles à copier même sous Windows, ils devraient probablement être sauvegardés dans un fichier texte ou une base de données, ou intégrés au nom de fichier ...

Xen2050
la source