Вы здесь

HAL + NTFS [РЕШЕНО]

Доброго времени суток. Возникла проблема следующего характера:
есть NTFS раздел (/dev/sda8). При монтировании его командой

ntfs-3g -o <опции> /dev/sda8 /mnt/data

то все хорошо, раздел монтируется, запись производиться. Так же нормально монтируется, если прописать в fstab.

Но есть желание использовать для монтирования HAL. Т.е. диски при загрузке были видны в системе под своими именами (метками) и монтировались по требованию. Так же хотелось бы, чтобы для монтирования не нужны были права root.
Сделал по wiki.
При загрузке разделы видны. При клике - после авторизации, выдает ошибку
"Не удалось присоединить Global Store
Error mounting: mount exited with exit code 1: "

Если монтирую через ntfs-3g все работает. Помогите, пожалуйста, разобраться.

ls -l /sbin/ | grep ntfs

localhost geraldus # ls -l /sbin/ | grep ntfs
lrwxrwxrwx 1 root root      22 Май  6 21:46 mount.ntfs -> /sbin/mount.ntfs-3g.sh
lrwxrwxrwx 1 root root      12 Май  5 03:48 mount.ntfs-3g -> /bin/ntfs-3g
-rw-r--r-- 1 root root      63 Май  7 06:31 mount.ntfs-3g.sh

cat /sbin/mount.ntfs-3g.sh

localhost geraldus # cat /sbin/mount.ntfs-3g.sh
#!/bin/bash

ntfs-3g "$@" -o locale=ru_RU.UTF-8,umask=0,silent

USE

USE="... hal dbus"

Установленные пакеты

localhost geraldus # eix -I ntfs3g
[I] sys-fs/ntfs3g
     Available versions:  2009.3.8 ~2009.4.4 ~2009.4.4-r1 2009.11.14 2010.1.16 ~2010.3.6 {acl debug +external-fuse hal suid}
     Installed versions:  2010.1.16(03:48:19 05.05.2010)(acl external-fuse hal -debug -suid)
     Homepage:            http://www.tuxera.com/community/ntfs-3g-download/
     Description:         Open source read-write NTFS driver that runs under FUSE

localhost geraldus # eix -I fuse
[I] sys-fs/fuse
     Available versions:  2.7.0 ~2.7.3 2.7.4 ~2.7.4-r1 2.8.1 {kernel_FreeBSD kernel_linux modules}
     Installed versions:  2.8.1(03:44:11 05.05.2010)(kernel_linux -kernel_FreeBSD)
     Homepage:            http://fuse.sourceforge.net
     Description:         An interface for filesystems implemented in userspace.

ls /etc/hal/fdi/policy/ | grep ntfs

localhost geraldus # ls /etc/hal/fdi/policy/ | grep ntfs
10-ntfs-policy.fdi
10-ntfs3g.fdi

cat /etc/hal/fdi/policy/10-ntfs-policy.fdi

localhost geraldus # cat /etc/hal/fdi/policy/10-ntfs-policy.fdi
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
   <device>
       <match key="volume.fstype" string="ntfs">
           <match key="@block.storage_device:storage.hotpluggable" bool="true">
               <merge key="volume.fstype" type="string">ntfs-3g</merge>
               <merge key="volume.policy.mount_filesystem" type="string">ntfs-3g</merge>
               <merge key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-mount</merge>
               <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-unmount</append>
               <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-eject</append>
          </match>
      </match>
  </device>
</deviceinfo>

Помнится в конце установки ntfs3g было сообщение о том, как с помощью линка сделать данный драйвер, драйвером по-умолчанию при монтировании нтфс.
Уже не помню, что линковалось, но данную проблему у меня это решило

так же есть вариант с офф сайта для фстаб
/dev/sda1 /mnt/windows ntfs-3g defaults 0 0

если в fstab прописывать, то все работает. Я хочу чтобы у меня не только локальные, но и переносные NTFS диски монтировались нормально. Т.е. сделать автомонтирование через HAL.
Я же подробно описал все выше. Хочу без fstab (там только системные диски прописаны).

а как бы посмотреть без пересборки пакета?)

Geraldus написал:
а как бы посмотреть без пересборки пакета?)

Можно поискать в /var/log/portage/elog/summary.log

Вспомнил где видел. не после установки - генту-вики надо рыть)))
http://ru.gentoo-wiki.com/wiki/HOWTO_Чтение-запись_NTFS_с_использованием_драйвера_ntfs-3g

sys-apps/halevt это делает "искаропки"

