URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 54917
[ Назад ]

Исходное сообщение
"Перекодирование имен файлов на vfat/cd"

Отправлено Александр , 28-Мрт-05 14:38 
Доброго времени суток!

Столкнулся со следующей проблемой. На сервере (amd64) стоит FreeBSD 5.3.
Не удается смонтировать раздел с msdos_fs с русскими именами файлов.

Строки из fstab:
/dev/acd0 /cdrom cd9660  ro,noauto,-Ckoi8-r                 0 0
/dev/da0  /flash msdosfs rw,noauto,-Wkoi2dos,-Lru_RU.KOI8-R 0 0

Монтирование происходит без ошибок, но при просмотре каталога получаем:
%ll /flash/
ls: ?????: Invalid argument
ls: ????????: Invalid argument
ls: ?ЙЖБО?ЯпЭбм.,,1*`k_: Invalid argument
ls: Л?П[?бмбноЬ).*`k_: Invalid argument
ls: `]od])-: Invalid argument
ls: оЬЭздтЬ*o]r: Invalid argument
total 0

Аналогичная ситуация и с /cdrom...

Необходимые модули вроде имеются в наличии:
%kldstat
Id Refs Address            Size     Name
1   18 0xffffffff80100000 522bf0   kernel
2    1 0xffffffff80623000 7c20     if_rl.ko
3    1 0xffffffff8062b000 a728     if_sk.ko
4    1 0xffffffff80636000 6038     snd_via8233.ko
5    2 0xffffffff8063d000 2ca38    sound.ko
6    1 0xffffffff8cd5f000 24e25    pf.ko
7    1 0xffffffff8cea1000 16b67    radeon.ko
8    1 0xffffffff8d025000 222      msdosfs_iconv.ko
9    1 0xffffffff8d026000 1cac     libiconv.ko

Куда копать? Вкомпилировать libiconv в ядро? При монтировании без
-W<...> -L<...> / -C<...> имена отображаются ????? но хоть работать
можно, а с опциями -- никак! Дома на i386 в той же конфигурации всё
работает правильно.


Содержание

Сообщения в этом обсуждении
"Перекодирование имен файлов на vfat/cd"
Отправлено kir , 28-Мрт-05 18:42 

а русский вообще есть на той бзде?


"Перекодирование имен файлов на vfat/cd"
Отправлено Александр , 29-Мрт-05 08:26 
>
>
>а русский вообще есть на той бзде?

Конечно есть. Пишу вот по-русски :) Всё по хандбуку сделано.
С русским проблема только в перекодировании имён файлов с фат/сиди.
В самбе никаких проблем нет (с русскими именами файлов).
У меня одно единственное предположение осталось, что это глюк
архитектуры (точнее реалиазации под неё). Но, блин, как побороть-то?
Мне вообще видимо катастрофически "везёт" с amd64! Умудрился купить
плату с интегрированным LAN в котором только спустя месяц после релиза
пофиксили (едва ли не единственный) баг в ядре! Две недели мучился, потом
нашёл патч для ядра и только ещё через пару недель наконец поправили
дерево исходников. А с кодировками ничего поделать не могу!

Есть в форуме ещё владельцы amd64 под FreeBSD? Откликнитесь, пожалуйста,
может я действительно что-то не так настроил?


"Перекодирование имен файлов на vfat/cd"
Отправлено Александр , 29-Мрт-05 17:14 
Эхх...
Ну неужели нет в форуме людей с бсд на амд64? Помогите бедному
пользователю. Замучился уже.

"Перекодирование имен файлов на vfat/cd"
Отправлено lavr , 29-Мрт-05 17:21 
>Эхх...
>Ну неужели нет в форуме людей с бсд на амд64? Помогите бедному
>
>пользователю. Замучился уже.

боюсь дело не в amd64, а в неправильности прописки опций для msdosfs в
fstab, посмотри внимательно man mount_msdosfs и целиком.


"Перекодирование имен файлов на vfat/cd"
Отправлено co6aka , 29-Мрт-05 20:10 
FreeBSD 5.3
У меня при переходе с 5.2.1 на 5.3 сд с русским через fstab не стал отображаться. Вот как есть:

%cat /etc/fstab
#skip
dev/acd0   /cdrom  cd9660  ro,noauto       0       0
#skip
/dev/da0s1 /flash  msdos   rw,noauto,-W=koi2dos,-L=ru_RU.KOI8-R    0       0

для сд сделал два командных файлика
viking# cat /usr/sbin/cdm
#!/bin/sh
/usr/sbin/cdcontrol -f /dev/acd0 close && /sbin/mount_cd9660 -C koi8-r -o ro /dev/acd0 /cdrom

viking# cat /usr/sbin/cdu
#!/bin/sh
/sbin/umount /cdrom && /usr/sbin/cdcontrol -f /dev/acd0 eject



"Перекодирование имен файлов на vfat/cd"
Отправлено Александр , 29-Мрт-05 21:55 
>FreeBSD 5.3
>У меня при переходе с 5.2.1 на 5.3 сд с русским через
>fstab не стал отображаться. Вот как есть:

На amd64?

>%cat /etc/fstab
>#skip
>dev/acd0   /cdrom  cd9660  ro,noauto    
>  0       0
>#skip
>/dev/da0s1 /flash  msdos   rw,noauto,-W=koi2dos,-L=ru_RU.KOI8-R    0  
>     0
А знак равенства ставить зачем? Дома и без него работает. Ну, тоже
попробую завтра :) Флэшка-то хоть нормально читается?
>
>для сд сделал два командных файлика
>viking# cat /usr/sbin/cdm
>#!/bin/sh
>/usr/sbin/cdcontrol -f /dev/acd0 close && /sbin/mount_cd9660 -C koi8-r -o ro /dev/acd0 /cdrom
>
Ну, у меня в fstab'е то же самое. Или при монтировании с его помощью
результат другой? У меня никакой разницы нет. И так, и так ошибка. Хотя,
попробую завтра ещё раз.
>
>viking# cat /usr/sbin/cdu
>#!/bin/sh
>/sbin/umount /cdrom && /usr/sbin/cdcontrol -f /dev/acd0 eject
>


"Перекодирование имен файлов на vfat/cd"
Отправлено Александр , 29-Мрт-05 21:49 
>боюсь дело не в amd64, а в неправильности прописки опций для msdosfs

>fstab, посмотри внимательно man mount_msdosfs и целиком.

Так ведь в том и дело, что дома при тех же настройках всё ОК (i386), а с
amd64 -- косяк. diff'ом файлы сравнивал :) Вручную монтировал -- та же
беда... Ладно, подожду 5.4.


"Перекодирование имен файлов на vfat/cd"
Отправлено lam , 30-Мрт-05 07:07 
может поможет
/dev/da0   /mnt/rdev      msdos   rw,noauto,-L=ru_RU.KOI8-R,-D=CP866,-o=longnames  0  0

"Перекодирование имен файлов на vfat/cd"
Отправлено Александр , 30-Мрт-05 08:10 
>может поможет
>/dev/da0   /mnt/rdev      msdos  
>rw,noauto,-L=ru_RU.KOI8-R,-D=CP866,-o=longnames  0  0

Не помогло :( Странно всё это... Уважаемые гуру,
подскажите куда ещё копать можно! Опции монтирования я, кажется,
перепробовал уже все. Да и не в первый раз я всё это настраиваю.
На домашней же машине работает и с -W (obsolete) и с -D...
Странно, что и с CD и с msdosfs проблемы одни и те же. Видимо,
что-то не так где-то в ядре. Но что и где? Где-то пробегала
информация, что в amd64 не до конца реализована
поддержка модулей ядра. libiconv.ko подгружается, но, может, работает
не так? Можно ли его вкомпилировать в ядро и, если да, то как?


"Перекодирование имен файлов на vfat/cd"
Отправлено butcher , 30-Мрт-05 08:23 

>Так ведь в том и дело, что дома при тех же настройках
>всё ОК (i386), а с
>amd64 -- косяк. diff'ом файлы сравнивал :) Вручную монтировал -- та же
>
>беда... Ладно, подожду 5.4.

Я монтирую так:
mount_msdosfs -m 664 -M 775 -L ru_RU.KOI8-R -D CP866 /dev/da0s1 /mnt/usb


"Перекодирование имен файлов на vfat/cd"
Отправлено Александр , 30-Мрт-05 09:02 
>
>>Так ведь в том и дело, что дома при тех же настройках
>>всё ОК (i386), а с
>>amd64 -- косяк. diff'ом файлы сравнивал :) Вручную монтировал -- та же
>>
>>беда... Ладно, подожду 5.4.
>
>Я монтирую так:
>mount_msdosfs -m 664 -M 775 -L ru_RU.KOI8-R -D CP866 /dev/da0s1 /mnt/usb

НЕ ПОЛУЧАЕТСЯ!!! :(((
# mount_msdosfs -m 664 -M 775 -L ru_RU.KOI8-R -D CP866 /dev/fd0 /floppy/
# ll /floppy/
ls: ????: Invalid argument
ls: Лбми?П,/: Invalid argument
ls: ^kkg[on_*p^v: Invalid argument
ls: lgc[cn]ld*od: Invalid argument
ls: o_da`: Invalid argument
total 0


