Pregunta ¿Cómo se ejecuta Hal en el servidor de ubuntu?


Quiero intentar crear una instalación de servidor muy minimizada que monte automáticamente sus discos SATA internos. Por lo tanto, pensé en usar HAL como el camino a seguir. Por lo que he leído, HAL es solo un daemon que "escucha" los cambios de hardware y transmite los cambios si hacen coincidir un archivo de configuración .fdi a través de dbus con sus clientes.

¿Qué cliente puedo usar en una instalación de servidor? Yo leo sobre gnome-volume-manager como una posibilidad, pero como veo, quiere abrir una pantalla gráfica, que no necesito en una instalación de servidor (incluso si es solo una pantalla de software).

¿Alguna sugerencia para una dirección posterior o hay clientes dbus alternativos que puedan ejecutar eventos HAL?


Lo hice funcionar, pero sin hal / devicekit / gnome. Estoy usando las reglas básicas de udev y los comandos RUN para montar los discos

# /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"

En Ubuntu, pon esto en el archivo /lib/udev/rules.d/89-local.rules. En Debian debería estar en /etc/udev/rules.d. También agregué la posibilidad de ejecutar un autostart.sh secuencia de comandos durante el arranque, p. para iniciar servicios solo disponibles en discos específicos

¿Monta automáticamente unidades externas a / media / LABEL en el arranque sin un usuario conectado? tenía la respuesta


1


origen


¿Te gustó más mi respuesta udev? eso también es genial :) note que pondría los comandos mkdir & mount en un conjunto de scripts encadenados para que el RUN termine con rapidez - eso es importante para udev. me alegra que hayas averiguado la situación del arranque; nunca encontré una solución satisfactoria para eso. - quack quixote
ooo-- creo que recuerdo el con rapidez problema. si monta un sistema de archivos ext2 / 3 que se alcanza es el recuento máximo de montaje, ¿no se arranca fsck automáticamente? ese tomaría un tiempo Creo que hay otras situaciones en las que la montura podría llevar más tiempo de lo que Udev querría allí. - quack quixote
sí, gracias, definitivamente voy a echar un vistazo a esto - John Doe
@Udo al realizar ediciones para la limpieza de etiquetas, asegúrese de revisar también la publicación para ver cualquier otra cosa que deba solucionarse. Una publicación como esta que tiene muchos problemas de formato, errores ortográficos, etc. debe retocarse en su totalidad - no lo hagas solamente edita las etiquetas. Gracias. - nhinkle♦
@nhinkle: ok hará - udo


Respuestas:


HAL es una capa de comunicación y transmisión de mensajes. Sinceramente, no estoy seguro de dónde se detiene DBus y comienza HAL. Se utiliza principalmente como una capa entre DBus y el entorno de escritorio, pero no tiene ningún componente de GUI que requiera que el DE funcione.

Para una instalación de servidor sin cabeza, querrá usar HALevt. HALevt es un daemon que se encuentra en la parte superior de HAL, al igual que Gnome-VFS lo hace en el Gnome DE, y responde a los eventos de hardware. Se puede configurar para ejecutarse como un daemon en todo el sistema o como un usuario individual. Ver una respuesta que escribí a una pregunta anterior sobre el uso de HALevt para proporcionar automoción Gnome-VFS-like para CD y unidades USB en un servidor sin cabeza. Esto debería darle el procedimiento básico, aunque su situación probablemente requiera algunos ajustes.

la respuesta de whitequark - configurando tus monturas normales a través de / etc / fstab - es mejor si las unidades internas de su sistema no estarán configuradas para hotswapping. Usar HALevt para montar discos internos estáticos es factible, pero más complicado de lo que necesita ser. Pero si tiene bahías de acceso rápido y desea usarlas, usar HALevt para autostop puede ser una buena opción para usted.


1



Además, oigo que la próxima versión de Ubuntu estará abandonando a HAL por completo, lo que me hace incluso Más confundido acerca de su trabajo específico. por lo tanto, si planea actualizarse a 10.04LTS cuando se publique, puede considerar una solución que no esté basada en HAL. - quack quixote
Bueno, eche un vistazo y solo como una nota: investigué un poco y parece que hal será reemplazado por devicekit (hal.freedesktop.org/docs/DeviceKit) Así que para el int ~ quack - John Doe


Las unidades SATA internas no pueden ser hotplugged, es decir, enchufado mientras el servidor está encendido. Entonces, todo lo que tienes que hacer es montarlos al momento del encendido. Para este propósito, solo tiene que colocarlos en / etc / fstab:

  1. Método universal que funciona para todos los sistemas de archivos:
    Agregue una línea como /dev/sdXN /path/to/mountpoint auto defaults 0 2 donde / dev / sdXN es el pseudo archivo de su dispositivo.
  2. Método Ext2 / Ext3-specific:
    Primero, determine el nombre de su archivo de dispositivo en el sistema en ejecución. En segundo lugar, obtén su UUID ejecutando tune2fs -l /dev/sdXN | grep UUID en la raíz, por supuesto, reemplazando sdXN por su dispositivo de nuevo. Luego puede agregar una línea a fstab como lo hice en el párrafo anterior pero reemplazando el primer valor (/dev/sdXN) por (UUID=fa62e245-04bd-4cb2-a17f-5c7ee19e3574) Por supuesto, debe reemplazar el UUID de la mina con el suyo. Este método tiene la ventaja de que si agrega o elimina unidades SATA adicionales, los puntos de montaje no se verán afectados por la orden en que el kernel detecta estos dispositivos.

También HAL realmente no es necesario en ningún servidor; es una utilidad puramente de escritorio que se necesita para permitir que los usuarios sin privilegios realicen algunas operaciones privilegiadas y solo a través de D-Bus. Probablemente desee utilizar las utilidades de la consola que son mucho más adecuadas para el entorno del servidor.


0



no creo que eso sea cierto (las unidades SATA no pueden conectarse en caliente): la especificación SATA proporciona conexión en caliente, pero su conjunto de chips debe ser compatible explícitamente y necesita conectores de alimentación compatibles con hotplug. (Así es como funciona eSATA, AFAIK). - quack quixote
Dije, no todas las unidades SATA, sino solo unidades SATA internas, y es poco probable que los conectores de alimentación de SATA interno estándar sean compatibles con eSATA. - whitequark
¿Qué crees que están dentro de esos hotdlug caddies SATA? unidades SATA internas compatibles con hotplug. ver en.wikipedia.org/wiki/Serial_ATA#Hotplug - "Todos los dispositivos SATA admiten hotplugging". requiere que el chipset esté en modo nativo (AHCI, no modo de emulación IDE). el poder el lado de las cosas es diferente; ver en.wikipedia.org/wiki/Serial_ATA#Power_supply - quack quixote
lo siento, en realidad quise decir "cables de alimentación que estaban en la caja con unidad interna" que probablemente estén instalados. también esta discusión probablemente se vuelve algo offtópica. - whitequark
La razón por la que trato de usar hal en lugar de fstab es que no puede escalar, que también es parte del problema de conexión en caliente, pero mi propósito principal es: quiero un script (como .fdi) que esté generalizado para que pueda usarlo en cada futuro hardware que se basa en las mismas reglas que yo defino actualmente y fstab es demasiado trabajo y propenso a errores para mi gusto en mi caso - John Doe