Я использую собственный скрипт Bash, работающий на компьютере с Linux, для массового дублирования USB-накопителей в формате FAT32.
Мне нужно сохранить атрибуты файла Windows, такие как «скрытый».
Я использую rsync
(или dd
с find
и mkdir
в более новой версии, чтобы заставить синхронизацию ввода / вывода для лучшей стабильности и оптимального использования пропускной способности).
Я слепо попробовал -X
и -A
переключаюсь rsync
, что, как говорят, сохраняет некоторые атрибуты файла, но они, кажется, не работают для атрибутов файла Windows.
Есть ли способ чтения и записи файловых атрибутов Windows в среде Linux?
Я мог бы применить их после копирования, если нет более простого способа.
Я не хочу dd
использовать всю исходную файловую систему, потому что она будет крайне неоптимизирована, особенно когда вам нужно записать сотни дисков. Иногда накопители емкостью 16 ГБ и всего несколько ГБ файлов на них - и глупый dd
будет копировать все 16 ГБ, тратя много времени, чтобы это заработало в производстве.
Я искал в Интернете, но похоже, что расширенные атрибуты Linux не имеют ничего общего с атрибутами файлов Windows, и я не нашел способа прочитать и записать эту информацию (или просто скопировать ее с файлами).
rsync
или ручнойfind
/mkdir
/dd
операции, которую я использую сейчас.fatattr
на одну реализацию инструмента, использующего их.Ответы:
Я могу придумать пару способов справиться с этим.
Первый - использовать Mtools для копирования файлов. Чтобы это работало, вам нужно определить «диски» (скажем, A: для исходного диска, B: для цели), затем вы сможете копировать все, сохраняя атрибуты и временные метки, используя
(Непроверенные).
Второй - постобработка атрибутов с использованием
fatattr
(что доступно в большинстве дистрибутивов). Он обрабатывает монтируемые файловые системы, поэтому вы должны копировать свои файловые системы так же, как вы это делаете в настоящее время, а затем использовать,fatattr
чтобы вывести список всех атрибутов FAT всех исходных файлов, и проанализировать их,fatattr
чтобы указать, как правильно установить атрибуты для целевых файлов. ,источник
mcopy
, произошел сбой при попытке скопировать папку «System Volume Information», что вызвало ошибку GCC «Обнаружено разрушение стека». Поэтому я попробую использоватьfatattr
.