Всем добрый день.
Обьясните мне пожалуйста поподробней как происходит автомонтирование внешних дисков (флешек) в КДЕ3?
Вроде как haldaemon или udev изначально видит устройство, далее его параметры передает КДЕ.
В частности интересует: каким образом директории, в которую монтируется флешка /media/<diskname> и всем нижестоящим файлам, т.е. соодержимому влешки присваиваются права user ID и group ID? Откуда КДЕ берет параметры iocharset и codepage?
В связи с этими вопросами возникают проблемы: при копировании в MC фалов на флешку, MC пытается оставить user ID group ID файлов, а флешка монтируется почемуто с group ID - root, соответсвенно начинает ругаться что не может сменить режим доступа, даже если убрать галочку в этом пункте меню копирования. chown не помагает - операция не позволяетсяю Мало того: по правому клику на флешке, в свойствах невозможно сохранить режим доступа к флешке и файла, остаются прежние.
Ну и проблема с русскими именами файлов, хотелось бы настроить iocharset=koi8-r и codepage=866, но непонятно куда прописывать.
В принципе все это можно настроить в /etc/fstab, но тогда при вставке флешки автомонтирование не происходит, толко руками mount ..., а это напряжно, тем более хочется более универсальное решение, чтобы не для одной конкретной флешки, а для всех vfat.
Буду очень благодарен за ответы и оказанное внимание.
Автомонтирование внешних дисков в KDE3
Модератор: Модераторы разделов
-
Snupt
- Бывший модератор
- Сообщения: 2062
- Статус: No Place for RTFM Here…
- ОС: Mac OS X
-
savigm
- Сообщения: 127
- ОС: openSUSE
Re: Автомонтирование внешних дисков в KDE3
Нашел схожую темку по кодировке при автомонтировании - Slackware 12 и автомонтирование vfat+кириллица в KDE. В документации HAL сказано что все настроки для внешних устройств берутся из /usr/share/hal/fdi/policy/10osvendor/20-storage-methods.fdi, однако правка этого файлика и перезапуск haldaemon эффекта не дает. Заметил что при монтировании в /media появляется файлик .hal-mtab, в котором прописаны текущие настройки примонтированного внешнего устройства, только вот откуда они берутся непонятно. В /var/log/messages пишется много строк от kernel по опознаванию девайса и последняя строка - hald: mounted /dev/sdb1 on behalf of uid 1000.
-
KernelPanic
- Бывший модератор
- Сообщения: 2060
- Статус: Brain Атаке
- ОС: Debian squeeze/sid/exp
Re: Автомонтирование внешних дисков в KDE3
Как вариант могу Вам предложить сделать небольшой финт для решения проблем с русскими именами файлов для системной кодировки KOI8-R.
Итак, нужно сделать скрипт:
Назвать его нужно mount и сделать исполняемым.
После чего создать папку /bin/trying и переместить туда бинарник /bin/mount.
Созданный скрипт поместить в папку /bin, т.е. фактически подменить бинарник. Данный скрипт просто добавляет опции iocharset=koi8-r,codepage=866 в строку опций для дисков с ФС VFAT и вызывает бинарник /bin/trying/mount.
Для всех остальных файловых систем он прозрачен.
Итак, нужно сделать скрипт:
Код: Выделить всё
#!/bin/bash
################################################################################
############
# #
# This script corrects cyrillic problems with USB Flash Drives when you need to mount it #
# with IOCHARSET other than your Linux system trys to assign to it. #
# The problem is when you use system locales other than ru_RU.UTF-8 and try to mount #
# USB Flash Drives (filesystem type VFAT) automatically with HAL. #
# #
# To use this script you need to create folder /bin/trying and replace the binary file #
# /bin/mount to that folder, than copy this script to /bin folder (or create) and enjoy. #
# The script name must be "mount" and it must be executable. #
# #
################################################################################
############
# Change Additional mount options with IOCHARSET and CODEPAGE you need :)
# Additional mounting options (cyrillic correction)
additional_options=",iocharset=koi8-r,codepage=866"
# Use correction
vfat=0
# Result Message (was used for debuging)
message=""
# Maximum parameters count
Num=0
# Filling the array of input parameters
for input_param in $*
do
let "Num++" # Increment Num
params[$Num]=$input_param
done
# Main checking cycle (check mount input parameters)
for ((i=1; i <= Num; i++))
do
# Checking if FS type specified
if [ ${params[$i]} = "-t" ]; then
if [ ${params[$i+1]} = "vfat" ]; then
let "vfat = 1"
let "i++"
message=$message"Found FSType VFAT (additional mount options ON). "
fi
# Checking if Mounting Options specified
elif [ ${params[$i]} = "-o" ]; then
let "i++" # go to the next parameter (mount options themself)
params[$i]=${params[$i]}"$additional_options" # update mount options
fi
done
# This part makes mounting with additional parameters or with standard parameters depending
# on filesystem type
if [ $vfat -eq 1 ]; then
# Filling new mount options
parameters=''
for (( i=1; i <= Num; i++ ))
do
parameters=$parameters"${params[$i]} "
done
# mount
/bin/trying/mount $parameters
else
/bin/trying/mount $*
fiПосле чего создать папку /bin/trying и переместить туда бинарник /bin/mount.
Созданный скрипт поместить в папку /bin, т.е. фактически подменить бинарник. Данный скрипт просто добавляет опции iocharset=koi8-r,codepage=866 в строку опций для дисков с ФС VFAT и вызывает бинарник /bin/trying/mount.
Для всех остальных файловых систем он прозрачен.
-
savigm
- Сообщения: 127
- ОС: openSUSE
Re: Автомонтирование внешних дисков в KDE3
mount - не подойдет, при автомонтировании исползуется другой монтировщик, если не ошибаюсь. Полазив по инету наткнулся на bugs-страницу kde3 - судя по тексту простого решения данной проблемы в КДЕ3 нет, только если выдумывать изащренные методы. Как вариант пердлагают пересобрать ядро с указанием настроек для всех vfat ф.с. - говорят помогает. Дело в том что в КДЕ3 для haldaemon кодировку невозможно поменять т.к. настройки haldaemon игнорятся. Еще если прям в X-ах задавать права для флешки - они все равно не сохранятся, а вот монтировать от пользователя работает. В общем с настройками автомонтирования беда. В КДЕ4 обещают все исправить.
-
KernelPanic
- Бывший модератор
- Сообщения: 2060
- Статус: Brain Атаке
- ОС: Debian squeeze/sid/exp
Re: Автомонтирование внешних дисков в KDE3
ВСЁ монтирование в конечном итоге происходит через mount у меня при системной кодировке KOI8-R данный скрипт отрабатывал нормально.
-
Bluetooth
- Сообщения: 4395
- Статус: Блюзовый
- ОС: Debian Squeeze amd64
Re: Автомонтирование внешних дисков в KDE3
savigm писал(а): ↑14.03.2009 03:10mount - не подойдет, при автомонтировании исползуется другой монтировщик, если не ошибаюсь. Полазив по инету наткнулся на bugs-страницу kde3 - судя по тексту простого решения данной проблемы в КДЕ3 нет, только если выдумывать изащренные методы. Как вариант пердлагают пересобрать ядро с указанием настроек для всех vfat ф.с. - говорят помогает. Дело в том что в КДЕ3 для haldaemon кодировку невозможно поменять т.к. настройки haldaemon игнорятся. Еще если прям в X-ах задавать права для флешки - они все равно не сохранятся, а вот монтировать от пользователя работает. В общем с настройками автомонтирования беда. В КДЕ4 обещают все исправить.
для нтфс лично я знаю 2 рабочих и удобных решения, оба они описаны тут, и для фата скорее всего тож подойдут:
Проблема с автомонтированием NTFS(драйвер ntfs-3g)
-
KernelPanic
- Бывший модератор
- Сообщения: 2060
- Статус: Brain Атаке
- ОС: Debian squeeze/sid/exp
Re: Автомонтирование внешних дисков в KDE3
Там слишком много решений приведено, может немного конкретики?
-
Bluetooth
- Сообщения: 4395
- Статус: Блюзовый
- ОС: Debian Squeeze amd64
Re: Автомонтирование внешних дисков в KDE3
KernelPanic писал(а): ↑14.03.2009 18:42Там слишком много решений приведено, может немного конкретики?
ну, по-моему данная тема как раз и хороша тем, что там приведена куча решений, из которых большое количество хороших.
-
vadiml
- Сообщения: 446
- ОС: fc12.x86_64
Re: Автомонтирование внешних дисков в KDE3
Я флешек с ntfs не видел (точнее знаю что 1 знакомый такую купил и форматнул её в fat32)
поэтому сделал проще:
прописал в fstab строку:
/dev/sdс1 /media/flash vfat user,flush,noauto,showexec,iocharset=utf8,codepage=866,umask=000,quiet 0 0
(у меня 2 винта уже в системе висит, потому и /dev/sdс1)
и создал каталог /media/flash
Теперь когда вставляю флешку, на столе появляется её значёк и окошко с вопросом что с ней делать (открыть в том-то или том-то или ничего не делать и снизу "запомнить это действие для этого диска")
поэтому сделал проще:
прописал в fstab строку:
/dev/sdс1 /media/flash vfat user,flush,noauto,showexec,iocharset=utf8,codepage=866,umask=000,quiet 0 0
(у меня 2 винта уже в системе висит, потому и /dev/sdс1)
и создал каталог /media/flash
Теперь когда вставляю флешку, на столе появляется её значёк и окошко с вопросом что с ней делать (открыть в том-то или том-то или ничего не делать и снизу "запомнить это действие для этого диска")
phenom x4 905e, asus m4a79 deluxe, 4 gb, ati x550, ati 4350, 2 x 17" LCD