LINUX.ORG.RU

Не читается директория на vfat

 , , ,


0

1
@bq:23:51:13:/tmp/dl$ ls -l /media/bodqhrohro/0000-483B/
ls: невозможно получить доступ к '/media/bodqhrohro/0000-483B/Зображен.': Нет такого файла или каталога
итого 2048
drwxr-xr-x 2 bodqhrohro bodqhrohro   32768 мая 24  2011  Activenotes
drwxr-xr-x 4 bodqhrohro bodqhrohro   32768 июл  3 04:49  Android
drwxr-xr-x 2 bodqhrohro bodqhrohro   32768 авг 18  2010  Attachments
-r--r--r-- 1 bodqhrohro bodqhrohro   59306 апр 30  2009  autorun.inf
-rw-r--r-- 1 bodqhrohro bodqhrohro     164 мар 10  2010  card_content.xml
drwxr-xr-x 4 bodqhrohro bodqhrohro   32768 фев 22  2010  cities
drwxr-xr-x 3 bodqhrohro bodqhrohro   32768 мар  9  2010  download
drwxr-xr-x 3 bodqhrohro bodqhrohro   32768 июл  3 04:49  Huawei
drwxr-xr-x 5 bodqhrohro bodqhrohro   32768 фев 19  2010  Images
-rwxr-xr-x 1 bodqhrohro bodqhrohro 1066304 ноя  1  2009  Install_Nokia_Ovi_Suite.exe
drwxr-xr-x 2 bodqhrohro bodqhrohro   32768 июл  3 04:48  LOST.DIR
drwxr-xr-x 5 bodqhrohro bodqhrohro   32768 фев 19  2010  Music
drwxr-xr-x 2 bodqhrohro bodqhrohro   32768 авг 18  2010  Nokia
drwxr-xr-x 5 bodqhrohro bodqhrohro   32768 мар 10  2010  Nokia_Ovi_Suite_install_files
drwxr-xr-x 2 bodqhrohro bodqhrohro   32768 янв  1  2010  nokia_unprocessed_images_
drwxr-xr-x 2 bodqhrohro bodqhrohro   32768 янв  1  2010  predeftemp
drwxr-xr-x 8 bodqhrohro bodqhrohro   32768 мар 15  2010  Private
drwxr-xr-x 5 bodqhrohro bodqhrohro   32768 окт 26  2012  progs
drwxr-xr-x 3 bodqhrohro bodqhrohro   32768 сен 26  2012  RECYCLER
drwxr-xr-x 3 bodqhrohro bodqhrohro   32768 окт 22  2010  Sounds
drwxr-xr-x 4 bodqhrohro bodqhrohro   32768 фев 19  2010  system
drwxr-xr-x 2 bodqhrohro bodqhrohro   32768 окт 26  2012  temp
-rw-r--r-- 1 bodqhrohro bodqhrohro   41016 мая 25  2014  vid1.pdf
drwxr-xr-x 2 bodqhrohro bodqhrohro   32768 фев 19  2010  Videos
drwxr-xr-x 2 bodqhrohro bodqhrohro   32768 окт 26  2012  Видео
drwxr-xr-x 2 bodqhrohro bodqhrohro   32768 июн 30  2014  Відеокліпи
d????????? ? ?          ?                ?            ?  Зображен.
drwxr-xr-x 2 bodqhrohro bodqhrohro   32768 окт 21  2018 'Отр. файли'
drwxr-xr-x 2 bodqhrohro bodqhrohro   32768 окт 26  2012 'Прин. ф-лы'
drwxr-xr-x 2 bodqhrohro bodqhrohro   32768 ноя  3  2013 'Резер. копії'
drwxr-xr-x 2 bodqhrohro bodqhrohro   32768 окт 26  2012  Фото

Что это за 5.3-то такое? Может, точка в конце виновата?

Кстати, вот точно такие же знаки вопроса видели давеча, когда в Docker-контейнере, базирующемся на debian:bullseye-slim, ковырялись. Но там тупо statx порезан, видимо.

Пробовали с опциями монтирования шаманить — тоже не работают.

[14458.342699] FAT-fs (sdb): Unrecognized mount option "dotsOK=yes" or missing value
[14495.207633] FAT-fs (sdb): Unrecognized mount option "dots" or missing value