"Перекодирование имен файлов на vfat/cd"
Отправлено butcher , 30-Мрт-05 09:24 
>НЕ ПОЛУЧАЕТСЯ!!! :(((

а локализация точно нормально сделана?


"Перекодирование имен файлов на vfat/cd"
Отправлено Александр , 30-Мрт-05 09:52 
>>НЕ ПОЛУЧАЕТСЯ!!! :(((
>
>а локализация точно нормально сделана?
Гм... Ну пишу ведь по-русски :)

%locale
LANG=ru_RU.KOI8-R
LC_CTYPE="ru_RU.KOI8-R"
LC_COLLATE="ru_RU.KOI8-R"
LC_TIME="ru_RU.KOI8-R"
LC_NUMERIC="ru_RU.KOI8-R"
LC_MONETARY="ru_RU.KOI8-R"
LC_MESSAGES="ru_RU.KOI8-R"
LC_ALL=

... и следом:

%ll /floppy/
ls: ????: Invalid argument
ls: Лбми?П,/: Invalid argument
ls: ^kkg[on_*p^v: Invalid argument
ls: lgc[cn]ld*od: Invalid argument
ls: o_da`: Invalid argument
total 0

Или что там еще локализ(ир)овать :)?


"Перекодирование имен файлов на vfat/cd"
Отправлено Александр , 01-Апр-05 08:21 
Мда... Вкомпилировал LIBICONV в ядро вместе с MSDOSFS_ICONV, а толку всё равно никакого :( Последний раз спрашиваю: есть ли в форуме владельцы/администраторы FreeBSD на amd64? Отзовитесь, пожалуйста. У меня к вам кроме этого ещё пара вопросов.