LINUX.ORG.RU
ФорумTalks

Кривая реализация vfat в линуксе?

 , ,


0

1

Если почитать man mount, можно найти там такое:

Mount options for fat
(Note: fat is not a separate filesystem, but a common part of the msdos, umsdos and vfat filesystems.)
...
check=value
Three different levels of pickyness can be chosen:
 r[elaxed]
Upper and lower case are accepted  and  equivalent,  long name parts are truncated (e.g. verylongname.foobar becomes verylong.foo), leading and  embedded spaces are accepted in each name part (name and extension).
 n[ormal]
Like  "relaxed",  but  many  special characters (*, ?, <, spaces, etc.) are rejected.  This is the default.
 s[trict]
Like "normal", but names may not contain long parts and special  characters that are sometimes used on Linux, but are not accepted by MS-DOS are rejected. (+, =, spaces, etc.)

Если посмотреть в Documentation/filesystems/vfat.txt

check=s|r|n   -- Case sensitivity checking setting.
 s: strict, case sensitive
 r: relaxed, case insensitive
 n: normal, default setting, currently case insensitive

А на самом деле, как оказалось, эти опции работают только для mount -v msdos, а в vfat — опция не проверяется вообще.

Причём символ ":" запрещён даже с msdos и check=strict, в то же время, как OpenBSD без проблем и с дефолтными опциями монтирования позволяет создать на FAT разделе файлы с двоеточиями в имени.

★★★★★

Последнее исправление: Xenius (всего исправлений: 5)

Ответ на: комментарий от AiFiLTr0

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

А туда как-то можно написать чтоб не палить email?

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

В кернель багзиллу добавь, если боишься разбираться сам.

AiFiLTr0 ★★★★★
()

Хм. Странно. Вроде файлы с именами содержавшими всякие спецсимволы создавал из-под Debian Lenny на разделе с FAT.

leonidko ★★★★
()

Причём символ ":" запрещён даже с msdos и check=strict, в то же время, как OpenBSD без проблем и с дефолтными опциями монтирования позволяет создать на FAT разделе файлы с двоеточиями в имени.

Так это проблема OpenBSD, а не линукса. Потому что это запрещённый символ, с файлом, имеющим двоеточие в названии, возникнут проблемы.

Lighting ★★★★★
()
Ответ на: комментарий от Ja-Ja-Hey-Ho

а у него давно полноценный FUSE-модуль появился? помнится раньше эту фс - как и ntfs - можно было только читать.

Komintern ★★★★★
()

Скорее просто документацию забыли поправить.

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

Потому что это запрещённый символ, с файлом, имеющим двоеточие в названии, возникнут проблемы.

ОК, опиши мне что мне сделать в OpenBSD чтоб с этим файлом там у меня возникли проблемы?

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

ОК, опиши мне что мне сделать в OpenBSD чтоб с этим файлом там у меня возникли проблемы?

Ребутнуться в Windows и попробовать открыть.

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

Ребутнуться в Windows и попробовать открыть.

1) у меня нет Windows.

2) если будут проблемы — это проблемы Windows, так как в других ОС всё норм.

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

1) у меня нет Windows.

Тогда зачем использовать FAT?

2) если будут проблемы — это проблемы Windows, так как в линаксе и других велосипедОС, не соблюдающих стандарты, всё норм.

Наверное, этим принципом руководствуются многие линупс-разработчики.

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

Это как раз Windows не соблюдает стандарты, в частности POSIX. А мелкомягкие руководствуются этим принципом, когда делают свои реализации ECMA-script, OpenDocument, etc

Тогда зачем использовать FAT?

Спроси у разработчиков фотоаппаратов, плееров и u-boot

Кстати Linux-то как раз соблюдает «стандарты», но проблем в нём нет.

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

Это как раз Windows не соблюдает стандарты, в частности POSIX. А мелкомягкие руководствуются этим принципом, когда делают свои реализации ECMA-script, OpenDocument, etc

Ну и к чему ты приплёл POSIX? В VFAT двоеточие - зарезервированный символ, использовать его в имени файла нельзя.

Спроси у разработчиков фотоаппаратов, плееров

Ну и зачем ты этой закрытой проприетарной гадостью пользуешься?

Кстати Linux-то как раз соблюдает «стандарты», но проблем в нём нет.

проблем в нём нет

