LINUX.ORG.RU

Русские имена в FAT


0

0

Есть диск с FAT, есть линукс с локалью koi8-r. Дистрибутив Fedora 8. Если брать дистибутивное ядро (2.6.23.1-42.fc8), то вместо русских букв получаем утф-ные кракозяблы:

> ls /mnt/c/windows/*.bmp
/mnt/c/windows/пп╬п╩яп╠яп╣ п╨яяп╤п╣п╡п╟ 16.bmp

Если же использовать самосборное ядро, то все русские буквы отображаются правильно.

>mount | grep vfat
/dev/sda2 on /mnt/c type vfat (rw,noexec,nosuid,nodev,iocharset=koi8-r,codepage=866,user=sergey)

>lsmod | grep nls
nls_koi8_r 9153 3
nls_cp866 9153 3

>echo $LANG
ru_RU.KOI8-R

Что не так?

anonymous

Если гнум, то man gnome-mount.

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

>Ядро пошаливает. Как с другими фс?

Из других есть только ext3. Там всё русское.

Монтировал диск mount-ом в консоли. Соответсвующая запись в /etc/fstab:

/dev/sda2 /mnt/c vfat rw,noauto,user,owner,iocharset=koi8-r,codepage=866 0 0

PS: единственный вменяемый ответ.

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

> Ядро пошаливает.

2.6.24.3-34.fc8 вообще впадает в kernel panic матерясь что-то про init. :(

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

Вот подозрительная опция: utf8 UTF8 is the filesystem safe 8-bit encoding of Unicode that is used by the console. It can be be enabled for the filesystem with this option. If 'uni_xlate' gets set, UTF8 gets disabled.

Может оно как-то включено по умолчанию? IMHO, если интересно разобраться - поставить ванильное ядро той же версии, если там всё ок - смотреть патчи.

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

Ну или сами патчи проглядеть. Так всё вроде бы выглядит правильным.

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

> Вот подозрительная опция: utf8 UTF8 is the filesystem safe 8-bit encoding of Unicode that is used by the console. It can be be enabled for the filesystem with this option. If 'uni_xlate' gets set, UTF8 gets disabled.

Это где? Можно по-подробнее.

Сейчас собственно тем и занимаюсь, что пытаюсь собрать ванильное ядро, но там тоже какой-то косяк:

беру исходники 2.6.24 и говорю
/>bzcat ../../_patch/patch-2.6.24.3.bz2 | patch -Np1

потом make headers_check и получаю ошибку
make[2]: *** Нет правила для сборки цели `/usr/src/build/linux-2.6.24.3/include/linux/if_addrlabel.h', требуемой для `/usr/src/build/linux-2.6.24.3/usr/include/linux/if_addrlabel.h'. Останов.

те же самые действия для .2 проходят как надо
что не так?

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

>Это где? Можно по-подробнее.

Это man mount, секция vfat.

Может попробовать -t fat -o fat=32 вместо -t vfat??

make headers_check - это зачем?

Кстати, можно попробывать какой-нить livecd вместо сборки ядра.

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

Может попробовать -t fat -o fat=32 вместо -t vfat??

Упс, сорри. Man плохо читаю - (Note: fat is not a separate filesystem, but a common part of the msdos, umsdos and vfat filesystems.)

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

> Может попробовать -t fat -o fat=32 вместо -t vfat??

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

>make headers_check - это зачем?

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

Ладно, под этот косяк создал отдельную тему.

anonymous
()

Убери codepage=866. У меня тоже была такая проблема. Нужно оставить только iocharset=koi8-r еще можно поробовать iocharset=KOI8-R.

p.s. У меня, правда, utf8, но с koi тоже должно работать...

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