LINUX.ORG.RU

hal + ntfs-3g как заставить работать?


0

0

Нужно подключить ntfs-3g чтобы hal его использовал для монтирования флешек. А то он использует стандартный драйвер и есть только чтение.

У меня Suse 10.2. В нете нарыл как это мона сделать для 10.3, вчера весь вечер пытался разобраться почему не работает, хотя все длелаю как надо вроде!

Вот собственно статья:

Что есть?
Есть openSUSE 10.3 и флешка 8 гигов, отформатированная в ntfs (в моем случае - Corsair Voyager GT)

Что нужно?
Нужно чтобы 1) система автоматически опозновала и монтировала флешку, 2) позволяла читать и писать на флешку юзеру и 3) умела размонтировать флешку через гуи.

В чем траблы?
В моем случае флешка монтируется/размонтируется без проблем. Проблема в том что нет прав на запись. Ни у юзера, ни у рута. Жесткое прописывание в fstab отчасти спасает положение, но 1) это коряво; 2) появляются проблемы с извлечением флешки.

Диагноз
В openSUSE 10.3 вся ответственность на подключение внешних устройств возложена на HAL. Флешки/фотоаппараты/плееры подключаются автоматом, в соответствии с правилами HAL. Чтоб более-менее писать в ntfs, необходимо использовать драйвер ntfs-3g (в системе он присутствует). Но так же в системе есть ntfs-драйвер ядра. HAL по умолчанию использует именно его.

Поправим это дело
Научим HAL использовать ntfs-3g.
Идем в /usr/share/hal/fdi/policy/10osvendor/
Создаем там файл 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>
<append key="volume.mount.valid_options" type="strlist">locale=</append>
</match>
</match>
</device>
</deviceinfo>


(попутно, я полагаю, можно решить проблемы с локалью, если таковые есть)

Все работает "на ура". Описанное решение проверено с HAL версии 0.5.9 (дефолт для суси 10.3).
Код выкопал тут: http://gentoo-wiki.com/HOWTO_NTFS_write_wi...1_or_earlier.29

Удачи




Делаю все как написано, а у меня при монтировании выскакивает ошибка типа $Log что-то там.... дальше много написано, не помню, вернул пока все назад. Ручками, без использования hal все естественно прекрасно монтируется!

ставишь gnome-mount и не мучаешься

или смотришь на <append key="volume.mount.valid_options" type="strlist">locale=</append> а потом думаешь какая у тебя локаль и что будет есть mount'а передать то что тут написано.

для того что бы не линковаться с libastral, очень пригодится текст ошибки $Log ... потому что резальтат использования этой либы не предсказуем

denisko
()
Ответ на: комментарий от denisko

> # ln -s /usr/bin/ntfs-3g /sbin/mount.ntfs

Давно заметил, что в сусе этот бинарник лежит в /bin почему-то...

shahid ★★★★★
()

Все эти танцы не работают с новым hal, единственный вариант, который у меня работает надёжно, это создание скрипта mount.ntfs следующего содержания:

#!/bin/bash

ntfs-3g $1 $2 -osilent,locale=en_US.UTF-8

the_one
()
Ответ на: комментарий от the_one

the_one +1

реально cовет помог! Щас все пишется и читается под нтфс и автомонтрируется! Спасибо.

ЗЫ. Всем остальным тоже спасибо за участие, тренеруйте ваши телепатические способности и отлаживайте код обработчика libastral, дабы он давал советы подобные этому :-)

Тема закрыта.

sansan88
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.