man mount гласит, что dotsOK умышленно для vfat запрещён.

штоделотб

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

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

exfat

Она разве с FAT совместима вообще?

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

«система»?

ага, ты правильно меня понял. я не нашёл более подходящего термина, пока писал комментарий.

я тут поэкспериментировал – видимо, действительно дело в точке. правда, стандартными средствами телефона (не Nokia) и Debian получить имя директории с точкой в конце не получилось.

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

но программисты Nokia сумели найти «ахиллесову пяту» vfat…

Пфф, а при чём тут программисты-то? Разве что при том, что защиту от дурака для малоизвестных особенностей ископаемой ФС не сделали. Локализаторы на украинский сократили слово, чтобы влезало на маленький экранчик, а о подобных побочных эффектах их не предупредили, вот и всё.

shortname=win95

Та же фигня, и с winnt/lower тоже. Оно ведь и не за это отвечает, по сути.

Хорошо бы вот вообще без длинных имён примонтировать, чтоб досовские отображались, но такого в опциях не нашли.

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

программисты при том, что телефон создаёт файлы на карте памяти через их код. хотя совсем непонятно, как они этого достигли.

# ls -lah
...
drwxr-xr-x  2 user user  32K сен 24 17:57 Зображен

# mkdir Зображен.
mkdir: невозможно создать каталог «Зображен.»: Файл существует

единственно у меня «дисковое устройство»

# fdisk -l /dev/sdd
Диск /dev/sdd: 28,9 GiB, 30989615104 байт, 60526592 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x00000000

Устр-во    Загрузочный начало    Конец  Секторы Размер Идентификатор Тип
/dev/sdd1                8192 60526591 60518400  28,9G             c W95 FAT32 (LBA)

а у тебе, если я правильно понял, карта памяти как «большая дискета»

но влиять это не должно, как мне кажется.

остаётся смотреть записи в корневом каталоге:

  • чем «описание» Зображен. нарушает стандарт FAT32

кстати, как оно вообще возникло? в листинге есть файлы с длинными именами – проблем с ними нет. а в случае с Зображен. имя почему-то обрезано к 8.3 (да ещё и точка не игнорируется)

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

как они этого достигли

Очевидно, что реализация FAT в Series 40 просто клала болт на эти конвенции про точки. А линуксячья почему-то не умеет, хотя ntfs-3g вон, например, запросто может гадить любыми символами в пути, а chkdsk ругается потом ;DDD

имя почему-то обрезано к 8.3

Это никак не может быть 8.3, ибо 8 хрюникодных символов в 8 байт не влезут банально.

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

8.3 в символах, а не байтах

вот начальная часть «описания имени» файла 24-09-2021.1.tar.gz в корневом каталоге FAT32

00800de0  01 32 00 34 00 2d 00 30  00 39 00 0f 00 35 2d 00  |.2.4.-.0.9...5-.|
00800df0  32 00 30 00 32 00 31 00  2e 00 00 00 31 00 2e 00  |2.0.2.1.....1...|
00800e00  32 34 2d 30 39 2d 7e 32  47 5a 20 20 00 00 13 6f  |24-09-~2GZ  ...o|
00800e10  38 53 38 53 00 00 d4 68  38 53 c4 71 c8 76 7e 03  |8S8S...h8S.q.v~.|
00800e20  41 17 04 3e 04 31 04 40  04 30 04 0f 00 b3 36 04  |A..>.1.@.0....6.|
00800e30  35 04 00 00 ff ff ff ff  ff ff 00 00 ff ff ff ff  |5...............|
anonymous ()
Ответ на: комментарий от anonymous
00800de0  01 32 00 34 00 2d 00 30  00 39 00 0f 00 35 2d 00 |.2.4.-.0.9...5-.|
00800df0  32 00 30 00 32 00 31 00  2e 00 00 00 31 00 2e 00 |2.0.2.1.....1...|
00800e00  32 34 2d 30 39 2d 7e 32  47 5a 20 20 00 00 13 6f |24-09-~2GZ  ...o|
00800e10  38 53 38 53 00 00 d4 68  38 53 c4 71 c8 76 7e 03 |8S8S...h8S.q.v~.|
00800e20  41 17 04 3e 04 31 04 40  04 30 04 0f 00 b3 36 04 |A..>.1.@.0....6.|
00800e30  35 04 00 00 ff ff ff ff  ff ff 00 00 ff ff ff ff |5...............|

