Какую файловую систему вы рекомендуете для флэш-накопителя USB?

18

Это проблема, с которой я сталкиваюсь при использовании Ubuntu: у меня есть два компьютера, на которых установлена ​​Ubuntu (comp1 и comp2). Я создаю документ с Ubuntu на comp1, а затем копирую файл на USB-накопитель в формате FAT. Через флешку я вставляю документ в comp2. Проблема в том, что права доступа к файлам никогда не сохраняются во время передачи. Я предполагаю, потому что FAT не поддерживает разрешения.

Есть ли этому решение? Должен ли я продолжать использовать файловую систему FAT для флэш-накопителей USB (поскольку FAT лучше всего подходит для флэш-накопителей) и просто жить с этой проблемой разрешений? Или рекомендуется переформатировать мою флешку с более «дружественной» файловой системой Ubuntu, которая сохранит разрешения?

Greg
источник

Ответы:

11

ext4 - это журналируемая файловая система, которая означает, что если устройство отключено преждевременно, у него больше шансов на восстановление поврежденной файловой системы. Журнальная часть записи содержит информацию о том, что должно быть сделано, и очищается после завершения операции. Если обнаруживается, что на устройстве имеется незавершенный журнал, когда он монтируется, файловая система может быть возвращена в свое прежнее состояние, тем самым сохраняя свою целостность.

Несмотря на то, что при использовании журналируемой файловой системы на USB-накопителе возникают некоторые дополнительные затраты пространства, на самом деле это хороший выбор для большинства вещей.

Очевидно, что если вам нужно устройство, которое может быть подключено к любому компьютеру в любое время, то FAT будет правильным выбором. Если вы хотите, чтобы устройство было подключено к одному компьютеру Windows только изредка, то в Windows можно установить драйверы устройств ext2, которые позволят ему читать любые диски ext (x). Конечно, поскольку Windows не знает о разрешениях и владении Linux, они также не будут обрабатываться.

fabricator4
источник
Я не мог бы сказать это лучше. +1
Луис Альварадо
Драйвер Ext2 для Windows также должен иметь возможность читать файловые системы Ext4 - он просто игнорирует журнал.
Натан Осман
8

Вы можете попробовать отформатировать диск как UDF (Universal Disk Format). Это формат для использования на CD и DVD. Большинство современных ОС смогут читать и писать в нее.

Прямо сейчас, глядя на мои данные на диске в формате UDF, похоже, что права доступа к файлам Linux сохранены. Пока это работает для меня.

Еще одна хорошая особенность накопителя в формате UDF заключается в том, что он может хранить один большой файл размером до 16 Exabyte (поправьте меня, если я ошибаюсь.), Тогда как Fat32 может хранить только файлы размером 4 ГБ или менее и размер раздела MAX для FAT32. только 2TB.

Он хорошо работает на Win7 и 8. Для более старых ОС Windows, таких как XP и 2000, вы можете читать с диска, но вам нужно установить какой-то драйвер для записи на него.

Для Mac OS X 10.5 и выше имеет полную совместимость. Вот полная таблица совместимости. Таблица совместимости UDF

В Ubuntu выполните следующие действия, чтобы отформатировать диск как UDF.

sudo apt-get update
sudo apt-get install udftools

Хорошо, теперь вы хотите удалить текущие разделы на целевом диске. Вы можете использовать инструмент с графическим интерфейсом, например Дисковую утилиту , или сделать следующее.

sudo blkid

Найдите свой диск в выходной. (они выглядят примерно так / dev / sdb или / dev / sdc ) Теперь сделайте следующее, но замените ' x ' в / dev / sdx, чтобы указать диск, который вы хотите очистить его раздел. Сделайте это для обеих строк кода.

sudo dd if=/dev/zero of=/dev/sdx bs=1M count=1
sudo mkudffs -b 512 --media-type=hd --utf8 --lvid=DriveLabel --vid=DriveLabel --fsid=DriveLabel  /dev/sdx

Вы можете изменить, где он говорит «DriveLabel» по своему вкусу.

