Как прочесть DVD где русские символы в 1251 когда у меня локаль в UTF-8?

Вот такая проблема.. Дали двд, там кодировка 1251, русские символы. У меня система в ютфе-8 - не позволяет даже заходить в такие папки. Кто-нибудь знает выход из этой проблемы?

как монтируем?

как монтируем?

ааа.. там ведь кодировку

ааа.. там ведь кодировку указать можно?..

localhost ~ # cat /etc/fstab | grep cdrom
/dev/cdrom		/media/cdrom	auto		noauto,ro	0 0
localhost ~ # 

mount -o iocharset=cp1251

mount -o iocharset=cp1251 /dev/cdrom

только в ядре должна быть вкомпилена эта NLS

Спасибо большое!

Спасибо большое!

Только чего-то оно не прокатывает :)

localhost ~ # mount -o iocharset=cp1251 /dev/cdrom
localhost ~ # ls -la /media/cdrom
итого 222
dr-xr-xr-x 67 root root 10240 Окт 10  2008 .
drwxr-xr-x  4 root root   168 Фев  4 17:09 ..
dr-xr-xr-x  2 root root  2048 Окт 10  2008 ????
dr-xr-xr-x  2 root root  2048 Окт 10  2008 ???????? ???????

localhost ~ # cat /usr/src/linux/.config | egrep 'NLS.*1251'
CONFIG_NLS_CODEPAGE_1251=y
localhost ~ # 

И не ругается на команду, и поддержка в ядре есть..

какая файловая система ? UDF

какая файловая система ? UDF или iso ?

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

а в /etc/locale.gen cp1251

а в /etc/locale.gen cp1251 указывать разве не надо?

попробуй поиграться с

попробуй поиграться с опциями
iocharset=cp1251
nls=cp1251

man mount

кстати если знаки вопроса вместо русских букв это очень похоже на то что консоль не русифицирована

Спасибо, попробую потестить

Спасибо, попробую потестить эти опции!

Консоль..? Да вроде русифицирована (utf-8):

localhost ~ # cat привет.txt 
фывафыва

localhost ~ # ls -la
-rw-r--r--  1 root root    17 Фев  4 20:43 привет.txt

Задам возможно странный

Задам возможно странный вопрос а в винде этот диск норм читается? а то может там оно так и записано ????) просто предположение.

Не знаю, но скажу вот что: на

Не знаю, но скажу вот что: на другой системе в Дженту (консоль 1251) - он читается с русскими буквами отлично.
А винды чё-та нема просто...

Это я предусмотрел уже давно

Это я предусмотрел уже давно :)

# cat /etc/locale.gen
ru_RU.UTF-8 UTF-8
en_US.UTF-8 UTF-8
ru_RU.CP1251 CP1251

Не совсем так...

Вернее совсем не так.

marlenus написал(а):
mount -o iocharset=cp1251 /dev/cdrom
только в ядре должна быть вкомпилена эта NLS

Монтировать надо с опциями codepage=866 и iocharset=utf8

_________________________________________________________
Прежде чем задать вопрос, подумай, сможешь ли ты понять ответ.

+1

+1

.

voleyr написал(а):
Вернее совсем не так.

marlenus написал(а):
mount -o iocharset=cp1251 /dev/cdrom
только в ядре должна быть вкомпилена эта NLS

Монтировать надо с опциями codepage=866 и iocharset=utf8

По моему опыту опция codepage лишняя, достаточно iocharset с указанием на текущую локаль (которая, сюрприз, не у всех utf8).

Правда, дисков без RockRidge (это к тому, что дело не (с)только в кодировках) я давненько не монтировал...

:wq
--
Live free or die

Anarchist написал(а): По

Anarchist написал(а):
По моему опыту опция codepage лишняя, достаточно iocharset с указанием на текущую локаль...

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

Цитата:
... (которая, сюрприз, не у всех utf8).

Читаем тему топика, первый пост топикстартера и не строим предположений.

_________________________________________________________
Прежде чем задать вопрос, подумай, сможешь ли ты понять ответ.

voleyr написал(а): Anarchist

voleyr написал(а):
Anarchist написал(а):
По моему опыту опция codepage лишняя, достаточно iocharset с указанием на текущую локаль...

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

Ключевое слово "должен".
Когда я некоторое время назад сталкивался с полностью аналогичной проблемой, этот подход [уже] не работал.

:wq
--
Live free or die

localhost ~ # mount -o

localhost ~ # mount -o iocharset=utf8 /dev/cdrom /media/cdrom
mount: блочное устройство /dev/sr0 защищен от записи, монтируется только для чтения
localhost ~ # тоже вопросы...

Кстати, а поддержка 866 должна быть вкомпилена в ядре?

