Copia esatta dei file da NTFS a un altro NTFS usando Linux


14

Provo a copiare tutti i file da un NTFS a un'unità esterna e voglio preservare tutte le autorizzazioni e gli attributi. L'unità esterna ha già un NTFS e contiene altri file.

Ho preso in considerazione l'utilizzo dei seguenti strumenti:

  • ntfsclonenon funziona poiché opera a livello settoriale e clonerebbe l'intero FS, distruggendo così i vecchi dati. Se utilizzato per creare un file di immagine, non riesco ad accedere al contenuto da un computer Windows.
  • rsync non conserva tutti i metadati.

Un'alternativa sarebbe quella di utilizzare robocopyall'interno di un Windows in esecuzione, ma preferirei copiare i file senza. (La partizione di origine viene utilizzata come sistema C:\.)

Come posso copiare i file?


5
Quali metadati esatti stai cercando di conservare qui che RSYNC non manterrà con i parametri appropriati? Ti riferisci a metadati del tipo di software per file musicali o autorizzazioni, struttura, tempo, proprietario, ecc. Di FS? Non sono sicuro di ciò che hai già provato con RSYNC, ma sembrerebbe che l'uso dei parametri corretti come -AXogtad esempio dovrebbe conservare i metadati di FS per la maggior parte. Spiega cosa hai provato che non funziona e quali "metadati" stai vedendo che non vengono mantenuti tra le partizioni NTFS.
Pimp Juice IT

So che i file stessi possono essere copiati esattamente byte per byte in Linux, ma mancano tutte le date come quelle create, modificate e accessibili? O utente / proprietario e autorizzazioni NTFS? Non c'è modo di modificare queste date e autorizzazioni sui file dopo averli copiati su Windows NTFS?
Xen2050,

Risposte:


8

Non c'è modo di copiare esattamente i file NTFS, passando attraverso Linux. Anche Wine , il livello di compatibilità di Windows su Linux, funziona convertendo le autorizzazioni avanti e indietro tra Linux e Windows, e quindi è limitato al loro (piuttosto piccolo) denominatore meno comune.

L'unica soluzione che posso vedere è eseguire Windows su Linux all'interno di una macchina virtuale (o fisica).

Credo che tu abbia menzionato questa possibilità nel tuo post e preferiresti evitarlo, ma non vedo un'altra possibilità. Solo Windows può esattamente copiare i file NTFS; Linux è solo in grado di copiare partizioni NTFS.

Questo articolo potrebbe essere d'aiuto: Come installare ed eseguire Microsoft Windows gratuitamente su Linux , utilizzando macchine virtuali gratuite rese disponibili per il download da Microsoft .


Non ne sono sicuro, ma secondo la manpage di ntfs-3g, l'opzione streams_interface=xattrè impostata di default. Se lo capisco correttamente, ciò significa che gli attributi del file NTFS (comprese le autorizzazioni di Windows) sono associati agli xattrattributi in Linux. Poiché cp -ae rsync -Xcopia questi attributi, non dovrebbe essere una copia esatta?
JojOatXGME,

@JojOatXGME: i modelli di autorizzazione di Windows e Linux sono completamente diversi. Solo gli attributi più elementari hanno una controparte esatta.
harrymc,

Lo so. Non pretendo che Linux capisca questi attributi, ma gli attributi xattr sono parigi chiave-valore che non devono essere compresi dal sistema operativo. ntfs-3g sembra rendere disponibili le autorizzazioni di Windows come attributo xattr system.ntfs_acl. Lo stesso sembra essere vero per altri matadata in NTFS. Poiché gli attributi xattr vengono copiati quando si utilizza rsync -Xo cp -a, è possibile che vengano copiati anche i metadati. Dipende dai limiti concreti xattre dall'attuazione di ntfs-3g, ma mi sembra possibile.
JojOatXGME,

quindi come possiamo testarlo correttamente? questo è ciò di cui abbiamo bisogno con un'affermazione come questa. Potrebbe essere utile solo se può essere testato ....
UV

1

La prima cosa è che devi prendere una decisione se vuoi copiare file, ...

o vuoi fare una copia completa, settore per settore, della tua partizione NTFS, inclusi i "vecchi dati", gli "altri file", e anche "tutti i metadati" che hai citato sopra in senso molto ampio.

Per quest'ultimo, utilizzare dd:

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

Divertiti.


2
Bene, ho deciso, ed è già nella domanda. Voglio copiare i file con tutti i metadati associati. Ciò dovrebbe essere possibile perché FS di origine e FS di destinazione sono NTFS, con le stesse funzionalità. L'uso ddsarebbe una scelta sbagliata poiché non tiene conto delle informazioni FS. Se hai un NTFS dovresti sempre usare ntfscloneper la creazione di immagini.
Scolytus,

In questo caso usa robocopy o ntfscopy ( tzworks.net/prototype_page.php?proto_id=9 ), ma nessuno dei due è disponibile su Linux.
Paxsali,

Bene, ho anche menzionato robocopynella mia domanda. Quindi apprezzo il tuo costo, ma in realtà non è una risposta alla mia domanda.
Scolytus,

1

Linux può copiare bene il contenuto dei file NTFS , ma non tutte le date e gli attributi modificati / creati / accessibili (suppongo che sia quello che vuoi conservare).

Quindi perché non prendere semplicemente nota delle date e degli attributi attuali ( dirdovrebbe essere in grado di visualizzarli), quindi copiare i file in Linux e, una volta eseguito Windows, cambiare di nuovo le date e gli attributi con gli originali.

Utilizza uno strumento di Windows che può modificare i file, come uno di questi :

Apparentemente il File Explorer di Windows non conserva nemmeno correttamente tutte le date dei file . Ma i comandi tar di zip & cygwin dovrebbero salvare le date dei file, quindi utilizzare uno di quelli in Windows per creare un archivio prima dovrebbe funzionare anche, quindi copiare l'archivio in un modo vecchio.


Se gli attributi sono super-importanti e difficili da copiare anche in Windows, è probabile che debbano essere sottoposti a backup in un file di testo o database o inseriti in un nome file ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.