Я пытаюсь скопировать все файлы из NTFS на внешний диск и хочу сохранить все разрешения и атрибуты. Внешний диск уже имеет NTFS и содержит другие файлы.
Я подумал об использовании следующих инструментов:
ntfsclone
не работает, так как работает на уровне секторов и клонирует весь FS, уничтожая старые данные. Если используется для создания файла изображения, я не могу получить доступ к содержимому с компьютера Windows.rsync
не сохраняет все метаданные.
Альтернативой может быть использование robocopy
внутри работающей Windows, но я бы предпочел копировать файлы без. (Исходный раздел используется как системный C:\
.)
Как я могу скопировать файлы?
-AXogt
например, должно сохранять метаданные FS по большей части. Пожалуйста, объясните, что вы пробовали, что не работает и какие метаданные, которые вы видите, не сохраняются между разделами NTFS.Ответы:
Невозможно точно скопировать файлы NTFS, проходящие через Linux. Даже Wine , уровень совместимости с Windows в Linux, работает путем преобразования разрешений назад и вперед между Linux и Windows и поэтому ограничен их (довольно небольшим) наименее распространенным знаменателем.
Единственное решение, которое я вижу, это запуск Windows на Linux внутри виртуальной машины (или физической).
Я полагаю, что вы упомянули эту возможность в своем посте и предпочли бы избегать ее, но я не вижу другой возможности. Только Windows может точно копировать файлы NTFS; Linux может копировать только разделы NTFS.
Эта статья может помочь: Как бесплатно установить и запустить Microsoft Windows в Linux , используя бесплатные виртуальные машины, доступные для загрузки Microsoft .
источник
streams_interface=xattr
установлена по умолчанию. Если я правильно понимаю, это означает, что атрибуты файлов NTFS (включая разрешения Windows) сопоставляются сxattr
атрибутами в Linux. Так какcp -a
иrsync -X
копирует ли это атрибуты, не должно ли это быть точной копией?system.ntfs_acl
. То же самое относится и к другим метаданным в NTFS. Поскольку атрибуты xattr копируются при использованииrsync -X
илиcp -a
, это может также копировать метаданные. Это зависит от конкретных ограниченийxattr
и реализацииntfs-3g
, но для меня это представляется возможным.Во-первых, вам нужно принять решение, если вы хотите копировать файлы, ...
или вы хотите сделать полную посекторную копию вашего NTFS-раздела, включая «старые данные», «другие файлы», а также «все метаданные», которые вы упомянули выше, очень широко.
Для последнего используйте dd:
Радоваться, веселиться.
источник
dd
было бы плохим выбором, так как оно не учитывает информацию FS. Если у вас есть NTFS, вы всегда должны использоватьntfsclone
для создания образа.robocopy
в своем вопросе. Так что я ценю ваше позволение, но это не совсем ответ на мой вопрос.Linux может нормально копировать содержимое файлов NTFS , но не все измененные / созданные / доступные даты и атрибуты (я полагаю, это то, что вы хотите сохранить).
Так почему бы вам просто не записать текущие даты и атрибуты (
dir
должно быть в состоянии их отобразить), затем скопировать файлы в linux, и после запуска Windows снова изменить даты и атрибуты обратно на оригиналы.Используйте инструмент в Windows, который может изменять файлы, например, один из следующих :
Судя по всему , собственный проводник Windows даже не сохраняет должным образом все даты файлов . Но команды tar в zip & cygwin должны сохранять даты файлов, поэтому сначала следует использовать одну из них в Windows для создания архива, а затем просто скопировать архив любым старым способом.
Если атрибуты очень важны и их трудно скопировать даже в Windows, их, вероятно, следует сохранить в текстовом файле или в базе данных или включить в часть имени файла ...
источник