Короче, я почему-то уверовал, что 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 для дисков, чтобы работать с файлами одновременно в разных ОС, то вы, как и я, очень наивны. По факту, это невозможно без каких-то коллизий. Возможно, вам просто везет (до поры до времени). Но обязательно наступит момент, когда файлы будут показаны как «поврежденные» в одной из ОС.
А самый приколдес еще в том, что условная попытка исправить ошибки ФС может привести к еще более серьезному повреждению данных. Потому что реализация устранения ошибок в разных ОС основана на, как вы поняли, реализации самого драйвера для ФС. Я художник – я так вижу, блин))
Одним словом, я очередной раз понял, что «кроссплатформенность» это такая эфемерная штука, что лучше этим словом вообще не пользоваться при описании чего-то, что должно хоть как-то работать в двух разных средах.
Какие выводы я сделал:
- Хотите хранить долго – берите ФС для той ОС, с которой работаете.
- Хотите хранить долго и получать доступ из разных ОС – передавайте по сети.
- Хотите временно что-то писать на флешки или переносные диски без гарантии сохранности данных – окей, exfat подойдет.
Такие дела :)