Вход:  Пароль:  
FreeSource: AltLinux/Sisyphus/admin/IvmanAutomount ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Это старая версия AltLinux/Sisyphus/admin/IvmanAutomount за 2005-11-28 12:20:49..

Новые веяния в области автомонтирования

Hal+ivman+pmount


Проблема со сменными носителями существовала с момента появления первого носителя и разные операционные системы абсолютно по разному подходили к решению этого вопроса. На моей памяти в линуксе я использовал supermount/autofs/subfs и у каждого из этих вариантов было множество недостатков. Попробую их перечислить:


  1. Необходимость выяснить текущее имя устройства
  2. Наличие прав на запись в системные конфигурационные файлы
  3. Всевозможные проблемы с «залипанием» сменного устройства с последующей перезагрузкой для его извлечения

Решение первого пункта было возложено на сервис hotplug и многие ощутили на себе последствия этого шага, как-то затирания /etc/fstab. Сейчас ситуация стабилизировалась, но у многих мысль о допускании кого-то на автоматическую запись в /etc/fstab вызывает дрожь. Многие, в том числе и я, для спокойного сна воспользовались командой chattr +i /etc/fstab. Информацию же о имени устройства можно получить через сервис Hal.


Но это сделало еще более острым второй вопрос – если никто из сервисов, работающих под правами рута не вносит запись, то это вынужден делать пользователь. Самому себе можно дать права на редактирование чего угодно, но это не подходит для ситуации с несколькими пользователями или для корпоративной среды. rider@ по старой традиции возложил монтирование сменных устройств на информационную подсистему hal, и теперь уже к нему появляются претензии по поводу бредовых записей в /etc/fstab...
Есть начинание по запрету записи в /etc/fstab и перенесение его изменяемой части в /etc/fstab.d

Что предлагает Ivman?


Отсутствие необходимости писать в /etc/fstab или куда-либо еще для автоматического монтирования. Теперь все сервисы у нас занимаются только своим делом:

Как это все работает


И это все?


Нет, это очень маленькая часть возможностей ivman!
ivman стандартно работает в двух экземплярах:


Маленький пример:


и этим не исчерпываются возможности настройки демона ivman, но об этом будет написано в следующей статье.

Совместимость с другими системами автомонтирования


ivman запущенный под системным аккаунтом не мешает никому из них... Но и не работает сам – это связано в первую очередь с паузой которую он делает для отработки пользовательских правил. За это время hotplug(а в последних версия hal) успевает произвести запись в fstab и вызвать монтирование устройства. У копии запущенной от простого пользователя возникает состояние гонки и результат абсолютно непредсказуем. Поэтому рекомендуется избегать пересечения по устройствам у различных систем автомонтирования.
Продолжение следует...


Добрые советы

Большой проблемой на данный момент является совместимость этой схемы с утилитами записи CD и DVD дисков.
Для growisofs я рекомендую использовать такой workarround:
Создать в каталоге ~/bin файл с именем growisofs и следующим содержанием:


Поддержка iocharset в ivman

ivman версии 0.6.4 местами обрабатывал policy.mount_option (исключая iocharset). я изготовил патч на эту тему и отправил его в дедал: патченый ivman передает pmount -c $hal.volume.policy.mount_option.iocharset$, если он задан в hal policy.


в версии 0.6.6 все поменяли, теперь mount_command выбирается из mount/pmount/pmount-hal при инициализации, и в дальнейшем не меняется. Причем, общесистемный экземпляр всегда использует pmount, а пользовательский – pmount-hal. Соответственно, передать что-либо udi-зависимое невозможно :(


Единственным выходом остается определять кодировку в самом pmount, см. ниже. Для пользовательского ivman – таки можно ориентироваться на hal, для этого надо поправить pmount-hal.

Поддержка iocharset в pmount

pmount поддерживает явное задание кодировки iocharset – ключ -c. Если кодировка не задана, то поведение pmount мне представляется странным: он берет текущую локаль (пользователя, под которым запущен) и если она utf8 – выставляет iocharset=utf8, но игнорирует любую другую.


Можно было бы исправить pmount, чтобы он всегда монтировал с текущей локалью в iocharset, однако это не поможет при запуске из системного ivman (или просто от рута). Я предпочел заменить запрос локали вызовом libnatspec. Пакет можно взять тут:
ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/Daedalus/i586/RPMS.daedalus/pmount-0.9.3-alt1.gns1.i586.rpm
или собрать:
ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/Daedalus/SRPMS.daedalus/pmount-0.9.3-alt1.gns1.src.rpm


Проблема нескольких пользователей с _разными_ локалями, очевидно, решается только запуском пользовательского экземпляра ivman у одного из них.
//Nick S. Grechukh


Страницы, ссылающиеся на данную: ALTLinux/Sisyphus/admin/IvmanAutomount/subfs
EugeneOstapets


 
Файлов нет. [Показать файлы/форму]
Много комментариев (8). [Показать комментарии/форму]