в «Предпросмотре» выглядит как и должно, а после публикации «фигня»

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

mv Зображен\. Зображен не проходит – для драйвера ФС это одно и тоже.

# mv Зображен Зображен\.
mv: невозможно перенести 'Зображен' в свой собственный подкаталог, 'Зображен./Зображен'

я сделал «финт»

# mv Зображен Вображен\.
# ls -lah
...
drwxr-xr-x  2 user user  32K сен 24 17:57 Вображен
anonymous ()
Ответ на: комментарий от mertvoprog

я же показал часть записи из корневой директории FAT32 описывающей файл – его имя состоит из 2-байтных символов

00800de0  01 32 00 34 00 2d 00 30  00 39 00 0f 00 35 2d 00  |.2.4.-.0.9...5-.|
00800df0  32 00 30 00 32 00 31 00  2e 00 00 00 31 00 2e 00  |2.0.2.1.....1...|

короткое имя «да» в байтах

00800e00  32 34 2d 30 39 2d 7e 32  47 5a 20 20 00 00 13 6f  |24-09-~2GZ  ...o|

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

anonymous ()

Потому что стандарт тонко намекает что «file or directory name can not end with space or period»(про то, что нельзя ставиться в конце пробел вот вообще не подозревал). Подозреваю, на правах К.О., что точка считается разделителем между файлом и расширением, а расширением по каким-то причинам не может быть пустым, если есть точка.

Ну а те девайсы, где такие файлы могут быть созданы очевидно на стандарт кладут болт.

В венде можно попробовать переименовать такую шнягу используя UNC-пути(я так баловался созданием директорий "." и "..", которые не видны в стандартном проводнике от слова совсем). Что делать в линуксе с такими файлами - хз

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

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

и в правильной FAT* её не будет в элементе каталога, а расширение может быть от 0 до 3 символов. я пытался создавать файлы и директории с точкой в конце – вполне успешно создаются, но точка в конце имени не появляется. у ТС она (вероятно) каким-то образом просочилась в имя несчастной директории. если это имя действительно создаёт прошивка телефона сделать практически мало, что можно.

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

ещё одно доказательство, что баг именно в прошивке телефона. если в телефоне эту директорию переименовать? скажем просто удалить злополучную точку или дописать символ(ы) после неё… телефон будет продолжать использовать её для сохранения снимков? и как компьютер (linux|windows) на это прореагирует

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

переименовать

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

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

баг

Впихнуть технически можно, сайдэффектов не создаёт — значит, не баг.

телефон будет продолжать использовать её для сохранения снимков?

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

Даже пропатчить прошивку околонереально, ибо, как утверждают @EXL, на Series40-фонах анальная проверка цифровой подписи в бутлоадере.

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

какая это модель Nokia (для потомков истории)? самый «простой» лайфхак костыль это переименование директории в телефоне «для компьютера/для прошивки 40-series». как вариант(ы?)

  • копирование/перемещение файлов в телефоне
  • смена языка интерфейса (прощай локализация)

хотел уже публиковать этот пост, как меня «осенило» такой идеей – с точки зрения «компьютера» имеет место нестандартное описание элемента файловой системы, что можно трактовать как повреждение ФС. при этом само содержимое «повреждённой» директории является корректным с точки зрения ФС. поэтому я предлагаю попытаться использовать PhotoRec|Testdisk|любую другую программу для восстановления файлов/ФС – такое ПО должно бы корректно найти содержимое (файлы) неправильной директории и сохранить его куда требуется. правда, проверить «работоспособность» не могу – получить недопустимое имя директории так и не удалось. необходимо руками испортить описание элемента корневой директории (это «просто», но «чё-то очкую»:) ) или найти nokia 40-series (представляю ;) реакцию нынешних «менеджеров по продажам»)

anonymous ()

Попробуй эти параметры:

mount -t vfat /dev/sdb1 -o uid=1000,gid=100,codepage=866,iocharset=utf8,umask=0022,fmask=0022 /mnt/fat32

Только codepage=866,iocharset=utf8 влияет только на короткие имена, создаваемые параллельно с длинными. Попробуй также так:

