LINUX.ORG.RU

Монтирование томов NTFS, проблемы с русскими именами файлов


0

0

На машине стоит WinXP SP2, загружаюсь с CD SLAX v5.1.8.1. По умолчанию монтирует диск С:\ так, что вместо русских имён файлов - кракозябры. Пытаюсь перемонтировать диск:

umount /dev/sda1 mount -t -ntfs /dev/sda1 /mnt/sda1 -o nls=cp1251

Монтирует, но опять кракозябры (уже другие кракозябры). Пробовал koi8-r, utf8 - везде кракозябры, но разные. Как побороть?

anonymous

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

Lockywolf, спасибо, что откликнулись. Только не бейте ногами - я не понял Вашего вопроса. Где и как посмотреть, какая локаль?

anonymous
()

В консоли вводишь locale, получаешь что-то подобное:

ftor@localhost ~ $ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
ftor@localhost ~ $

Потом монтируешь с nls=твоя_локаль, в моем случае это nls=utf8

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

divenvrsk, нашёл у себя на C:\Windows\Fonts шрифт times.ttf (кириллический Times New Roman, вроде), установил его через контекстное меню в Konqueror, перезапустил KDE, назначил этот шрифт в Control Center в KDE - всё равно кракозябры.

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

echo $LANG сделай, горе-линуксёр, блин.
Монтировать скорее всего надо с nls=utf-8, ибо в ntfs имена файлов в utf-8 хранятся и ни cp1251 ни сp866 не имеют к ntfs никакого отношения!
Для КДЕ нужно как и в его настройках указать русский язык, так и локаль (точнее переменную LANG и на всякий случай LC_ALL) задать сооответствующую ru_RU.UTF-8 например.

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

>ибо в ntfs имена файлов в utf-8 хранятся

Ты уверен?

2 автор

Монтируй с nls=кодировка_из_локали

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

Если я не ошибаюсь, в ntfs кодировка вобще utf-16, а параметр nls нужен для того, чтобы выполнить перекодировку из кодировки фс в указанную кодировку (для нормальной работы должна совпадать с кодировкой локали). Кстати, я вобще не использую этот параметр, всё и так работает.

Black_Shadow ★★★★★
()

У меня такая же проблема, только раздел-кладовая FAT32 . Перепробовал различные варианты: koi8-r,utf-8, utf-16, cp866, cp1251, iso1284, euro(локаль de_ DE@euro.) с iocharset и nls- бесполезно, либо изменяются каракули либо вопросы. А очень хотелось бы видеть вместо этого буквы.

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

anonymous (*) (04.12.2006 0:15:59), минус перед "ntfs" я и не ставлю, это опечатка здесь.

root_at_localhost, "echo $LANG" выдает "en_US",

mount -t ntfs /dev/sda1 /mnt/sda1 -o nls=ascii

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

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

Обидно, если в SLAX вообще не существует способа смонтировать NTFS-раздел с русскими именами файлов... А как в SLAX можно использовать другие программы при том, что это загрузочный CD. Только изменяя образ и перепрожигая диск?

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

Резюме: Live-CD SLAX v5.1.8.1, команды locale у меня нет, "echo $LANG" выдает просто "en_US". Не прокатывают команды:

mount -t ntfs /dev/sda1 /mnt/sda1 -o nls=ascii (русских файлов нет)

mount -t ntfs /dev/sda1 /mnt/sda1 -o nls=koi8-r (кракозябры)

mount -t ntfs /dev/sda1 /mnt/sda1 -o nls=utf8 (кракозябры)

mount -t ntfs /dev/sda1 /mnt/sda1 -o nls=cp1251 (кракозябры)

Народ, не бросайте меня :( Очень хочется научиться работать в Linux...

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

локаль узнать:

export | grep LANG
export | grep LC

LC_CTYPE "самая важная" из них.

szh ★★★★
()

и кстати ты печатать на русском можешь ? может ты в консоли смотришь и в нерусском консольном шрифте ? В чем смотришь список файлов ?

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

Тут двое страждущих, оказывается :) (Ветку начал я)

Список файлов смотрю в Konqueror. Печатать на русском могу (например, в KWrite), если добавить русский язык в KDE Keyboard Tool (иконка в "трее"). В консоли печатать на русском не могу - печатаются одни вопросы.

export | grep LANG выдаёт: declare -x LANG="en_US"

export | grep LC выдаёт: declare -x LC_ALL="C" declare -x LC_COLLATE="C"

echo $LC_TYPE выдаёт пустую строку

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

>LC_ALL="C"
>echo $LC_TYPE выдаёт пустую строку

Попробуй из konsole: "export LC_ALL=ru_RU.KOI8-R ; konqueror" и в запустившемся окне смотреть файлы , с разными опциями монтирования.

