Próbuję skopiować wszystkie pliki z NTFS na dysk zewnętrzny i chcę zachować wszystkie uprawnienia i atrybuty. Dysk zewnętrzny ma już system plików NTFS i zawiera inne pliki.
Rozważałem użycie następujących narzędzi:
ntfsclone
nie działa, ponieważ działa na poziomie sektora i sklonowałby cały FS, niszcząc w ten sposób stare dane. W przypadku utworzenia pliku obrazu nie mogę uzyskać dostępu do zawartości z komputera z systemem Windows.rsync
nie zachowuje wszystkich metadanych.
Alternatywą byłoby użycie robocopy
wewnątrz działającego systemu Windows, ale wolałbym kopiować pliki bez. (Partycja źródłowa jest używana jako systemowa C:\
).
Jak mogę skopiować pliki?
-AXogt
na przykład, powinno w większości zachować metadane FS. Wyjaśnij, co próbowałeś, ale to nie działa i jakie „metadane”, które widzisz, nie są zachowywane między partycjami NTFS.Odpowiedzi:
Nie ma sposobu, aby dokładnie skopiować pliki NTFS, przechodząc przez Linux. Nawet Wine , warstwa kompatybilności z Windows w Linuksie, działa poprzez konwersję uprawnień tam i z powrotem między Linuksem i Windowsem, a zatem ogranicza się do ich (raczej małego) najmniej wspólnego mianownika.
Jedyne rozwiązanie, jakie widzę, to system Windows w systemie Linux na maszynie wirtualnej (lub fizycznej).
Wierzę, że wspomniałeś o tej możliwości w swoim poście i wolałbyś jej unikać, ale nie widzę innej możliwości. Tylko system Windows może dokładnie kopiować pliki NTFS; Linux może kopiować tylko partycje NTFS.
Ten artykuł może pomóc: Jak zainstalować i uruchomić system Microsoft Windows za darmo w systemie Linux przy użyciu bezpłatnych maszyn wirtualnych udostępnionych do pobrania przez Microsoft .
źródło
streams_interface=xattr
jest ustawiona domyślnie. Jeśli dobrze to rozumiem, oznacza to, że atrybuty pliku NTFS (w tym uprawnienia systemu Windows) są mapowane naxattr
atrybuty w systemie Linux. Ponieważcp -a
irsync -X
czy kopiuje te atrybuty, czy nie powinna to być dokładna kopia?system.ntfs_acl
. To samo wydaje się dotyczyć innych matadanych w NTFS. Ponieważ atrybuty xattr są kopiowane podczas używaniarsync -X
lubcp -a
, może również kopiować metadane. Zależy to od konkretnych ograniczeńxattr
i realizacjintfs-3g
, ale dla mnie wygląda to na możliwe.Po pierwsze, musisz zdecydować, czy chcesz skopiować pliki ...
lub chcesz utworzyć kompletną kopię sektor po sektorze, zawierającą „stare dane”, „inne pliki”, a także „wszystkie metadane”, o których wspominałeś bardzo szeroko.
W tym drugim przypadku użyj dd:
Baw się dobrze.
źródło
dd
byłoby złym wyborem, ponieważ nie uwzględnia informacji FS. Jeśli masz NTFS, zawsze powinieneś używać gontfsclone
do tworzenia obrazów.robocopy
w moim pytaniu. Doceniam twój budżet, ale tak naprawdę nie jest to odpowiedź na moje pytanie.Linux może dobrze kopiować zawartość plików NTFS , ale nie wszystkie zmodyfikowane / utworzone / dostępne daty i atrybuty (zakładam, że to właśnie chcesz zachować).
Dlaczego więc nie zanotować bieżących dat i atrybutów (
dir
powinien być w stanie je wyświetlić), a następnie skopiować pliki w systemie Linux, a po uruchomieniu systemu Windows ponownie zmienić daty i atrybuty z powrotem na oryginały.Użyj narzędzia w systemie Windows, które może zmieniać pliki, takie jak jeden z tych :
Najwyraźniej własny Eksplorator plików systemu Windows nawet nie zachowuje właściwie wszystkich dat plików . Ale polecenia tar & zip cygwina powinny zapisywać daty plików, więc najpierw powinno działać jedno z tych w systemie Windows, aby utworzyć archiwum, a następnie po prostu skopiować archiwum w dowolny stary sposób.
Jeśli atrybuty są bardzo ważne i trudne do skopiowania nawet w systemie Windows, prawdopodobnie powinny zostać utworzone kopie zapasowe w pliku tekstowym lub bazie danych, bądź też jako część nazwy pliku ...
źródło