mount -t msdos /dev/sdb1 -o uid=1000,gid=100,codepage=866,iocharset=utf8,umask=0022,fmask=0022 /mnt/fat32

В этом случае, смонтируется именно с короткими именами.

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

Винда, кстати, тоже не осиливает это схавать

Под виндой, кстати, такую дичь прекрасно осиливает MSYS2. Попробовал на флешке с exFAT: и каталог с точкой в конце имени создал, и файлик в нем, и chdir отрабатывает. Проводник и cmd.exe потом на этом обламываются, да, показывать каталог показывают, но зайти в него не дают. Прикольно.

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

mount -t vfat /dev/sdb1 -o uid=1000,gid=100,codepage=866,iocharset=utf8,umask=0022,fmask=0022 /mnt/fat32

Та же фигня:

@bq:18:14:25:/tmp/dl$ ls /mnt/fat32/
ls: невозможно получить доступ к '/mnt/fat32/Зображен.': Нет такого файла или каталога
 Activenotes   card_content.xml   Images                        Nokia                           Private    system     Видео        'Прин. ф-лы'
 Android       cities             Install_Nokia_Ovi_Suite.exe   Nokia_Ovi_Suite_install_files   progs      temp       Відеокліпи   'Резер. копії'
 Attachments   download           LOST.DIR                      nokia_unprocessed_images_       RECYCLER   vid1.pdf   Зображен.     Фото
 autorun.inf   Huawei             Music                         predeftemp                      Sounds     Videos    'Отр. файли'

msdos

mount: /mnt/fat32: wrong fs type, bad option, bad superblock on /dev/sdb, missing codepage or helper program, or other error.
mertvoprog ()
Ответ на: комментарий от anonymous

какая это модель Nokia

112 Україна

переименование директории в телефоне

Для новых-то файлов всё равно создастся с точкой, потому что в локализации так зашито.

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

смена языка интерфейса

Зрада.

реакцию нынешних «менеджеров по продажам»

Ясное дело — в магазинах не найдёте, на Series 40 уже лет 7 ничего не выпускают. Только на барахолках, если повезёт, то даже новую в коробочке.

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

что локализация таки в файле лежит и сервисными тулзами её отредактировать

шанс есть

Зрада.

«мы никому не скажем… правда-правда, честно-честно…» )) // где-то в интернете встречал

программы восстановления файлов не помогают или вариант не рассматривается?

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

или вариант не рассматривается?

Зачем столько возни, когда проще Не читается директория на vfat (комментарий) ?

Цель треда в том, чтобы заставить драйвер vfat не выделываться и класть болт на шиндузятные конвенции, как это делает NTFS-3G с выключенной windows_names. Если в нём все средства для этого поломаны и надо патчить, то обсуждать тут нечего, в принципе: простых путей нет вообще.

mertvoprog ()

Взялся было поиграть в эту игру.

Удалось воспроизвести такое поведение при ручной правке FAT на флешке. Создаем в корне каталог Зображен. Идём в кишки флешки. Находим эту запись и дописываем точку (00 2E) в long name (6-11). При этом short name не трогаем, потому что там и трогать нечего - 8 символов в имени уже заняты, 3 символа в расширении не пригодятся никак. И получаем точно такую же картину.

Видимо теперь надо найти в исходниках vfat то место, где оно ассоциирует long name с short name и придумать какую-то проверку «игнорировать последнюю точку в имени, если имя из 8 символов». Как-то так. Что ли.

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

Если вам просто попасть в этот каталог, тогда попробуйте

cd /media/bodqhrohro/0000-483B/çÄüÉÇåàì
Если монтировали без опций

Или

cd /media/bodqhrohro/0000-483B/ЗОБРАЖЕН
Если с -o codepage=866

Короткие имена не видны в ls. Но работают.

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

Угу, только короткое имя надо всё же как-то узнать.

Вы-то сфабриковали одно, а реально там другое. И уж наверняка не 8 букв хрюникодом. По крайней мере, ни ЗОБРАЖЕН, ни ЗОБРАЖ~1 не работают.

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

Подглядели, ______~4 она называется.

В принципе, и так сойдёт, тред можно закрывать.

Впечатлены, очень скучали по коротким именам после венды, а на онтопике, оказывается, они тоже работают ;D

mertvoprog ()