п'ятниця, 31-сер-2007, NETZMB написав:
> Здоров, коллеги!
>
> Тут у меня такая беда вышла:
>
> Позавчера сдох XP на компе начальницы, от того, что каталог \tmp на чтение,
> расшарил, вследствии чего посыпались dll-ки в windows\system32 :) (блин
> связь типа: ударил по яйцам - шнурки развязались, вобщем в стиле винды)
>
> Вот. Этот XP ставили до меня несколько недальновидные люди, т.е. влепили
> там NTFS раздел на весь винт.
> Благодаря смерти виндовса я "под шумок" урезал NTFS раздел, на
> освободившемся месте создал раздел с FAT32, потом под кноппиксом перелил
> туда все файлы с NTFS, после этого его грохнул и развернул месте
> NTFS-раздела - Gentoo, а на месте FAT32 - XP (начальнице Corel нужон).
>
> При монтировании NTFS была учтена опция nls=utf8
> При монтировании FAT32 были учтены опции codepage=866,iocharset=koi8-r (в
> кноппиксе, загруженном с параметром lang=ru команда locale выдавала
> ru_RU.KOI8-R)
>
> А вот после перезагрузки произошёл некоторый конфуз: при монтировании
> этого FAT32 раздела в свежеустановленном Gentoo с опциями
> codepage=866,iocharset=utf8 (у меня вся система работает на юникоде. Юникод
> настроен) мне выдаются каракули вместо русских названий файлов. В то-же
> время русские названия файлов, которые создала винда в процессе своей
> установки вполне нормальны (Например - тот хлам, что она создаёт в
> Documents & Settings).
>
> Вобщем с помощью convmv я целый день тщетно пытался подобрать исходную
> кодировку к покалеченным именам файлов. Используя самописный скрипт,
> перебрал все имеющиеся в convmv кодировки. Ничего похожего не получилось
>
> Может кто подскажет кодировку нужную, или на какой-нить "умный" конвертор
> покажет.
>
> вобщем, прилагаю скриншот того, как это выглядит в винде (в Linux у меня
> все рус. названия знаками вопроса забиты). Может кто и "на глаз" определит
> кодировку
>
> http://img172.imageshack.us/img172/1076/screentz9.png
>
> Дело очень важное!
> Всем откликнувшимся - спасибо заранее! :)
Решилось!
Всё оказалось просто до безобразия! :'(
Именно на этом компе я решил подправить /etc/locales.gen, время компиляции
glibc'ов сэкономить, блин. Соответственно, при сборке glibc собрались только
указанные там локали ru_RU.UTF-8, en_GB.UTF-8 и ещё парочка не помню, каких.
Вобщем, всё преспокойно собралось, все остальные проги, зависящие от glibc
собиралось даже без "ворнингов" и прочего, что должно было бы меня
насторожить. А т.к. сборка системы с нуля - процесс длительный, то я
благополучно забыл об этом злощастном /etc/locales.gen.
В итоге каким-то непонятным образом я заметил глюк с "питоном", который
говорил чё-то о моей тек. локали, и что он:
falling back to "C" locale
при этом преспокойно продолжая собираться.
тут я вспомнил об /etc/locales.gen, выкинул его нафиг, пересобрал glibc, и
вуаля! Мой скрипт переименования стал прекрасно работать. Потом я его воткнул
в опцию -exec в find и прогнал по всему покорёженному каталогу :)
PS: Самое обидное - что пришлось столько повозиться просто из-за того, что
iconv молчал, как партизан и не говорил, сволочь, что запрошенных мной
локалей у него нет. Делал вид, что скармливаемые ему кодировки несовместимы
между собой. Вобщем - одно заблуждение от него :(. Хорошо, что хоть питону
какая-то локаль левая понадобилась, а то-б и я и не вспомнил про этот
чёртов /etc/locales.gen.
Итог -> удалить /etc/locales.gen, пересобрать glibc