Как получить Hal работает на сервере Ubuntu?
Я хочу попытаться создать очень минимизированную установку сервера, которая автоматически монтирует его внутренние диски SATA. Таким образом, я подумал об использовании HAL. Насколько я читал, HAL является просто демоном, "слушающим" изменения оборудования и транслирующим изменения, если они соответствуют файлу конфигурации.fdi через dbus своим клиентам.
Какой клиент можно использовать при установке на сервер? Я читаю о gnome-volume-manager
как возможность, но, как я вижу, он хочет открыть графический дисплей, который мне не нужен при установке сервера (даже если это просто программный дисплей).
Есть какие-то советы для дальнейшего направления или есть альтернативные клиенты dbus, которые могут выполнять события HAL?
Я получил это работает, но без Hal/ DeviceKit/ GNOME. Я использую основные правила udev и команды RUN для монтирования дисков.
# /etc/udev/rules.d/local.rules
# /etc/udev/rules.d/89-local.rules
# ADD rule: if we have a valid ID_FS_USAGE, and it's a filesystem with a UUID, mkdir and mount
ENV{ID_FS_USAGE}=="filesystem", ENV{ID_FS_UUID_ENC}=="?*", ACTION=="add", RUN="/bin/mkdir -p /media/$env{ID_FS_UUID_ENC}" RUN+="/bin/mount -t auto /dev/%k /media/$env{ID_FS_UUID_ENC}" RUN+="/media/$env{ID_FS_UUID_ENC}/autostart.sh"
В Ubuntu поместите это в файл /lib/udev/rules.d/89-local.rules
, На Debian это должно быть в /etc/udev/rules.d
, Я также добавил возможность запустить autostart.sh
сценарий во время загрузки, например, для запуска служб, доступных только на определенных дисках
Автоматически подключать внешние диски к /media/LABEL при загрузке без входа пользователя? был ответ
2 ответа
HAL - это уровень связи и передачи сообщений - я, честно говоря, не уверен, где остановится DBus и начнется HAL. Он в основном используется как слой между DBus и средой рабочего стола, но у него нет компонента GUI, который требует DE для работы.
Для установки безголового сервера вы бы хотели использовать HALevt. HALevt - это демон, который находится поверх HAL, так же, как Gnome-VFS в Gnome DE, и реагирует на аппаратные события. Он может быть настроен для запуска как системный демон или как отдельный пользователь. См. Ответ, который я написал на предыдущий вопрос об использовании HALevt для обеспечения Gnome-VFS-подобного автомонтирования для компакт-дисков и USB-накопителей на автономном сервере. Это должно дать вам основные инструкции, хотя ваша ситуация, вероятно, потребует некоторой настройки.
Ответ whitequark - настройка ваших обычных монтирований с помощью / etc / fstab - лучше, если внутренние диски вашей системы не будут настроены для горячей замены. Использование HALevt для монтирования статических внутренних дисков выполнимо, но сложнее, чем нужно. Но если у вас есть отсеки для горячей замены и вы хотите их использовать, использование HALevt для автоматического монтирования может быть хорошим вариантом для вас.
Внутренние диски SATA не могут быть подключены горячим способом , то есть подключены, когда ваш сервер включен. Так что все, что вам нужно сделать, это установить их при включении. Для этого вам нужно просто поместить их в / etc / fstab:
- Универсальный метод, который работает для всех файловых систем:
Добавить строку как/dev/sdXN /path/to/mountpoint auto defaults 0 2
где / dev / sdXN - это псевдофайл вашего устройства. - Ext2 / Ext3-специфичный метод:
Сначала определите имя файла вашего устройства в работающей системе. Во-вторых, получите его UUID, запустивtune2fs -l /dev/sdXN | grep UUID
под root, конечно, заменив sdXN на ваше устройство снова. После этого вы можете добавить строку в fstab, как я делал в предыдущем абзаце, но заменив первое значение (/dev/sdXN
) от (UUID=fa62e245-04bd-4cb2-a17f-5c7ee19e3574
). Конечно, вам нужно заменить мой UUID на ваш. Преимущество этого метода заключается в том, что при добавлении или удалении дополнительных дисков SATA точки монтирования не будут зависеть от порядка обнаружения этих устройств ядром.
Также HAL действительно не нужен ни на одном сервере; это чисто настольная утилита, которая необходима, чтобы позволить непривилегированным пользователям выполнять некоторые привилегированные операции и только через D-Bus. Возможно, вы захотите использовать консольные утилиты, которые гораздо больше подходят для серверной среды.