Точна копія файлів з NTFS в інший NTFS за допомогою Linux


14

Я намагаюся скопіювати всі файли з NTFS на зовнішній диск і хочу зберегти всі дозволи та атрибути. Зовнішній накопичувач вже має NTFS і містить інші файли.

Я розглядав можливість використання наступних інструментів:

  • ntfscloneне працює, оскільки працює на галузевому рівні і клонує всю ФС, знищуючи тим самим старі дані. Якщо я створюю файл зображення, я не можу отримати доступ до вмісту з машини Windows.
  • rsync не зберігає всіх метаданих.

Альтернативою було б використання robocopyвсередині запущеної Windows, але я вважаю за краще скопіювати файли без. (Джерельний розділ використовується як система C:\.)

Як скопіювати файли?


5
Які саме метадані ви намагаєтесь зберегти тут, щоб RSYNC не зберігав відповідні параметри? Ви маєте на увазі метадані типу музичного файлу або фактичні дозволи FS, структура, час, власник тощо? Я не впевнений, що ви вже намагалися з RSYNC, але, здавалося б, використання правильних параметрів, таких як, -AXogtнаприклад, має зберегти метадані FS здебільшого. Поясніть, будь ласка, що ви спробували, що не працює, і які "метадані" ви бачите, що не зберігаються між розділами NTFS.
Pimp Juice IT

Я знаю, що самі файли можна скопіювати точно в байт-байт в Linux, але чи відсутні всі дати, такі як створені, змінені, доступні, яких немає? Або користувач / власник та дозволи NTFS? Чи немає способу змінити ці дати та дозволи на файли після їх копіювання назад у Windows NTFS?
Xen2050

Відповіді:


8

Немає можливості точно скопіювати файли NTFS, проходячи через Linux. Навіть Wine , шар сумісності з Windows в Linux, працює за допомогою перетворення дозволів між Linux і Windows і тому обмежується їх (досить малим) найменш поширеним знаменником.

Єдине рішення, яке я бачу, це запуск Windows на Linux всередині віртуальної машини (або фізичної).

Я вважаю, що ви згадували про таку можливість у своєму дописі і вважаєте за краще уникати її, але іншої можливості я не бачу. Тільки Windows може точно копіювати файли NTFS; Linux здатний копіювати лише розділи NTFS.

Ця стаття може допомогти: Як безкоштовно встановити та запустити Microsoft Windows на Linux , використовуючи безкоштовні віртуальні машини, доступні для завантаження в Microsoft .


Я не впевнений у цьому, але згідно зі сторінкою ntfs-3g опція streams_interface=xattrвстановлена ​​за замовчуванням. Якщо я правильно це розумію, це означає, що атрибути файлів NTFS (включаючи дозволи Windows) відображаються на xattrатрибути в Linux. Оскільки cp -aі rsync -Xчи копіює цей атрибут, чи не повинна це бути точною копією?
JojOatXGME

@JojOatXGME: Моделі дозволів для Windows та Linux абсолютно різні. Тільки найосновніші атрибути мають точний аналог.
harrymc

Я знаю. Я не стверджую, що Linux розуміє ці атрибути, але атрибути xattr - це параметри ключових значень, які не повинні розуміти операційна система. ntfs-3g, схоже, робить дозволи для Windows доступними як атрибут xattr system.ntfs_acl. Це ж, мабуть, справедливо і для інших матаданих у NTFS. Оскільки атрибути xattr копіюються під час використання rsync -Xабо cp -a, вони можуть також копіювати метадані. Це залежить від конкретних обмежень xattrта реалізації ntfs-3g, але мені це здається можливим.
JojOatXGME

тож як ми можемо це правильно перевірити? ось що нам потрібно з такою заявою. Це може бути корисним лише якщо його можна перевірити ....
УВ

1

Перше, що вам потрібно вирішити, чи потрібно копіювати файли, ...

або ви хочете зробити повну секторальну копію свого розділу NTFS, включаючи "старі дані", "інші файли", а також "усі метадані", про які ви згадали вище, дуже широко.

Для останнього використовуйте dd:

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

Весело.


2
Ну, я вирішив, і це вже в питанні. Я хочу скопіювати файли з усіма пов'язаними метаданими. Це повинно бути можливим, оскільки вихідний FS, а також FS пункту призначення є NTFS, таким чином, мають однакові можливості. Використання ddбуло б поганим вибором, оскільки воно не враховує інформацію ФС. Якщо у вас є NTFS, ви завжди повинні використовувати його ntfscloneдля створення зображень.
Сколітус

У цьому випадку використовуйте robocopyor ntfscopy ( tzworks.net/prototype_page.php?proto_id=9 ), але жодна з них не доступна в Linux.
Paxsali

Ну, я також згадував robocopyу своєму питанні. Тож я ціную ваше дозволення, але це не справді відповідь на моє запитання.
Сколітус

1

Linux може копіювати вміст файлів NTFS прекрасно, лише не всі змінені / створені / доступні дати та атрибути (я припускаю, що це ви хочете зберегти).

То чому б ви просто не зазначили поточні дати та атрибути ( dirповинні мати можливість їх відображення), потім скопіюйте файли в linux, і як тільки ви запустите Windows, знову поверніть дати та атрибути назад до оригіналів.

Використовуйте інструмент у Windows, який може змінювати файли, як-от один із таких :

Мабуть , власний Провідник файлів Windows навіть не зберігає всі дати файлів належним чином . Але команди zip & cygwin tar повинні зберігати дати файлів, тому для використання архіву для створення архіву спочатку слід працювати також, а потім просто скопіювати архів будь-яким старим способом.


Якщо атрибути є надзвичайно важливими та їх важко копіювати навіть у Windows, їх, ймовірно, слід створити резервну копію у текстовому файлі чи базі даних або внести до частини імені файлу ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.