Рассмеялся с фанатика.

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

Нет, именно для самой ФС.

даже википедия с тобой не согласна.

И, кстати, неплохо бы вспомнить, кто разработчик FAT.

это ничего не значит.

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

Кто ФС разрабатывает, тот из задаёт стандарты.

Если он сам их соблюдает.

А насколько строго Microsoft придерживалось собственных спецификаций (не знаю как FAT, но вот OOXML...)?

Нет, именно для самой ФС.

Для чего в FAT (12, 16, 32) зарезервирован символ двоеточия в имени файла? А как насчёт '*?<>«|'?

Я имел ввиду, нет проблем с открытием файлов с указанными символами в имени. Вот проблема с невозможностью их создания — есть.

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

Ребутнуться в Windows и попробовать открыть.

Годная идея.

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

ОК, опиши мне что мне сделать в OpenBSD чтоб с этим файлом там у меня возникли проблемы?

ну например в /etc/passwd двоеточие служит разделителем полей. потому ты не можешь сделать имя юзера, группу, шелл и домашний каталог с двоеточием.

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

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

Имя юзера с заглавной буквы тоже в принципе нельзя.

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

вот что написано в мане:

Usernames must start with a lower case letter or an underscore, followed by lower case letters, digits,
       underscores, or dashes. They can end with a dollar sign. In regular expression terms:
       [a-z_][a-z0-9_-]*[$]?

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

ибо там никаких прав тупо нет.

что для переносных накопителей подходит идеально.

с тобой не сильно хочу общаться, так что на этом заканчиваю.

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

что для переносных накопителей подходит идеально.

Мне были нужны права на переносном накопителе. Использовал Ext4. Наличие прав проблем не создаёт, если руки не кривые. А вот отсутствие — может создать.

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

Мне были нужны права на переносном накопителе

частный случай

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

У тебя какая-то другая википедия.

там речь идет про короткие имена, у длинных имен таких ограничений нет. http://en.wikipedia.org/wiki/Comparison_of_file_systems#Limits

Кто ФС разрабатывает, тот из задаёт стандарты.

стандарт на ФС - это стандарт на ФС, а ограничения OS - это ограничения OS. не думаю, что файл с именем con, prn, или nul является некорректным с точки зрения ФС DOS и NTFS, однако DOS и Windows не позволяют создавать такие файлы.

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

Имя юзера с заглавной буквы тоже в принципе нельзя.

Вообще можно, но не в апстриме, ЕМНИП.

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

ибо там никаких прав тупо нет.

что для переносных накопителей подходит идеально.

отсутствие необходимости прав доступа - частный случай. Тебе оно не нужно, а вот мне и ТСу - нужно. Если тебе права доступа не нужны, используй монтирование с опцией user(s). Тогда пользователь(и) будет иметь необходимые права (если они не нужны).

с тобой не сильно хочу общаться, так что на этом заканчиваю.

понял, что сливаешь? Это твоя проблема.

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

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

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

Мне интересно другое: как я буду читать ЕХТ4 на чужих машинах под Виндой?

ну я просто загружаюсь со своей флешки. я всё равно под чужой ОС себя неуютно чувствую(не важно, венда это или нет).

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

Не понял.

Без указания абсолютного имени - просто создай файл prn в текущем каталоге.

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

кстати, проверил щас такую чудесную вещь, как notepad. так вот, он не позволяет сохранить файл даже с именем prn.txt, думаю с открытием файлов с такими именами тоже будет куча проблем.

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

Я думаю лимит в ОС. На файлы: CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9

С точки зрения другой ОС никаких ограничений не должно быть, но может быть разработчики того же ntfs-3g программно поддерживать условленные ограничения?

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

а что еще на флешках юзать, кроме нтфс и фата?

ext4 без журнала.

Отсутствие журнала не единственная фича ФС на флешках. Нужно ещё и отсутствие прав доступа.

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

ну в самом начале я говорил как раз о том, что так называемые «зарезервированные символы» в vfat - они не на уровне ФС, а на уровне ОС, так же как и «зарезервированные имена файлов» на любой другой ФС.

но может быть разработчики того же ntfs-3g программно поддерживать условленные ограничения?

а ещё эти же ограничения могут поддерживать разработчики, например, udf - она ведь тоже может использоваться в windows™.

maloi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.