Это должно быть так.

На самом деле, я делаю это немного по-другому, но решил, что этот метод легче следовать. Я ссылался на этот метод с этого сайта .

Я надеюсь, что это помогает кому-то там.

Цифровой Сеннин
источник
у меня не работает: ошибка при монтировании USB-накопителя
Луи
1
Спасибо, очень интересный подход. Идеально подходит для настольных ОС (протестировано для Ubuntu 15.10+, Windows 7+), но не для мобильных устройств (определенно не работает для Android до 8.x). Я ожидаю гораздо меньшего воздействия записи на флэш-накопитель по сравнению с файловой системой журналирования. Вот одна строчка для этого:CreateUdfFlash(){ sudo wipefs "$1" ; sudo mkudffs --utf8 -b 512 --media-type=hdd --lvid="$2" --vid="$2" --fsid="$2" "$1" ; } ; CreateUdfFlash "/dev/sdX" "Some Disk Label"
Dess
7

При использовании файловой системы, которая сохраняет идентификаторы пользователей на USB-накопителе, вы можете столкнуться с проблемами, вызванными тем, что идентификаторы пользователей назначаются в порядке создания учетных записей пользователей, а файловая система фактически хранит числовые идентификаторы владельцев файлов, а не имена пользователей. Так, если, скажем, у машины A есть aliceи bobучетные записи, и у машины B bruce, zoeи aliceучетные записи, то вполне вероятно, что, когда Алиса копирует свои файлы на USB-диск, отформатированный в ext (2/3/4), идет к машине B и пытается получить доступ файлы, которые она обнаружит, что все файлы принадлежат bruceи предназначены только для чтения alice.

Конечно, если у вас есть только один пользователь на обеих машинах, это не будет проблемой.

Передача файлов, упакованных в tarархив, в соответствии с предложением @FSMaxB, может решить эту проблему, поскольку при распаковке архива файлы будут создаваться с использованием вашего идентификатора пользователя.

Сергей
источник
0

Если вы используете свою флешку только с системами Linux, вы можете использовать одну из файловых систем ext, например ext4, но при использовании с другими системами FAT является единственной совместимой файловой системой.

Одним из способов использования FAT и сохранения разрешений (не владения) было бы использование tar-Archives!

FSMaxB
источник
1
распаковка архива tar rootсохраняет владение файлами, поэтому сами архивы хранят идентификаторы пользователей. Однако делать это на разных компьютерах не рекомендуется, поскольку идентификаторы пользователей могут отличаться.
Сергей
Благодарю. Я думаю, что пока попробую решение TAR. Вопрос: есть ли способ создать TAR и создать его на флешке? Я перехожу в каталог, где файл, я хочу, чтобы TAR, и когда я запускаю команду TAR, архив создается в этом каталоге. Могу ли я получить архив, который будет создан на Flash Drive?
Грег
создание TAR требует BASH права? Или есть GUI способ сделать это?
Грег
Если вы используете обычную Ubuntu, вы можете щелкнуть
правой
Я не пробовал tar из графического интерфейса, но использовал tar.bz2 для сжатия из графического интерфейса и bash с помощью «tar -xf» для распаковки, что сохранило мои разрешения.
FSMaxB
0

Я использую reiserfs годами на USB-флешках без проблем. Ну, просто они не читаются из оконных систем, что может быть неплохо, если они потеряются.

Если вы разделяете флешку, чтобы использовать части с Windows для обмена данными, убедитесь, что раздел Windows является первым, иначе он не будет идентифицирован (по крайней мере, для XP, который я сделал).

Вы можете создать толстую файловую систему (не слишком ли они ограничены для сегодняшних размеров флешки?) И добавить в нее большой, но пустой файл, и смонтировать этот файл как устройство зацикливания в Ubuntu. Тогда вы сможете сохранить свои права доступа к файлам, а также увеличить или уменьшить зарезервированное пространство без разбиения на разделы или форматирования.

Как уже упоминалось: Tars, Zips и т. Д. Еще одна возможность.

Пользователь неизвестен
источник