Wie bekomme Hal auf Ubuntu Server?

1394
John Doe

Ich möchte versuchen, eine sehr minimierte Serverinstallation zu erstellen, bei der die internen SATA-Festplatten automatisch geladen werden. Daher dachte ich daran, HAL als Weg zu benutzen. Soweit ich lese, ist HAL nur ein Daemon, der auf Hardwareänderungen wartet und die Änderungen sendet, wenn sie eine .fdi-Konfigurationsdatei über dbus an ihre Clients abgleichen.

Welchen Client kann ich auf einer Serverinstallation verwenden? Ich lese gnome-volume-managerals eine Möglichkeit, aber wie ich sehe, möchte ich eine grafische Anzeige öffnen, die ich nicht auf einem Server installieren muss (auch wenn es sich nur um eine Software-Anzeige handelt).

Irgendwelche Hinweise für die weitere Richtung oder gibt es alternative dbus-Clients, die HAL-Ereignisse ausführen können?


Ich habe es funktioniert, aber ohne hal / devicekit / gnome. Ich benutze grundlegende udev-Regeln und RUN-Befehle, um die Festplatten zu mounten

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

Fügen Sie dies auf Ubuntu in die Datei ein /lib/udev/rules.d/89-local.rules. Auf Debian sollte es in sein /etc/udev/rules.d. Ich habe auch die Möglichkeit hinzugefügt, ein autostart.shSkript während des Bootens auszuführen, z. B. um Dienste zu starten, die nur für bestimmte Festplatten verfügbar sind

Externe Laufwerke beim Booten automatisch in / media / LABEL einbinden, ohne dass ein Benutzer angemeldet ist? hatte die Antwort

1
mochtest du meine udev Antwort besser? das ist auch cool :) beachte, ich würde die mkdir & mount-Befehle in eine Reihe von verketteten Skripten setzen, damit der RUN * schnell * beendet wird - das ist wichtig für udev. Ich bin froh, dass Sie die Boot-Situation herausgefunden haben. Ich habe nie wirklich eine befriedigende Lösung dafür gefunden. quack quixote vor 14 Jahren 0
ooo-- denke ich erinnere mich an die * schnelle * Ausgabe. Wenn Sie ein ext2 / 3-Dateisystem mounten, das die maximale Mountanzahl erreicht hat, wird fsck nicht automatisch gestartet? * das * würde eine Weile dauern. Ich denke, es gibt andere Situationen, in denen das Mount länger dauern könnte, als udev dort möchte. quack quixote vor 14 Jahren 0
ja, thx, krank sieh dir das definitiv an John Doe vor 14 Jahren 0
@Udo Wenn Sie Änderungen an der Tag-Bereinigung vornehmen, überprüfen Sie bitte auch den Beitrag auf alles Weitere, das korrigiert werden muss. Ein Post wie dieser, der viele Formatierungsprobleme, Rechtschreibfehler usw. hatte, sollte _in full_ ausgebessert werden - nicht _ nur die Tags bearbeiten. Vielen Dank. nhinkle vor 10 Jahren 1
@nhinkle: ok wird es tun udo vor 10 Jahren 0

2 Antworten auf die Frage

1
quack quixote

HAL ist eine Ebene für Kommunikation und Nachrichtenübermittlung. Ich bin ehrlich nicht sicher, wo DBus stoppt und HAL beginnt. Sie wird meistens als Layer zwischen DBus und der Desktop-Umgebung verwendet, verfügt jedoch nicht über eine GUI-Komponente, für die der DE erforderlich ist.

Für eine Headless-Server-Installation möchten Sie HALevt verwenden. HALevt ist ein Daemon, der sich auf der HAL befindet, ähnlich wie Gnome-VFS in Gnome DE, und auf Hardwareereignisse reagiert. Es kann so konfiguriert werden, dass es als systemweiter Daemon oder als einzelner Benutzer ausgeführt wird. Sehen Sie eine Antwort, die ich auf eine frühere Frage schrieb über halevt mit Gnome-VFS-like Automounting für CDs und USB - Laufwerke auf einem Headless - Server zur Verfügung zu stellen. Dies sollte Ihnen die grundlegende Vorgehensweise vermitteln, auch wenn Ihre Situation wahrscheinlich einige Optimierungsmaßnahmen erfordert.

Die Antwort von Whitequark - das Einrichten Ihrer normalen Mounts über / etc / fstab - ist besser, wenn die internen Laufwerke Ihres Systems nicht für Hotswapping eingerichtet werden. Die Verwendung von HALevt für das Mounten statischer interner Festplatten ist machbar, aber komplizierter als es sein muss. Wenn Sie Hotswap-Einschübe haben und diese verwenden möchten, ist die Verwendung von HALevt für das Automounting möglicherweise eine gute Option für Sie.

