[SOLVED] Пустой каталог при автомонтировании ntfs из KDE

Доброго времени суток!
Возник первый вопрос после миграции на Генту, на который не смог найти ответ в интернете или докопаться сам.

Имеется внешний HDD с разделом ntfs. (так начинаются многие темы здесь :), но похожей на мою проблему не нашел).
Возникла необходимость его монтировать, поставил sys-fs/fuse-2.8.1 и sys-fs/ntfs3g-2010.1.16.
Обнаружил, что в ядре не включил поддержку FUSE, пересобрал ядро (включил поддержку FUSE в ядро), пересобрал на всякий случай пакеты.
В результате картина следующая - по mount /dev/sdb2 /mnt/tmp из-под root работает прекрасно, без каких-либо опций, запись работает в т.ч. и от пользователя, русские файлы видны,
НО при автомонтировании из KDE (апплетом или долфином), диск монтируется на /media/disk и там пусто, root тоже не видит ничего. Раздел с ext3 с того же диска монтируется нормально.

При этом:

gent ~ # df -h /media/disk/
Файловая система      Разм  Исп  Дост  Исп% смонтирована на
/dev/sdb2             130G   51G   79G  40% /media/disk

Этот вывод в обоих случаях одинаков:

gent ~ # mount | grep sdb2
/dev/sdb2 on /media/disk type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096)

/etc/hal/fdi/policy/10-ntfs3g.fdi я так понимаю был создан ebuild'ом и там такое:

<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
  <device>
        <match key="volume.fstype" string="ntfs">
        <append key="volume.fstype.alternative" type="copy_property">volume.fstype</append>
        <merge key="volume.mount.ntfs.valid_options" type="copy_property">volume.mount.valid_options</merge>
        <merge key="volume.unmount.ntfs.valid_options" type="copy_property">volume.unmount.valid_options</merge>
        <merge key="volume.fstype" type="string">ntfs-3g</merge>
        <merge key="volume.mount.valid_options" type="strlist">ro</merge>
        <append key="volume.mount.valid_options" type="strlist">atime</append>
        <append key="volume.mount.valid_options" type="strlist">noatime</append>
        <append key="volume.mount.valid_options" type="strlist">relatime</append>
        <append key="volume.mount.valid_options" type="strlist">fake_rw</append>
        <append key="volume.mount.valid_options" type="strlist">no_def_opts</append>
        <append key="volume.mount.valid_options" type="strlist">default_permissions</append>
        <append key="volume.mount.valid_options" type="strlist">umask=</append>
        <append key="volume.mount.valid_options" type="strlist">fmask=</append>
        <append key="volume.mount.valid_options" type="strlist">dmask=</append>
        <append key="volume.mount.valid_options" type="strlist">uid=</append>
        <append key="volume.mount.valid_options" type="strlist">gid=</append>
        <append key="volume.mount.valid_options" type="strlist">show_sys_files</append>
        <append key="volume.mount.valid_options" type="strlist">silent</append>
        <append key="volume.mount.valid_options" type="strlist">force</append>
        <append key="volume.mount.valid_options" type="strlist">remove_hiberfile</append>
        <append key="volume.mount.valid_options" type="strlist">locale=</append>
        <append key="volume.mount.valid_options" type="strlist">streams_interface=</append>
        <append key="volume.mount.valid_options" type="strlist">debug</append>
        <append key="volume.mount.valid_options" type="strlist">no_detatch</append>
        <append key="volume.mount.valid_options" type="strlist">sync</append>
        <append key="volume.mount.valid_options" type="strlist">dirsync</append>
        <append key="volume.mount.valid_options" type="strlist">nodiratime</append>
        <append key="volume.mount.valid_options" type="strlist">noexec</append>
        <append key="volume.mount.valid_options" type="strlist">quiet</append>
        <append key="volume.mount.valid_options" type="strlist">remount</append>
        <append key="volume.mount.valid_options" type="strlist">exec</append>
        <append key="volume.mount.valid_options" type="strlist">recover</append>
        <append key="volume.mount.valid_options" type="strlist">norecover</append>
        <merge key="volume.unmount.valid_options" type="strlist">lazy</merge>
        <merge key="volume.policy.mount_filesystem" type="string">ntfs-3g</merge>
        </match>
  </device>

__________________________________________________________________________________

Здесь http://www.gentoo.ru/node/15129#comment-106099 видел, что у топикстартера была такая проблема, но промежуточная и как решилась не понятно. Попробовал, как он рекоментовал, собрать в ядре поддержку FUSE (и NTFS заодно) модулями - никаких изменений.

Как-то уже много получилось для первого поста :) Спасибо заранее за помощь

Да, еще, при сборке ntfs3g

Да, еще, при сборке ntfs3g проскакивает такой ворнинг:

****************************************************************************
* WARNING  WARNING  WARNING  WARNING  WARNING  WARNING  WARNING  WARNING   *
* The FUSE user space binaries were NOT installed with root directory      *
* executable prefix. This means that automounting NTFS volumes during boot *
* could fail. This can be fixed the below way by reinstalling FUSE using   *
* the right 'configure' option during FUSE compilation:                    *
*       ./configure --exec-prefix=/                                        *
*       make && sudo make install                                          *
* WARNING  WARNING  WARNING  WARNING  WARNING  WARNING  WARNING  WARNING   *
****************************************************************************