мм... сейчас попробую. Заранее спасибо.

Установил, а ситуация не изменилась. Почитал man, не нашел ничего, чтобы могло помочь. Подскажите, пожалуйста, как настроить, что прочитать. :)

запустили?
ps. лучше от ползователя, предварительно убрав sync

от пользователя запускал, никакого вывода не было. Но при клике на раздел, просит пароль, после авторизации так же ошибка.

какой такой пароль? не может оно спрашивать пароль
ps. если Вы себе наставили всяких kde/gnome, то ......

[I] sys-fs/ntfs3g
Available versions: 2009.3.8 (~)2009.4.4 (~)2009.4.4-r1 2009.11.14 2010.1.16 (~)2010.3.6 {acl debug +external-fuse hal suid udev}
Installed versions: 2010.3.6(12:23:47 06.05.2010)(acl suid udev -debug -external-fuse -hal)

с халом тоже были проблемы для монтирования пользователе(suid не помогал), с udev всё работает

Цитата:
suid - Enable setuid root program, with potential security risks.

взял отсюда.
Что за setuid?

Предлагаете убрать флаг hal? А как его убрать не глобально, а для определенных программ только?
Знаю, что можно так

USE="-hal" emerge ntfs3g

но ведь при первом же обновлении он пересоберется с USE="hal"

Цитата:
Предлагаете убрать флаг hal? А как его убрать не глобально, а для определенных программ только?

http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=2#doc_chap2

Спасибо, понял.
Но вопрос отрыт - пересобрать ntfs3g с -hal?

Покажите emerge -pv ntfs3g

emerge -pv ntfs3g

localhost geraldus # emerge -pv ntfs3g

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ] sys-fs/ntfs3g-2010.1.16  USE="acl external-fuse hal -debug -suid" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

Версия ntfs3g,которая у вас, не использует USE udev

sys-fs/ntfs3g
     Available versions:  2009.3.8 ~2009.4.4 ~2009.4.4-r1 2009.11.14 2010.1.16 ~2010.3.6 {acl debug +external-fuse hal suid udev}
     Homepage:            http://www.tuxera.com/community/ntfs-3g-download/
     Description:         Open source read-write NTFS driver that runs under FUSE

отличная новость :)
в чем же может быть проблема... пойду что ли на офф.сайте почитаю какую нибудь документацию.

Добавляете USE udev глобально
затем

# echo "sys-fs/ntfs3g ~x86" >> /etc/portage/package.keywords
# echo "sys-fs/ntfs3g -hal" >> /etc/portage/package.use
# emerge -uavDN world

Человек выше писал что так работает.Сам ntfs3g не юзаю)

valet2valet написал:
Добавляете USE udev глобально
затем

# echo "sys-fs/ntfs3g ~x86" >> /etc/portage/package.keywords
# echo "sys-fs/ntfs3g -hal" >> /etc/portage/package.use
# emerge -uavDN world

Человек выше писал что так работает.Сам ntfs3g не юзаю)

у меня архитектура ~amd64 - значит

Цитата:
"sys-fs/ntfs3g ~amd64"

?

конечно
И хендбук почитать бы надо!

Ну я как бы не раз уже читал хендбук, только почему некоторые вещи все равно ускользают.
Просто я думаю, что все таки, каждому свое.
Наличие хэндбука ведь вовсе не означает, что каждый пользователь Gentoo обязан его знать на зубок, хоть в три ночи подними.
Я был бы благодарен, если бы каждый раз при упоминании хэндбука, еще бы раздел указывали, который перечитать следует.
Все же, спасибо. Сейчас попробую по последней схеме.

помогло:

* прописал в глобальный USE udev

USE=" ... udev"

* в /etc/portage/package.use sys-fs/ntfs3g -hal

sys-fs/ntfs3g -hal

* в /etc/portage/package.keywords sys-fs/ntfs3g ~<архитектура>

sys-fs/ntfs3g ~amd64

* обновил мир

emerge -uDN world

* перезагрузился

Спасибо всем огромное!

Хм... все работает с первого взгляда. Однако, странно ведет себя один из дисков. У меня 2 раздела в NTFS. Один почему то нормально монтируется и отсоединяется, а вот второй после отсоединения пропадает из списка доступных, хотя все так же его можно смонтировать через

ntfs-3g /dev/sda8 /mnt/data

С флешкой такая же ситуация, только после того, как ее отсоединить, остается USB Flash Drive, который никак не хочет монтироваться обратно, пока ее не вытащить и не засунуть снова. На флешке FAT
Куда копать?