ForumSamba auf readonly-System nutzen
GoaSkin – Montag, 30. November 2009 22:46 Uhr

Hallo,

ich versuche verzweifelt Samba auf einem Embedded-Gerät zum Laufen zu bringen, auf dem die Linux-Partitionen im Betrieb nicht beschreibbar sind, sondern sich nur als Ganzes mit cramfs bzw. squashfs-Images flashen lassen (im Falle eines Firmware-Updates).
Beschreibbar ist nur eine kleine ramdisk sowie Speichermedien, die an einer USB-Schnittstelle angeschlossen sind. Zusätzliche Software muß von daher auch von einem USB-Medium gestartet werden.

Möchte ich nun Samba installieren, stehe ich vor dem Problem, daß beim Compilieren von Samba verschiedene Pfade statisch festgelegt werden, die sich scheinbar in der smb.conf (oder doch?) nicht festlegen lassen. Dort werden verschiedene tdb-Dateien als Datenbanken (oder kann man das abschalten?) genutzt.

Das eigentliche Problem ist, daß das System den USB-Medien dynamische Mountpoints verpasst, wodurch man davon ausgehen kann, daß der Pfad zum USB-Speicher nicht bei jeder Nutzung der selbe ist. Von daher kann ich mit statisch festgelegten Pfaden, die bereits bei der Compilation von Samba festgelegt werden einfach nichts anfangen.

Lediglich beim Start von smbd kann man alles richten, in dem man die Startparameter –private-dir, –lockdir etc. nutzt. Ein Shellskript zum Starten muß eben die Pfade zum USB-Stick analysieren und den entsprechenden Startbefehl ausführen.
Der nmbd kennt diese Parameter jedoch nicht, motzt aber herum und startet nicht, wenn er verschiedene tdb-Dateien nicht findet, die eigentlich nur der smbd braucht.

Wüsste jemand einen Trick, wie ich samba vollständig zum Laufen bekommen könnte? Gibt es vielleicht Startkommandos, die Programme ausführen können und dem Programm die Existenz eines bestimmten Pfades vorgaukeln oder könnte man mit einer chroot-Umgebung was machen?

1 Antwort
GoaSkin – Sonntag, 13. Dezember 2009 13:30 Uhr

Ich habe Samba neu kompiliert und als Präfix /tmp/samba eingestellt. Beim Systemstart wird das Unterverzeichnis samba in tmp auf den Pfad auf dem USB-Stick verlinkt.

Deaktiviert man sämtliche Features, die man nicht braucht, so erhält man übrigens sehr kleine Daemons, die keine weiteren Bibliotheken benötigen. Ein SMB-Server, der weniger als 1GB auf einem Laufwerk benötigt ist möglich.