Ich höre auch, dass die nächste Version von Ubuntu ganz auf HAL verzichten wird, was mich * noch * verwirrter macht, was ihren speziellen Job angeht. Wenn Sie also vorhaben, ein Upgrade auf 10.04LTS durchzuführen, sollten Sie eine nicht HAL-basierte Lösung in Betracht ziehen. quack quixote vor 14 Jahren 0
thx, ich schaue mal und nur eine Anmerkung: Ich habe ein bisschen recherchiert und es scheint, als würde hal durch geräteset ersetzt werden (http://hal.freedesktop.org/docs/DeviceKit/), also thx für den int ~ quack John Doe vor 14 Jahren 0
0
whitequark

Interne SATA-Laufwerke können nicht Hotplugged werden, dh während der Server eingeschaltet ist. Alles, was Sie tun müssen, ist, sie beim Einschalten einzubauen. Dazu müssen Sie sie einfach in / etc / fstab platzieren:

  1. Universelle Methode, die für alle Dateisysteme geeignet ist :
    Fügen Sie eine Zeile hinzu, /dev/sdXN /path/to/mountpoint auto defaults 0 2in der / dev / sdXN die Pseudo-Datei Ihres Geräts ist.
  2. Ext2 / Ext3-spezifische Methode:
    Ermitteln Sie zunächst den Namen Ihrer Gerätedatei im laufenden System. Zweitens erhalten Sie die UUID, indem Sie tune2fs -l /dev/sdXN | grep UUIDunter root laufen und natürlich sdXN erneut durch Ihr Gerät ersetzen. Danach können Sie eine Zeile zu fstab hinzufügen, wie ich es im vorherigen Absatz getan habe, aber den ersten Wert ( /dev/sdXN) durch ( UUID=fa62e245-04bd-4cb2-a17f-5c7ee19e3574) ersetzen . Natürlich müssen Sie meine UUID durch Ihre ersetzen. Diese Methode hat den Vorteil, dass Mountpoints, wenn Sie zusätzliche SATA-Laufwerke hinzufügen oder entfernen, nicht von der Reihenfolge beeinflusst werden, in der der Kernel diese Geräte erkennt.

HAL wird auch auf keinem Server benötigt; Es handelt sich hierbei um ein reines Desktop-Dienstprogramm, das unberechtigten Benutzern die Ausführung einiger privilegierter Operationen und nur über den D-Bus ermöglicht. Sie möchten wahrscheinlich Konsolen-Utilities verwenden, die für Serverumgebungen viel besser geeignet sind.

Ich glaube nicht, dass das stimmt (SATA-Laufwerke können nicht Hotplugged werden) - die SATA-Spezifikation bietet Hotplugging, aber Ihr Chipsatz muss dies explizit unterstützen, und Sie benötigen Hotplug-fähige Stromanschlüsse. (So ​​funktioniert eSATA, AFAIK.) quack quixote vor 14 Jahren 0
Ich sagte, nicht alle SATA-Laufwerke, sondern nur interne SATA-Laufwerke, und es ist unwahrscheinlich, dass die Stromversorgungsanschlüsse von internem Standard-SATA eSATA-kompatibel sind. whitequark vor 14 Jahren 0
Was denkst du ist in diesen Hotplug-SATA-Caddies? Hotplug-fähige interne SATA-Laufwerke. siehe http://en.wikipedia.org/wiki/Serial_ATA#Hotplug - "Alle SATA-Geräte unterstützen Hotplugging." Der Chipsatz muss sich jedoch im nativen Modus befinden (AHCI, nicht IDE-Emulationsmodus). die * Macht * der Dinge ist anders; siehe http://en.wikipedia.org/wiki/Serial_ATA#Power_supply quack quixote vor 14 Jahren 0
Entschuldigung, ich meinte eigentlich "Stromkabel, die sich in der Box mit internem Laufwerk befanden", die wahrscheinlich installiert sind. Auch diese Diskussion wird wahrscheinlich etwas offtopic. whitequark vor 14 Jahren 0
Der Grund, warum ich versuche, hal anstelle von fstab zu verwenden, ist, dass fstab nicht skaliert werden kann, was auch Teil des Hotplugging-Problems ist. Mein Hauptzweck ist jedoch: Ich möchte ein Skript (wie .fdi), das verallgemeinert ist, sodass ich es in jeder Zukunft verwenden kann Hardware, die auf den gleichen Regeln basiert, die ich derzeit definiere, und fstab ist für meinen Geschmack in meinem Fall einfach zu viel Arbeit und Fehler John Doe vor 14 Jahren 0