если это поможет , то найди в /etc где у тебя конфигурится LC* , например это может быть файл /etc/sysconfig/language , пропиши в LC_ALL значение любое из ru_RU.KOI8-R или ru_RU.UTF-8 и перелогинься. Проверь, что LC_ALL действительно изменилась.

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

szh, спасибо огромное!

Получилось следующим образом:

umount /dev/sda1

mount /dev/sda1 /mnt/sda1 -o nls=koi8-r

export LC_ALL=ru_RU.KOI8-R; konqueror

В запустившемся в результате konqueror'е русские имена файлов в томе NTFS отображаются правильно.

Однако, каталога etc/sysconfig у меня нет.

Кстати, в SLAX v5.1.8.1 есть программа NTFS-3G, но я пока ещё не разобрался, как ей правильно воспользоваться.

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

Это второй страждущий, у первого всё получилось, поздравляю!!! У меня такая же проблема, только раздел-кладовая FAT32 . Перепробовал различные варианты: koi8-r,utf-8, utf-16, cp866, cp1251, iso1284, euro(локаль de_ DE@euro.) с iocharset и nls- бесполезно, либо изменяются каракули либо вопросы. А очень хотелось бы видеть вместо этого буквы.

Alex@Rover:~$ locale LANG=de_DE@euro LC_CTYPE="de_DE@euro" LC_NUMERIC="de_DE@euro" LC_TIME="de_DE@euro" LC_COLLATE="de_DE@euro" LC_MONETARY="de_DE@euro" LC_MESSAGES="de_DE@euro" LC_PAPER="de_DE@euro" LC_NAME="de_DE@euro" LC_ADDRESS="de_DE@euro" LC_TELEPHONE="de_DE@euro" LC_MEASUREMENT="de_DE@euro" LC_IDENTIFICATION="de_DE@euro" LC_ALL= Alex@Rover:~$

Alex

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

У меня тоже проблема такая была, решил её следующим образом: LANG=ru_RU.UTF-8 LANGUAGE=ru_RU:ru:en_GB:en LC_CTYPE="ru_RU.UTF-8" LC_NUMERIC="ru_RU.UTF-8" LC_TIME="ru_RU.UTF-8" LC_COLLATE="ru_RU.UTF-8" LC_MONETARY="ru_RU.UTF-8" LC_MESSAGES="ru_RU.UTF-8" LC_PAPER="ru_RU.UTF-8" LC_NAME="ru_RU.UTF-8" LC_ADDRESS="ru_RU.UTF-8" LC_TELEPHONE="ru_RU.UTF-8" LC_MEASUREMENT="ru_RU.UTF-8" LC_IDENTIFICATION="ru_RU.UTF-8" LC_ALL= Пытался вначале сделать через команду nls, но не очень-то получилось, а когда прописал (вместо nls) iocharset=utf8 всё заработало.

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

Вы будете смеяться, но рецепт перестал работать:

umount /dev/sda1

mount -t ntfs /dev/sda1 /mnt/sda1 -o nls=koi8-r

export LC_ALL=ru_RU.KOI8-R; konqueror

В запустившемся в результате konqueror'е русские имена каталогов в томе NTFS отображаются кракозябрами и с "замочком", т.е. открыть такой каталог нельзя. В системе я ничего не менял, да и не смог бы поменять, т.к. это Live-CD. Есть ли какие подробные статьи на тему монтирования томов NTFS, где эта проблема решена раз и навсегда? Нахожу в инете много вариантов подобных команд, но все они у меня оказываются нерабочими.

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

Добавлю. Вот такие команды тоже монтируют русские имена в кракозябрах:

ntfs-3g -o nls=koi8-r /dev/sda1 /mnt/sda1

export LC_ALL=ru_RU.KOI8-R; export LANG=ru_RU; konqueror

Повторюсь:

locale

-bash: locale: command not found

echo $LANG

en_US

echo $LC_ALL

C

При всём этом в KDE можно даже печатать по-русски, если в несколько щелчков настроить KDE Keyboard Tool в правом нижнем углу экрана. Гадаю, как у меня получилось в первый раз...

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

Опять анекдот. Добавил в /etc/profile строки:

LC_ALL=ru_RU.KOI8-R

LANG=ru_RU.KOI8-R

После перелогинивания стало монтироваться нормально. Теперь с содроганием жду, когда и это перестанет работать :) Может кто объяснит научно, почему вот эта команда работает неправильно:

export LC_ALL=ru_RU.KOI8-R; export LANG=ru_RU; konqueror

А вот после вышеописанного изменения /etc/profile команда mount вдруг приводит к желаемым результатам. Почему так? Ведь вроде одно и то же?

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