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)

Если убрать из этого всего «мак», то смело можно брать ntfs и в ус не дуть. Если оно не работает на маке, то кому до этого есть какое-то дело

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

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

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

Мак - это в целом закрытая экосистема, где они используют свои игрушки, свои проблемы и свои решения. При этом максимально ставя палки в колеса при взаимодействии с другими системами, вынуждая тебя или для всего парка купить маки или выкинуть его вообще.

Поэтому если есть проблема при взаимодействии мак-другая ОС, то значит ее решение никому не нужно (читай «так и задумано»).

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

Дочитал. Я не ошибся: «Учиться, учиться, учиться…»

Вопрос. Почему для EFI выбрали fat?.. Не отвечай, вопрос риторический.

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

Надо уметь. Надо уметь пользоваться. Пользоваться тем, чем умеешь.

Ты имеешь в виду, что стоит сидеть в рамках одной экосистемы и не дергаться?

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

exfat это надежная ФС для длительного хранения

Что-то пошло не так… из-за неверных изначальных предпосылок?

Ждем набега экспертов по бекапам на гиперпространнственно-временных распределенных системах хранения данных.

anonymous
()

Для того, чтоб пользоваться на любых устройствах, лично я (ИМХО) развернул дома nextcloud с пробросом наружу (что такое ружа? :) )
На работе настроил davfs, а в мобиле приложуха для этого.
Не надо ничего мудрить с ФС’ми

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

Ты прав, я действительно не понимал этого и исходил из неверной предпосылки. Почему? Да черт его знает. Почему люди иногда совершают ошибки, вот именно поэтому.

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

Почему люди иногда совершают ошибки, вот именно поэтому.

Ощибка, как действие, совершается в прошлом. Оценка содеянного (это тоже действие!) происходит сейчас. Сейчас я/мы всегда прав(ы).

anonymous
()

Короче, я почему-то уверовал, что exfat это надежная ФС для длительного хранения.

Она более щадящая для флеш-памяти.

Спойлер: она не кроссплатформенная, как бы не позиционировалась.

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

Dr64h ★★★
()

Не вижу связи между долговременностью хранения и тем что у мака битый драйвер exfat. Просто не используй мак и всё будет норм. Нафиг он нужен вообще. Впрочем зачем нужно exfat я тоже не знаю, ни разу не пользовался.

firkax ★★★★★
()

Одним словом, моя жопа сжалась в сингулярность. На диске были реально важные мне вещи, которые низя было потерять.

А что тут страшного? Ну восстановишь из бэкапа.

anonymous
()

Прости конечно, но - люди, у которых важные файлы «нельзя потерять» лежат на маргинальной нежурналируемой ФС без бэкапа - вам норм так жить?

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

Я пошел обратно на мак. Там все также 0 байт и нечитающиеся данные.

Макопроблемы, чувак.

Ни к exfat, ни к линуксу с вендой твоя простыня в оп-посте не имеет никакого отношения.

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

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

https://uefi.org/specs/UEFI/2.10/13_Protocols_Media_Access.html

13.3. File System Format

Conformance to the EFI specification and its associate reference documents is the only definition of FAT that needs to be implemented to support EFI. To differentiate the EFI file system from pure FAT, a new partition file system type has been defined.

tl;dr в efi/uefi поддерживается не fat, а (свой) кусок fat.

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

то смело можно брать ntfs и в ус не дуть.

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

При переносе файлов туда-обратно могут быть проблемы на обоих (win/lin) системах.

LamerOk ★★★★★
()

Значит мне везет, может до поры до времени. Я специально заменил ntfs на exfat после того, как диском попользовались на виндовом компе.

dmitry237 ★★★★
()

Для хранения важных файлов надо делать бэкапы. В хранении столько точек отказа, что один только выбор надежной ФС не даст никаких гарантий.

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

Khronos
()

а какая тогда файлуха на флешках при форматировании из вынды? Честно гря думал, что как раз exfat и вроде как работает и из под linux и вындовс.

vtVitus ★★★★★
()
Последнее исправление: vtVitus (всего исправлений: 1)
Ответ на: комментарий от entropy-ronin

Я сейчас перечитал текст свой и думаю прояснить один момент. Все верно, если бы не макось с ее приколдесами, я бы даже и не словил проблемы. linux<->win все всегда корректно работало (что даже удивительно).

Я не ожидал такой подляны от макоси, которая все дальше от бога, что называется.

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

Моя логика была такой: если вдруг сломается мак, то я не буду метаться в поисках драйверов, костылей или еще одной эпловской машины, чтобы файлы прочесть. Очевидно, что флешка с линуксом (ну или оффтопиком, простихоспади) у меня будет всегда под рукой, а вот эпловский девайс нет.

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

https://help.ubuntu.com/community/hfsplus – тут сказано, что журналирование нужно отключить, но может устаревшая инфа, вроде просто все: https://askubuntu.com/questions/332315/how-to-read-and-write-hfs-journaled-external-hdd-in-ubuntu-without-access-to-os

Короче, пробовать надо, я давно использовал.

Вообще, вероятно самое надежное решение – это ext4, платные драйвера для macOS и Windows имеются.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от James_Holden

Обычно я так не делаю, но тут пришлось какое-то время пожить с единственной копией на почти 2 ТБ :)

К слову, вот прям сейчас все это дело переезжает, как ты выразился, с маргинальной ФС на 8 ТБ с зеркалом в Synology.

lx1
() автор топика