Hatred's Log Place

DON'T PANIC!

Aug 12, 2008 - 2 minute read - linux

KDE4 и монтирование флешки

Всё хорошо, вот только с кодировками беда, пошел по пути как описано тут

Единственно, для флешек тип файловой системы подменяется на mvfat, дабы не было зацикливания в скриптах.

Создаем файл /sbin/mount.mvfat:

#!/bin/bash

eval mount -t vfat $@,quiet,iocharset=utf8,codepage=1251,showexec,umask=0,flush

Делаем на него:

chown root:root
chmod +x /sbin/mount.mvfat

Создаем файл /etc/hal/fdi/policy/10_my_fsops.fdi

<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
    <device>
        <match key="volume.fstype" string="vfat">
            <match key="@block.storage_device:storage.hotpluggable" bool="true">
                <merge key="volume.fstype" type="string">mvfat</merge>
                <merge key="volume.policy.mount_filesystem" type="string">mvfat</merge>
                <merge key="volume.mount.valid_options" type="strlist">utf8</merge>
                <merge key="volume.mount.valid_options" type="strlist">shortname=</merge>
                <merge key="volume.mount.valid_options" type="strlist">codepage=</merge>
                <merge key="volume.mount.valid_options" type="strlist">iocharset=</merge>
                <merge key="volume.mount.valid_options" type="strlist">umask=</merge>
                <merge key="volume.mount.valid_options" type="strlist">dmask=</merge>
                <merge key="volume.mount.valid_options" type="strlist">fmask=</merge>
                <merge key="volume.mount.valid_options" type="strlist">uid=</merge>
                <merge key="volume.mount.valid_options" type="strlist">flush</merge>
            </match>
        </match>
    </device>

</deviceinfo>

policy опции вроде уже не работают, но оставил, много не ест. valid_options нужны обязательно, иначе hal будет выдавать ошибку с намеком: rethink extra_options, типа, переосмыслите опции ;)

Перезапускаем hal:

/etc/rc.d/hal restart

Можно в терминале запустить такую командочку:

while true; do ps auxwww | grep mount | grep -v grep | tee -a /tmp/my.log; done

Посмотреть что происходит при монтировании. Втыкаем флешку в Дельфине по ней щелкаем два раза, на терминале получим примерно следующее:

root     17258  0.0  0.1  15340  1132 ?        S    09:21   0:00 /usr/lib/hal/hal-storage-mount
root     17259  0.0  0.0   8016   592 ?        S    09:21   0:00 /bin/mount -t mvfat -o nosuid,nodev /dev/sdb1 /media/disk
root     17260  0.0  0.1  15376  1516 ?        S    09:21   0:00 /bin/bash /sbin/mount.mvfat /dev/sdb1 /media/disk -o rw,nosuid,nodev
root     17261  0.0  0.0   8016   608 ?        D    09:21   0:00 mount -t vfat /dev/sdb1 /media/disk -o rw,nosuid,nodev,quiet,iocharset=utf8,codepage=1251,showexec,umask=0,flush

Ну и флешка примонтирована с нормальными русскими буковками. Кстати, теперь понятно почему тип файловой системы я подменяю и почему я боялся зацикливания?

ЗЫ ждем нормальных средств для настройки монтирования флешек из КДЕ4

ЗЫЫ KDE 4.1, hal 0.5.11, ArchLinux

Tags: archlinux hal linux mount

Южная Осетия Анализ данных: R, ROOT, PAW

comments powered by Disqus