2009-10-27 12 views
6

Mein Projekt beinhaltet die Simulation eines Block-Geräts von Remote-Host.Linux Block Device Simulation & Fuse

Zum Testen verwende ich FUSE, mein Dateisystem ist eine einfache Änderung der "Hallo" -Beispiel-App, wo ich anstelle einer konstanten Zeichenkette nur Daten direkt aus einer Datei lese.

Wenn ich versuche, die Datei normal mounten (mount -o loop =/dev/loop1), funktioniert es gut. Wenn ich fuse laden und diese Datei über sie freilegen, funktionieren alle normalen Dateioperationen. Das Mounten schlägt jedoch mit "Permission denied" fehl.

Jeder hat eine Idee, woher die "Erlaubnis verweigert" kommt?

Alle anderen Methoden, die mir erlauben, ein virtuelles Gerät (nur Support-Block-Zugriff) im Benutzerbereich zu erstellen, die montierbar sein wird?

Vielen Dank im Voraus

+0

Was Distro verwenden Sie zur Entwicklung mit? Es könnte so einfach sein, wie Sie Ihren Benutzer zu der Gruppe "Sicherung" hinzufügen. –

+0

Ubuntu 9. Mount mit Wurzel rotieren. – Boris

Antwort

1

Der Mount-Befehl ist eine echte Hölle zu verwenden, wenn es um Fehler zu drucken beginnt. Versuchen Sie „-v“ aber mehr als oft nicht, wird die zusätzliche Ausgabe nicht helfen :(

+0

Leider -v zeigen absolut keine Probleme bis zum gefürchteten "Permission denied" – Boris

4

Vermutlich ist das Problem, dass das FUSE-Dateisystem nicht die Funktionen nicht unterstützt, erforderlich ist, um Loop-Halterungen auf sie.

Haben Sie darüber nachgedacht, ein Netzwerk-Blockgerät statt, wie am nächsten Arbeitstag oder iSCSI-Target?

+0

Leider scheint das nicht zu passen, da NBD-Server die Blockanforderungen selbst erfüllen wird. Während ich meine Anwendung brauche, um die Blöcke bereitzustellen. – Boris

+0

Ihre Anwendung kann die Blöcke durch Implementierung eines NBD-Servers oder eines iscsi-Ziels bereitstellen. Sie können dann die vorhandenen NBD- oder iSCSI-Treiber des Kernels verwenden, um sie über das Netzwerk verfügbar zu machen und dann zu mounten. – MarkR

+0

Ich habe fälschlicherweise angenommen, dass das Schreiben meines eigenen NBD-Servers zu sehr schmerzt. gerade einen Entwurf NBD-Server in Python: "http://lists.canonical.org/pipermail/kragen-hacks/2004-May/000397.html" Anzüge perfekt mit meinem "Prototype in Python" Experiment Vielen Dank! – Boris

2

Stehen Sie mit Root-Berechtigung ausgeführt werden. Sie können das Programm mit „strace“ verfolgen und dann prüfen, wo genau dies fehlschlägt.