LINUX.ORG.RU

Приключения с exfat (не повторяйте моих ошибок)

 , , , ,


0

3

Короче, я почему-то уверовал, что exfat это надежная ФС для длительного хранения. Спойлер: она не кроссплатформенная, как бы не позиционировалась. Не могу не поделиться своей историей, даже если вы скажите мне что дебил и так конечно же нельзя было делать :)

Я в курсе, что у exfat нет журнала и все такое. А еще она коммерческая. Лично для меня (уж простите мое дилетанство) это была ФС, используя которую я смогу не только перемещать файлы между разными системами, но и спокойно хранить на диске с такой ФС что-то полезное и важное долго.

Как же я охудивился, когда обнаружил, что копируя с переносного exfat-диска у меня практический каждый каталог копируется через одно место и не до конца. Я перепугался, что диску пришел звиздец. Файлы, которые не скопировались отображались в терминале как «?ппцважныйфайл.jpg» и показылись как 0 байт. Одним словом, моя жопа сжалась в сингулярность. На диске были реально важные мне вещи, которые низя было потерять.

Первым делом я пошел проверять через exfatckfs. Причем, на линуксе и на маке. Мак говорил, что дескать fsck_exfat: Could not update main boot region: Bad file descriptor. Линукс проверил и не нашел ошибок. Я полез смотреть файлы. И каково было мое удивление, когда обнаружилось, что файлы (которые не удалось скопировать или переместить) на месте, читаются и все как будто бы окей. Я пошел обратно на мак. Там все также 0 байт и нечитающиеся данные.

Загадка, подумал я. Пошел читать где я дурак. Оказалось, что несмотря на заявленную поддержку exfat, она, блин, реально разная под разные ОС. В одной из статей я вообще обнаружил, что советуют категорически не использовать exfat для live access information. То есть то, как я хотел лихо работать одним диском под тремя ОС, считая, что ФС работает везде одинаково. Надежный план как швейцарские часы.

Всю дорогу везде и всюду советуют для использования в разных системах именно exfat. На деле оказалось, что ФС exfat, даже если есть совместимость в ОС, совершенно не подходит для одновременной работы в разных ОС. ФС exfat - это одноразовая передача файлов, но ни в коем случае не ФС для длительного хранения с целью открыть файлы в любой момент на любой ОС.

Я очень сильно ошибался, думая, что могу хранить, скажем, фотки на диске с exfat и ловко подключаться им то к компу с линуксом, то к маку.

Оказалось, что у мака и линукса свое видение этой ФС. И даже при видимости ошибок, банальный fsck не спасает.

Если вы думаете, что можете ловко существовать одновременно во всех операционных системах, используя, например, exfat для дисков, чтобы работать с файлами одновременно в разных ОС, то вы, как и я, очень наивны. По факту, это невозможно без каких-то коллизий. Возможно, вам просто везет (до поры до времени). Но обязательно наступит момент, когда файлы будут показаны как «поврежденные» в одной из ОС.

А самый приколдес еще в том, что условная попытка исправить ошибки ФС может привести к еще более серьезному повреждению данных. Потому что реализация устранения ошибок в разных ОС основана на, как вы поняли, реализации самого драйвера для ФС. Я художник – я так вижу, блин))

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

Какие выводы я сделал:

  1. Хотите хранить долго – берите ФС для той ОС, с которой работаете.
  2. Хотите хранить долго и получать доступ из разных ОС – передавайте по сети.
  3. Хотите временно что-то писать на флешки или переносные диски без гарантии сохранности данных – окей, exfat подойдет.

Такие дела :)



Последнее исправление: lx1 (всего исправлений: 1)
Ответ на: комментарий от Vsevolod-linuxoid

вероятно самое надежное решение – это ext4

Да, я примерно об этом же подумал. Даже черт с ними с драйверами. Мне главное из под любого современного онтопика загрузиться.

lx1
() автор топика
Ответ на: комментарий от serg002

Вообще-то ntfs есть на маке чуть ли не искаробки, но на маке надо люто попердолится и раз 5 его перезагрузить, чтобы разрешить запись на ntfs.

C NTFS другая, и неустранимая проблема - в нормальных ФС в именах файлов допустимы любые символы кроме / и \0. В NTFS запрещённых символов гораздо больше и список менялся с течением времени и соответственно в разных реализациях он разный, что может приводить к весьма печальным последствиям.

Stanson ★★★★★
()

Внезапно, для мака же есть extFS. Храни всё своё в ext2 (без журнала). Или в маковой HFS, если венда не интересует. Линукс нормально HFS поддерживает. UDF есть ещё, но оно такое себе, вполне возможно даже хуже чем exfat.

Stanson ★★★★★
()
Ответ на: комментарий от ann_eesti

Минус RAID – с собой в кармане не унесёшь, нужно что-то мелкое и универсальное. Тоже думал на 4 дисках собрать RAID на 6 гигов суммарно. Мне такое счастье лет на 15 хватит, а там и железо своё отживёт и что-то интересное появится.

wonit
()

Слов много, но ни одного сценария «как потерять свои данные на exFAT» не опубликовано.

…чтобы работать с файлами одновременно в разных ОС…

Что ты имеешь ввиду под одновременной работой в разных ОС?

debugger ★★★★★
()
Ответ на: комментарий от lx1