Не может ли в этом быть причина? И есть ли какой-то красивый способ это исправить, типо USE флага, или нужно править ebuild?

См.здесь.

См.здесь.

Правильно заданный вопрос - половина ответа!
Логики и довода — недостаточно. Надо еще зачморить тех, кто думает не так как мы. (South Park)

Ну это нагуглилось первым, а

Ну это нагуглилось первым, а куда именно смотреть не подскажете? сделано вроде всё как там написано.
При использовании тамошней политики для HAL'а Dolphin ругается на недопустимость опции locale=, если добавить <append key="volume.mount.valid_options" type="strlist">locale=</append> - результат аналогичный - пустой каталог.

Решено, но пока только

Решено, но пока только костылем :(
Был создан файл /sbin/mount.ntfs-3g.sh такого содержания:

#!/bin/bash
/bin/ntfs-3g $*
echo $* > /root/hal-catch

В результате в hal-catch имеем:

/dev/sdb2 /media/disk -o rw,nosuid,nodev,uhelper=hal,uid=1000,locale=

Где, спрашивается, название локали?
Решил пока добавлением в вышеупомянутом /sbin/mount.ntfs-3g.sh:

#!/bin/bash
/bin/ntfs-3g $*ru_RU.UTF-8

Так всё замечательно работает, но это, конечно, не метод, может у кого-то есть идеи почему HAL так себя ведет? или где вообще определяются опции монтирования, /etc/hal/fdi/policy/10-ntfs3g.fdi? Если да, то как там указать нужную?

Тоже столкнулся после очередного обновления с этой проблемой

Погуглив, нашёл следующее решение:
В созданном ebuild-ом файле поменять строчку
<append key="volume.mount.valid_options" type="strlist">locale=</append>
на
<append key="volume.mount.valid_options" type="strlist">locale=ru_RU.UTF8</append>
и, возможно, привести файл /etc/PolicyKit/PolicyKit.conf к следующему содержанию:

<?xml version="1.0" encoding="UTF-8"?> <!-- -*- XML -*- -->

<!DOCTYPE pkconfig PUBLIC "-//freedesktop//DTD PolicyKit Configuration 1.0//EN"
"http://hal.freedesktop.org/releases/PolicyKit/1.0/config.dtd">

<!-- See the manual page PolicyKit.conf(5) for file format -->

<config version="0.1">
<define_admin_auth group="wheel"/>
<match user="root">
	<return result="yes"/>
</match>
<match action="org.freedesktop.hal.storage.mount-removable">
        <return result="yes"/>
</match>
<match action="org.freedesktop.hal.storage.mount-fixed">
        <return result="yes"/>
</match>
<match action="org.freedesktop.hal.storage.eject">
        <return result="yes"/>
</match>
<match action="org.freedesktop.hal.power-management.shutdown">
        <return result="yes"/>
</match>
<match action="org.freedesktop.hal.power-management.reboot">
        <return result="yes"/>
</match>
<match action="org.freedesktop.hal.power-management.set-powersave">
        <return result="yes"/>
</match>
<match action="org.freedesktop.hal.power-management.suspend">
        <return result="yes"/>
</match>
<match action="org.freedesktop.hal.power-management.hibernate">
        <return result="yes"/>
</match>
<match action="org.freedesktop.hal.power-management.cpufreq">
        <return result="yes"/>
</match>
<match action="org.freedesktop.hal.power-management.lcd-panel">
        <return result="yes"/>
</match>
</config>

Тут наверняка много лишнего, я просто не стал заморачиваться и скопипастил всё.

Рекомендую

Рекомендую посмотреть/подсмотреть ( если оно работает) в Альте

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 ;)

Вы не поверите :)

slepnoga написал(а):
Рекомендую посмотреть/подсмотреть ( если оно работает) в Альте

Вы не поверите, Альта у меня, к сожалению, под рукой не оказалось, поэтому я смонтировал образ корневого раздела старой доброй Слаки, который сделал перед установкой Gentoo и где у меня это прекрасно работало, и решил посмотреть как это сделано у Патрика.
А у него это сделано со свойственной ему гениальной простотой :) файла /etc/hal/fdi/policy/10-ntfs3g.fdi там нет вообще! А файл /sbin/mount.ntfs-3g простой сим линк на /bin/ntfs-3g как и было у меня изначально.
После удаления /etc/hal/fdi/policy/10-ntfs3g.fdi всё стало на свои места. Для интереса тем же перехватом посмотрел с какими теперь параметрами вызывается mount.ntfs-3g:

/dev/sdb2 /media/disk -o rw,nosuid,nodev,uhelper=hal,uid=1000,utf8

Я так подозреваю, если собирать ntfs-3g без флага hal, всё должно быть сразу нормально, у меня он был в глобальных USE'ах.
-----------------------
Всем большое спасибо за участие, ставлю [SOLVED].

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

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