HAL - Слой аппаратных абстракций - CentOS Wiki

HAL

Это содержание относится только к CentOS 5

1. Аннотация

Начиная с версии 5, в CentOS больше не используется автоопределение демона:

# cat /proc/sys/kernel/hotplug

#

Имеются следующие подсистемы:

  • HAL - Слой аппаратных абстракций
  • gnome-volume-manager - служба GNOME, которая позволяет назначить действия в соответствии с событиями, произошедшими в ядре (udev, d-bus и HAL)
  • gnome-mount - приложение монтирования томов gnome (связанный с gnome-volume-manager)

До CentOS 4 включительно, при подключении usb диска к вашему компьютеру, последний автоматически монтируется в каталог /media, даже если система загружена в режиме запуска 3 (текстовый режим). Однако это не справедливо для CentOS 5.

2. Как получить автомонтирование за пределами Gnome/KDE

Демон "gnome-volume-manager" здесь является ключевой фигурой. Все, что вам нужно сделать, это запусить его:

$ gnome-volume-manager --sm-disable

Не нужно запускать это в фоне ("&"), поскольку это получится замыкание на сомого себя. Мы также рекомендуем старт gnome-volume-manager под пользователем, которого вы собираетесь использовать для доступа к устройству, поскольку "gnome-mount" смонтирует том используя uid запущенного процесса gnome-volume-manager с параметрами монтирования uid/user.

Итак, если вы работаете в IceWM (для примера), все что вам нужно сделать, это запустить в начале сессии "gnome-volume-manager --sm-disable" (.Xclients-default, .Xclients etc).

Не забывайте использовать "gnome-volume-properties" для настройки gnome-volume-manager.

3. Как передать gnome-mount те опции монтирования, которые вы хотите.

Одним из моментов "gnome-mount" (в соответствии с которым gnome-volume-manager производит монтирование) является то, что он имеет множество дефолтных значений и одну неприятную ошибку. Данная ошибка останавливает вас от настройки параметров в "gconftool-2". "Gnome-mount" будет добавлять свои параметры монтирования после тех, которые вы укажете с gconftool-2, что делает некоторые опции недоступными.

Примечание: Вы можете использовать опцию "--write-settings" в gnome-mount, а затем "gconf-edit" для изменения значений gconf, без необходимости ипользовать "gconftool-2" напрямую.

 

Трюком является то, что gnome-mount будет добавлять "пользовательские" опции для монтирования. Этот вариант подразумевает "noexec, nodev, nosuid". Поскольку это будет добавлено после значения, которые вы предоставите, если укажите "exec" для

Другая вещь, которую вы можете захотеть изменить это точка монтирования. Gnome-mount по умолчанию монтирует в /media/метка.

Способ изменить это - использование /etc/fstab. Опции монтирования представленные в /etc/fstab будут добавлены после заданных в gnome-mount, так что теперь их можно контролировать.

Чтобы вам было проще разобраться, давайте представим себе сценарий использования pendrive, с файловой системой ext3 и меткой (названием) "MYPENDRIVE" (PendriveUSB Flash Drive). Если вы просто включите компьютер, вам потребуется что-то вроде этого:

/dev/sda1 on /media/MYPENDRIVE type ext3 (rw,noexec,nosuid,nodev,user=myusername)

Теперь предположим, вы хотите, чтобы монтирование было с параметром "exec". Все, что вам нужно сделать, это добавить строчку в /etc/fstab:

LABEL=MYPENDRIVE  /media/MYPENDRIVE   ext3    defaults,user,exec,noauto   0   0 

Не забудьте добавить "exec" после "user" или "users", в противном случае она не будет работать.

Другой ньюанс заключается в том, что с помощью fstab, gnome-mount больше не будет автоматически создавать точку монтирования. Поэтому убедитесь, что вы создали ее сами.

Используя эту же логику, можно задать gnome-mount, использовать другую точку монтирования. Это особенно интересно, если вы используете съемные диски (например: Dell RD1000):

LABEL=RD1000disk    /backup    ext2    defaults,users,noauto   0   0

Опция "noauto" будет применяться к "mount -a". Gnome-volume-manager будет попрежнему устанавливать его автоматически, так что бояться здесь нечего.

4. Как проверить изменения gnome-mount (диагностика)

Один из простых способов проверить свои изменения gnome-mount, это вызвать его вручную.

Во-первых, вы должны остановить - stop/kill gnome-volume-manager. Затем, вы должны вызвать "gnome-mount" непосредственно для данного устройства:

gnome-mount -vbd /dev/sda1

флаг -v означает подробно, так что вы получите несколько сообщений, которые помогут вам в диагностике. Затем вы можете "размонтировать" ("umount") устройство и вызвать "gnome-mount" еще раз, чтобы получить то что вы хотите.

После того как вы закончили настройку, вы должны "размонтировать" ("umount") том, отключить устройство, и только после этого перезапустить "gnome-volume-manager", в противном случае вы получите в итоге небольшой беспорядок.

Если ничего не помогает:

  1. Stop/kill gnome-volume-manager
  2. Останов hal daemon (service haldaemon stop)
  3. Отключите устройство
  4. Старт hal daemon (service haldaemon start)
  5. Старт gnome-volume-manager (gnome-volume-manager --sm-disable)
  6. Подключите устройство

Автор: Александр