Журнал это усложнение, разные реализации сложного могут иметь отличия, может несущественные, а может и существенные. ext2 максимально проста и очень старая, так что с ней меньше вероятность каких-то косяков по сравнению с более новыми вариантами. Даже при отсутствии поддержки в самой ОС и использовании стороннего софта. По сути ext2 по уровню кросс-платформенной поддержки сегодня на уровне FAT только без всех этих 8.3 и пр. ограничений и костылей типа vfat.

Stanson ★★★★★
()

exfat - единственная файловая система, пригодная для кроссплатформенного использования, ибо не поддерживает права доступа. Я могу спокойно передать диск с данными кому угодно, зная, что все будет прочитано. И получатель сможет дополнить данные и передать ещё кому-то. И все опять сработает. Все остальные прекрасные журналируемые файловые системы, с развитой системой доступа, со снапшотами и прочими возможностями годятся только для персонального или сетевого использования. Если персонального - не забудьте записать пароли не бумажку, ибо через десять лет можете и не вспомнить. Очень жаль, что открытое сообщество так и не смогло написать файловую систему подобную exfat для понятных и востребованных целей. Зато не прекращается меренье пиписьками в создании сумрачных самодостаточных чудищ типа btrfs, которой, чтобы просто попользоваться и попробовать дивацкие возможности, месяц надо читать документацию.

anonymous
()

Оказалось, что несмотря на заявленную поддержку exfat, она, блин, реально разная под разные ОС.

Я тоже разок не смог даже увидеть файлы на диске в «Окнах - 7», записанные и хорошо читаемые в «Линуксе». Похоже на то, что изначально форматировать жёсткий диск необходимо в «Окнах», чтобы потом записывать и читать файлы в разных операционных системах.

Enthusiast ★★★
()
Ответ на: комментарий от anonymous

Очень жаль, что открытое сообщество так и не смогло написать файловую систему подобную exfat для понятных и востребованных целей

Ну напишут, допустим. В линуксе она работать будет. А в винде? :) MS вроде как плевать, что там открытое сообщество разрабатывает.

PeleWin
()

Какие выводы сделал я:

  1. Хотите хранить долго – берите молоток + зубило + скала = древнедидовский, проверенный временем секрет долговечного хранения информации.
  2. Хотите хранить долго и получать доступ из разных ОС – правило 3-2-1.
anonymous
()
Ответ на: комментарий от MagicMirror

Он нужен чтобы в случае смерти контроллера можно было в приницпе прочитать данные. Смерть диска происходит не так как ты ее себе представляешь, он чаще всего не переходит в read only, а просто тихо и навсегда исчезает из списка устройств

rtxtxtrx ★★
()
Ответ на: комментарий от rtxtxtrx

я из снапшота все восстановлю

А с этим? Как раз в тему топика.

а на ext4 специальной утилитой либо скрипт бы написал

Видимо всё же не очень то важные

MagicMirror ★★
()
Последнее исправление: MagicMirror (всего исправлений: 2)
Ответ на: комментарий от MagicMirror

Нет. У него проблема с тем, что маковская реализация драйвера под exFat не может читать файловые системы, созданные с других ОС. Презрением к следованию протоколам отличались обычно индусы из микрософта…

rtxtxtrx ★★
()
Ответ на: комментарий от rtxtxtrx

Ну т.е. ты отрицаешь существование багов в драйверах (особенно в коровьих файлухах со снапшотами, ага) и то, что «важные» данные на рейде можно необратимо уничтожить одной ошибкой?

MagicMirror ★★
()
Ответ на: комментарий от MagicMirror

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

rtxtxtrx ★★
()
Последнее исправление: rtxtxtrx (всего исправлений: 1)
Ответ на: комментарий от lx1

Ты же fat32 не пользовался. А exfat - то же самое, только байтиков добавили, чтоб большие файлы помещались. А так самая портируемая система - ext2fs.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от rtxtxtrx

нет одной ошибкой ты их не уничтожишь

От авторов «Со мной такого не произойдёт» и «Сто раз так делал». Хотя плевать мне на твои данные, делай как хочешь.

MagicMirror ★★
()
Ответ на: комментарий от MagicMirror

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

rtxtxtrx ★★
()
Последнее исправление: rtxtxtrx (всего исправлений: 1)

попытка исправить ошибки ФС может привести к еще более серьезному повреждению данных

Звучит как Norton Disk Destroyer.

anonymous
()
Ответ на: комментарий от Khronos

Я долго искал ФС для файлопомойки (фильмы, музыка, фотки) которая будет работать для винды и линукса, и перепробовав ntfs, btrfs, ext3, остановился на exfat.

Мне оказалось проще поставить на венду парагон и держать файлопомойку на ext4. Хотя, возможно это потому что у меня 95\5% линукса и венды. Если(когда) было наоборот, то держал файлопомойку на ntfs, но с такой конфигурацией я помню намучался, с ext4 и парагоном проблем меньше.

Loki13 ★★★★★
()

..exfat, она, блин, реально разная под разные ОС…

не exfat, не гневите разумный смысл. это просто набор описаний :)
а драйвер. драйвер можно написать через голову, а можно через совершенно противоположное место.
ну и макось… вы учтите месье это не бог, а просто верованием в абсолютизм епла, подпертая коммерческими интересами епла :)
вы отступили от предписанного правоверного пути за что и были покараны еплом за еретизм.

забыл еще один пунктик. хотите правильно копировать по сети, используй rsync или syncthing.

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)