localhost ~ # mount -o iocharset=utf8,codepage=cp866 /dev/cdrom /media/cdrom
mount: блочное устройство /dev/sr0 защищен от записи, монтируется только для чтения
mount: wrong fs type, bad option, bad superblock on /dev/sr0,
       missing codepage or helper program, or other error
       В некоторых случаях полезная информация может быть
       найдена в syslog - попробуйте dmesg | tail или что-то
       в этом роде

localhost ~ # mount -o iocharset=utf8,codepage=866 /dev/cdrom /media/cdrom
....аналогично...

localhost ~ # locale
LANG=ru_RU.UTF-8
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=

а то её у меня нет :)

WXP написал(а): Кстати, а

WXP написал(а):
Кстати, а поддержка 866 должна быть вкомпилена в ядре?...а то её у меня нет :)

А как Вы думаете? :)

_________________________________________________________
Прежде чем задать вопрос, подумай, сможешь ли ты понять ответ.

ну тут вроде говорили что

ну тут вроде говорили что опция codepage лишняя :) а 1251 у меня вкомпилена..

Кстати, почему-то оно

Кстати, почему-то оно ругается на 866...

localhost ~ # mount -o loop,iocharset=utf8,codepage=cp866 /dev/cdrom/ /media/cdrom
mount: wrong fs type, bad option, bad superblock on /dev/loop/0,
       missing codepage or helper program, or other error
       В некоторых случаях полезная информация может быть
       найдена в syslog - попробуйте dmesg | tail или что-то
       в этом роде

localhost ~ # mount -o loop,iocharset=utf8,codepage=866 /dev/cdrom/ /media/cdrom
mount: wrong fs type, bad option, bad superblock on /dev/loop/0,
       missing codepage or helper program, or other error
       В некоторых случаях полезная информация может быть
       найдена в syslog - попробуйте dmesg | tail или что-то
       в этом роде

localhost ~ # cat /usr/src/linux/.config | egrep 'NLS.*866'
CONFIG_NLS_CODEPAGE_866=y

В dmesg ничего не выписывает. Без опции codepage - маунтится.

чего тут подумал а может в

чего тут подумал а может в обциях монтирования еще codepage указать какую-нить типа cp866

Выкинуть его в помойку, этот диск!

Но сначала скачать содержимое, раскодировать кривые имена файлов enconv-ом и есть уже готовые скрипты по раскодированию и рекурсивному копированию целых директорий (например, eix app-text/convmv). И больше кривых дисков не создавать, даже в венде все резалки соблюдают стандарты.

Как же я скачаю, если у меня

Как же я скачаю, если у меня оно даже не копирует такие имена :)

Создавался диск в K3B под Дженту с локалью 1251.. (никаких настроек не изменялось в k3b).

Типа того:

sudo emerge -va convmv
mkdir /home/wxp/newdvd
cd /mnt/cdrom && \
convmv -r --notest -f cp1251 -t utf8 /home/wxp/newdvd

Возможно сначала смонтировать с iocharset=cp1251 и далее смотреть dmesg|tail.
Ещё могу поискать свой старый скрипт, решавший аналогичную задачу.
Он использовал enconv. А вообще ссылки все выше.

emerge -va app-i18n/enca

Вы начните с того, что сначала определите, в какой точно кодировке эти имена файлов сейчас. Для этого смонтируйте DVD безо всяких доп. опций и просто посмотрите вывод:

ls /mnt/cdrom | enca

Интересная вещь.. localhost

Интересная вещь..

localhost ~ # mount -o loop /dev/cdrom /media/cdrom
localhost ~ # ls /media/cdrom | enca
KOI8-R Cyrillic
  LF line terminators
localhost ~ # mount -o iocharset=koi8-r /dev/cdrom/ /media/cdrom
dr-xr-xr-x  2 root root  2048 Окт 10  2008 ????                                    
dr-xr-xr-x  2 root root  6144 Окт 10  2008 ??????

iocharset - это кодовая

iocharset - это кодовая страница той системы, к которой производится монтирование! У Вас локаль другая.

Прочитали бы уже man mount за это время, пока жив топик, его уже можно было перевести со словарём.

mount -o loop ? O_o

ls /media/cdrom | iconv -f koi8-r

# Если всё ОК:
umount /media/cdrom
mount -o iocharset=koi8-r /dev/cdrom/ /media/cdrom
mkdir -p /home/wxp/newdvd
cp -LR /media/cdrom/* /home/wxp/newdvd/
cd /home/wxp/newdvd
convmv -f koi8-r -t utf8 ./

# Если всё ОК:
convmv -r --notest -f koi8-r -t utf8 ./

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".