Как получить Hal работает на сервере Ubuntu?

1396
John Doe

Я хочу попытаться создать очень минимизированную установку сервера, которая автоматически монтирует его внутренние диски 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=="filesystem", ENV=="?*", ACTION=="add", RUN="/bin/mkdir -p /media/$env" RUN+="/bin/mount -t auto /dev/%k /media/$env" RUN+="/media/$env/autostart.sh" 

В Ubuntu поместите это в файл /lib/udev/rules.d/89-local.rules. На Debian это должно быть в /etc/udev/rules.d. Я также добавил возможность запуска autostart.shскрипта во время загрузки, например, для запуска сервисов, доступных только на определенных дисках.

Автоматически подключать внешние диски к / media / LABEL при загрузке без входа пользователя? был ответ

1
Тебе понравился мой ответ udev лучше? это тоже круто :) обратите внимание, я бы поместил команды mkdir & mount в набор связанных скриптов, чтобы RUN завершал * быстро * - это важно для udev. рад, что ты понял ситуацию с загрузкой; я никогда не находил удовлетворительного решения для этого. quack quixote 14 лет назад 0
ooo-- думаю, я помню * быстро * вопрос. если вы смонтировали файловую систему ext2 / 3, которая достигла максимального числа монтировок, разве fsck не запускается автоматически? * это * займет некоторое время думаю, что есть другие ситуации, когда монтирование может занять больше времени, чем того хотелось бы udev. quack quixote 14 лет назад 0
да, спасибо, конечно, посмотрите на это John Doe 14 лет назад 0
@Udo при внесении изменений для очистки тегов, пожалуйста, не забудьте также проверить сообщение на предмет чего-либо еще, что требует исправления. Пост, подобный этому, который имел много проблем с форматированием, орфографическими ошибками и т. Д., Должен быть исправлен _in full_ - не _только_ редактируйте теги. Благодарю. nhinkle 11 лет назад 1
@nhinkle: хорошо, сделаем udo 11 лет назад 0

2 ответа на вопрос

1
quack quixote

HAL - это уровень связи и передачи сообщений - я, честно говоря, не уверен, где остановится DBus и начнется HAL. Он в основном используется как слой между DBus и средой рабочего стола, но у него нет компонента GUI, который требует DE для работы.

Для установки безголового сервера вы бы хотели использовать HALevt. HALevt - это демон, который находится поверх HAL, так же, как Gnome-VFS в Gnome DE, и реагирует на аппаратные события. Он может быть настроен для запуска как системный демон или как отдельный пользователь. См. Ответ, который я написал на предыдущий вопрос об использовании HALevt для обеспечения Gnome-VFS-подобного автомонтирования для компакт-дисков и USB-накопителей на автономном сервере. Это должно дать вам основные инструкции, хотя ваша ситуация, вероятно, потребует некоторой настройки.

Ответ whitequark - настройка ваших обычных монтирований с помощью / etc / fstab - лучше, если внутренние диски вашей системы не будут настроены для горячей замены. Использование HALevt для монтирования статических внутренних дисков выполнимо, но сложнее, чем нужно. Но если у вас есть отсеки для горячей замены, и вы хотите использовать их, использование HALevt для автоматического монтирования может быть хорошим вариантом для вас.

Кроме того, я слышал, что следующая версия Ubuntu будет полностью отказываться от HAL, что еще больше запутывает меня в отношении ее конкретной работы. поэтому, если вы планируете перейти на 10.04LTS, когда он выйдет, вы можете рассмотреть решение, не основанное на HAL. quack quixote 14 лет назад 0
THX, я посмотрю, и просто как примечание: я провел небольшое исследование, и кажется, Hal будет заменен DeviceKit (http://hal.freedesktop.org/docs/DeviceKit/), так что THX для int ~ quack John Doe 14 лет назад 0
0
whitequark

Внутренние диски SATA не могут быть подключены горячим способом, то есть подключены, когда ваш сервер включен. Так что все, что вам нужно сделать, это установить их при включении. Для этого вам нужно просто поместить их в / etc / fstab:

  1. Универсальный метод, который работает для всех файловых систем:
    добавьте строку, например, /dev/sdXN /path/to/mountpoint auto defaults 0 2где / dev / sdXN - это псевдофайл вашего устройства.
  2. Ext2 / Ext3-специфичный метод:
    сначала определите имя файла вашего устройства в работающей системе. Во-вторых, получите его UUID, запустив его tune2fs -l /dev/sdXN | grep UUIDпод root, и, конечно, снова замените sdXN на вашем устройстве. После этого вы можете добавить строку в fstab, как я делал в предыдущем абзаце, но заменив first value ( /dev/sdXN) на ( UUID=fa62e245-04bd-4cb2-a17f-5c7ee19e3574). Конечно, вам нужно заменить мой UUID на ваш. Преимущество этого метода заключается в том, что при добавлении или удалении дополнительных дисков SATA точки монтирования не будут зависеть от порядка, в котором ядро ​​обнаруживает эти устройства.

Также HAL действительно не нужен ни на одном сервере; это чисто настольная утилита, которая необходима, чтобы позволить непривилегированным пользователям выполнять некоторые привилегированные операции и только через D-Bus. Возможно, вы захотите использовать консольные утилиты, которые гораздо больше подходят для серверной среды.

я не думаю, что это правда (диски SATA не могут быть подключены в горячем режиме) - спецификация SATA предусматривает горячее подключение, но ваш чипсет должен явно поддерживать его, и вам нужны разъемы питания с возможностью горячего подключения. (так работает eSATA, AFAIK.) quack quixote 14 лет назад 0
Я сказал, что не все диски SATA, а только внутренние диски SATA, и маловероятно, что разъемы питания стандартных внутренних SATA будут совместимы с eSATA. whitequark 14 лет назад 0
Как вы думаете, что внутри этих кешей SATA hotplug? внутренние диски SATA с возможностью горячего подключения см. http://en.wikipedia.org/wiki/Serial_ATA#Hotplug - «Все устройства SATA поддерживают горячее подключение». для этого требуется, чтобы набор микросхем находился в основном режиме (AHCI, а не в режиме эмуляции IDE). * сила * сторона вещей отличается; см. http://en.wikipedia.org/wiki/Serial_ATA#Power_supply quack quixote 14 лет назад 0
извините, я имел в виду "силовые кабели, которые были в коробке с внутренним диском", которые, вероятно, установлены. также это обсуждение, вероятно, становится несколько оффтопным. whitequark 14 лет назад 0
причина, по которой я пытаюсь использовать hal вместо fstab, заключается в том, что fstab не может масштабировать, что также является частью проблемы горячего подключения, но моя основная цель: я хочу сценарий (например, .fdi), который обобщен, чтобы я мог использовать его в каждом будущем аппаратное обеспечение, которое основано на тех же правилах, которые я в настоящее время определяю, и fstab слишком много работы и подвержено ошибкам на мой вкус в моем случае John Doe 14 лет назад 0

Похожие вопросы