DSBMC/DSBMD

Ist das in etwa, was diese Windows daemon-tools machen?

Jap. Die daemon-tools legen ein virtuelles optisches Laufwerk an und geben ihm den nächsten freien Buchstaben. Wenn man dann isos oder sonstige Abbilddateien damit öffnet, sieht man im virtuellen Laufwerk den Inhalt der Datei.
 
Der neue DSBMD ist da! Damit lassen sich md-Geräte einfach per DSBMC detachen. Um md-Geräte für den Zugriff auf ein Image zu erzeugen, kann der aktuelle DSBMC-Code wie folgt getestet werden:

Code:
# pkg delete dsbmc
# fetch https://github.com/mrclksr/DSBMC/archive/master.zip
# unzip master.zip && cd DSBMC-master && make GTKVER=3.0 install

Sollte noch eine alte Instanz von DSBMC laufen, so sollte diese beendet werden.

Man kann nun entweder an der Kommandozeile dsbmc /pfad/zu/einem/image ausführen, oder einfach den bevorzugten Dateimanager bitten, ein Image mit DSBMC zu öffnen. DSBMC stellt sicher, dass nur eine Instanz läuft.
 
Unter FreeBSD (und Linuxen die bsdtar statt gtar nutzen) kann auch einfach tar(1) ISOs extrahieren:
Code:
# Kippt den Inhalt von image.iso ins aktuelle Verzeichnis
tar xvf /pfad/zum/image.iso
 
Der neue DSBMD ist da! Damit lassen sich md-Geräte einfach per DSBMC detachen. Um md-Geräte für den Zugriff auf ein Image zu erzeugen, kann der aktuelle DSBMC-Code wie folgt getestet werden:

Code:
# pkg delete dsbmc
# fetch https://github.com/mrclksr/DSBMC/archive/master.zip
# unzip master.zip && cd DSBMC-master && make GTKVER=3.0 install

Sollte noch eine alte Instanz von DSBMC laufen, so sollte diese beendet werden.

Man kann nun entweder an der Kommandozeile dsbmc /pfad/zu/einem/image ausführen, oder einfach den bevorzugten Dateimanager bitten, ein Image mit DSBMC zu öffnen. DSBMC stellt sicher, dass nur eine Instanz läuft.
Das hört sich gut an.
Ich bin derzeit aber im Update-Stau und hänge zu weit zurück, um das schnell mal zu testen. Bin aber natürlich ganz begierig darauf...

Vielen Dank schon mal.
 
DSBMC stellt sicher, dass nur eine Instanz läuft.
Habe es soeben getestet und es funktioniert, wie du das beschrieben hast. Dafür schon mal Dank.
Aber: warum nur eine Instanz?
Es ist bei mir so, dass ich durchaus auch mehrere Isos nebeneinander betrachten und vergleichen will.

In meinem Test wird das md-Gerät erfolgreich angelegt und kann dann mit Mausklick eingebunden werden. Es kann auch wieder ausgehangen werden, aber das md-Gerät wird anschließend nicht zerstört und ich habe auch keine entsprechende Möglichkeit im Drop-Down-Menü. Das musste ich dann wieder manuell machen.
 
Aber: warum nur eine Instanz?
Weil Du sonst mehrere DSBMC-Fenster hast, die die selbe Information anzeigen.

Es ist bei mir so, dass ich durchaus auch mehrere Isos nebeneinander betrachten und vergleichen will.

Du kannst so viele Images gleichzeitig öffnen, wie Du willst. Sie (die ensprechenden Geräte) werden eben nur in einem Fenster geöffnet.

aber das md-Gerät wird anschließend nicht zerstört und ich habe auch keine entsprechende Möglichkeit im Drop-Down-Menü. Das musste ich dann wieder manuell machen.
Wenn Du dsbmd-1.4 laufen hast, kannst Du im Kontextmenü von DSBMC auf ein md-Gerät gehen und auf eject/auswerfen klicken, dann wird es zerstört. Das sind getrennte Funktionen, da man vielleicht nicht in jedem Fall möchte, dass das md-Gerät nach dem Aushängen zerstört wird.
 
Weil Du sonst mehrere DSBMC-Fenster hast, die die selbe Information anzeigen.



Du kannst so viele Images gleichzeitig öffnen, wie Du willst. Sie (die ensprechenden Geräte) werden eben nur in einem Fenster geöffnet.


Wenn Du dsbmd-1.4 laufen hast, kannst Du im Kontextmenü von DSBMC auf ein md-Gerät gehen und auf eject/auswerfen klicken, dann wird es zerstört. Das sind getrennte Funktionen, da man vielleicht nicht in jedem Fall möchte, dass das md-Gerät nach dem Aushängen zerstört wird.
Dann war es das, denn ich hatte dsbmd-1.3 (aus quarterly).

Ich will auch nicht auf head wechseln. Nun habe ich mal probiert, dsbmd neu aus den Ports zu bauen und das ist auch gelaufen, brachte mir allerdings (vermutlich auch, weil ich alle Optionen gesetzt hatte) einen unerwarteten Wust an neuer SW. Ich glaube, dass ich auch das nicht haben möchte, muss mir aber alles nochmal ansehen.
Jedenfalls funktioniert bei mir derzeit dsbmd/dsbmc gar nicht. Es startet zwar alles, scheitert aber an den kleinsten Aufgaben. Vielleicht sollte ich mal einen Neustart wagen, aber ich nutze gerade auch mal wieder den PC zum Arbeiten und nicht zum Testen. Sobald es möglich ist, teste ich weiter und melde mich wieder.
 
Moin !

Irgendwie ......

[bluescreen@fatcat ~/downloads]$ pkg info | grep dsbmd
dsbmd-1.4 Media mounting daemon
[bluescreen@fatcat ~/downloads]$


[bluescreen@fatcat ~/downloads]$ dsbmc FreeBSD-12.0-ALPHA1-amd64-20180810-r337557-bootonly.iso
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.

bzw.

[bluescreen@fatcat ~/downloads]$ dsbmc FreeBSD-12.0-ALPHA1-amd64-20180810-r337557-mini-memstick.img
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.


........Fehlermeldung siehe Anhang .


Hab ich irgendwas nicht richtig verstanden ?

...

:ugly:
 

Anhänge

  • error.png
    error.png
    10,6 KB · Aufrufe: 368
Hi !

Habe mal die git-version installiert !

Laufwerke einhängen funzt .

Bei .iso und .img habe ich noch Probleme mit
den Berechtigungen ! (Als root alles OK)

[bluescreen@fatcat ~/downloads]$ dsbmc FreeBSD-12.0-ALPHA1-amd64-20180810-r337557-bootonly.iso
mdconfig: open(/dev/mdctl): Permission denied
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
[bluescreen@fatcat ~/downloads]$


:rolleyes:
 
könntest Du das etwas erläutern?
derzeit habe ich nur wenige Minuten und eben nochmal probiert und sehe, dass das NTFS meiner Platte von Gestern beschädigt ist. Das ist eine neue externe Platte, auf die ich eben einige Dateien ausgelagert hatte. Es ist also gar nicht DSBMD/DSBMC "defekt", sondern zufällig diese neue Platte eben abgeraucht.
CDs und FAT-Sticks gingen eben und auch eine andere NTFS-Platte funktionierte.
Mehr Zeit hatte ich nun nicht.
 
Update !

In /etc/devfs.conf :

perm mdctl 0660
own mdctl root:operator

Danke für den Hinweis. Ich überlege, ob es nicht besser wäre, das Anlegen des md-Geräts an dsbmd zu delegieren, wodurch die Notwendigkeit, Änderungen an der Systemkonfiguration vorzunehmen, entfallen würde.


derzeit habe ich nur wenige Minuten und eben nochmal probiert und sehe, dass das NTFS meiner Platte von Gestern beschädigt ist. Das ist eine neue externe Platte, auf die ich eben einige Dateien ausgelagert hatte. Es ist also gar nicht DSBMD/DSBMC "defekt", sondern zufällig diese neue Platte eben abgeraucht.
CDs und FAT-Sticks gingen eben und auch eine andere NTFS-Platte funktionierte.
Mehr Zeit hatte ich nun nicht.
Danke für die Rückmeldung. Das beruhigt mich, ist für Dich aber ärgerlich.
 
Das beruhigt mich, ist für Dich aber ärgerlich.
Als ich nun nochmal nachgesehen habe, bekam ich den Eindruck besoffen oder sonstwie meinen Halluzinationen verfallen gewesen zu sein.
Die "defekte" Platte zeigte in einem Windows gar keine Fehler beim chkdsk und ich konnte sie anstandslos einbinden und auslesen.
Zurück im FreeBSD genau das Gleiche: sie funktionierte auf Anhieb mit DSBMD/DSBMC.
Gottlob, möchte ich da sagen, dass ich noch die Fehlermeldung meines manuellen Mountversuchs in der Konsole sehe, sonst hätte ich ernsthafte Zweifel an mir selbst bekommen müssen:
Code:
$MFTMirr does not match $MFT (record 5).
Failed to mount '/dev/da0s1': Input/output error
NTFS is either inconsistent, or there is a hardware fault, or it's a
SoftRAID/FakeRAID hardware. In the first case run chkdsk /f on Windows
then reboot into Windows twice. The usage of the /f parameter is very
important! If the device is a SoftRAID/FakeRAID then first activate
it and mount a different device under the /dev/mapper/ directory, (e.g.
/dev/mapper/nvidia_eahaabcc1). Please see the 'dmraid' documentation
for more details.
Da hat also definitiv etwas gehangen und DSBMC/DSBMD ist es nicht gewesen!

Ich habe nun dsbmd-1.4 aus den Ports und dsbmc vom Github (Post #402) und weil ich als User ja eh mit md-Geräten umgehen wollte, in meiner /etc/devfs.rules schon vorher eine entsprechende Regel drin:
Code:
add path 'md*' mode 0660 group operator         # virtual FSs, e.g. for .img, .iso
Damit ging nun alles, was ich mit DSBMD/DSBMC bisher getestet habe.

Vielen Dank und Entschuldigung für den unnötigen Aufreger.
 
@pit234a,

freut mich, dass Deine Platte doch nicht den Geist aufgegeben hat, und alles so funktioniert wie gewünscht.

Ich habe [...] in meiner /etc/devfs.rules schon vorher eine entsprechende Regel drin:
Code:
add path 'md*' mode 0660 group operator         # virtual FSs, e.g. for .img, .iso
So habe ich es auch gehandhabt. Ich werde einen entsprechenden Hinweis in die pkg-message packen, oder besser in einem README festhalten. Wobei ich die Variante von @bluescreen vorziehen würde, weil so nur ein Eintrag nötig ist. Denn bei einem User, der devfs.rules (noch) nicht benutzt (hat), müsste noch auf den Eintrag in /etc/rc.conf hingewiesen werden.

Vielen Dank und Entschuldigung für den unnötigen Aufreger.
Kein Problem. Danke für die Inspiration.
 
Die Implementierung zur Erzeugung des md-Geräts ist jetzt in den Code von DSBMD-1.5 gewandert. Dadurch müssen keine Änderungen an /etc/devfs.conf oder /etc/devfs.rules vorgenommen werden. Diese Protokollerweiterung kann mit DSBMC-0.5 genutzt werden.
 
Die Implementierung zur Erzeugung des md-Geräts ist jetzt in den Code von DSBMD-1.5 gewandert. Dadurch müssen keine Änderungen an /etc/devfs.conf oder /etc/devfs.rules vorgenommen werden. Diese Protokollerweiterung kann mit DSBMC-0.5 genutzt werden.
Hallo Marcel,

danke für die Info, mir ist beim Bauen vom Userland eines frisch installieren FreeBSD 11.2 mit portmaster schon gestern aufgefallen, dass dsbmd auf 1.5 hochgezogen worden ist.
dsbmc-cli ist ja auch ein schönes Werkzeug, das habe ich letztens richtig schätzen gelernt, als ich noch ohne X bequem eine NTFS formatierte USB-Platte rw einhängen wollte.

Manchmal wirft dsbmc-cli beim Absetzen eines Befehls ein 'unknown type', allerdings funktioniert es.

Kann mir das später noch einmal genauer anschauen, falls Du daran Interesse hast.
 
Hallo Holger,

Manchmal wirft dsbmc-cli beim Absetzen eines Befehls ein 'unknown type', allerdings funktioniert es.

Kann mir das später noch einmal genauer anschauen, falls Du daran Interesse hast.

das interessiert mich auf jeden Fall. Nur kommt der String 'unknown type' weder in dsbmc-cli noch in libdsbmc vor. War es vielleicht 'Unknown filesystem'?
 
Hallo Marcel,

heute im Laufe des Abends schaue ich, Dir brauchbare Info zu liefern, bin zur Zeit unterwegs.
 
Hier kommt der Output:
Code:
[holger@biber ~]$ dsbmc-cli -a
[holger@biber ~]$ mount|grep /media
/dev/fuse on /media/Elements (fusefs, local, nosuid, synchronous, mounted by holger)
/dev/fuse on /media/820c34bc-1c2e-471a-bf8b-bad171a62f8c (fusefs, local, nosuid, synchronous, mounted by holger)
/dev/fuse on /media/dcef4ed2-d9ce-4736-b4b2-5a8a9c2de524 (fusefs, local, nosuid, synchronous, mounted by holger)

Und dann beim Entbinden von /media/Elements (meine USB-Platte):
Code:
[holger@biber ~]$ dsbmc-cli -u /media/Elements
dsbmc-cli: Unknown keyword 'type'
dsbmc-cli: Unknown keyword 'type'
[holger@biber ~]$

Die Platte wird allerdings sauber ausgehängt.
 
Danke, Holger.

Könntest Du bitte noch die Ausgabe von dsbmc-cli -l posten?
Hallo Marcel,

entschuldige, bin zur zeit beruflich sehr eingespannt, so dass unter der Woche abends mein PC oft aus bleibt. Hier kommt die gewünschte Info:
Code:
[holger@biber ~]$ dsbmc-cli -l
dev=/dev/da0p1:volid=Elements:fsname=ntfs:type=usbdisk
dev=/dev/ada1p3:volid=820c34bc-1c2e-471a-bf8b-bad171a62f8c:fsname=ext2fs:type=hdd
dev=/dev/ada1p2:volid=dcef4ed2-d9ce-4736-b4b2-5a8a9c2de524:fsname=ext2fs:type=hdd
dev=/dev/ada1p1:volid=148f257e-03dd-4510-841f-e9a9d221fae3:fsname=ext2fs:type=hdd
[holger@biber ~]$

Und wenn ich gemountet habe, und den Befehl wieder ausführe, kommt:
Code:
[holger@biber ~]$ dsbmc-cli -l
dsbmc-cli: Unknown keyword 'type'
dsbmc-cli: Unknown keyword 'type'
dsbmc-cli: Unknown keyword 'type'
dev=/dev/da0p1:volid=Elements:fsname=ntfs:mntpt=/media/Elements:type=usbdisk
dev=/dev/ada1p3:volid=820c34bc-1c2e-471a-bf8b-bad171a62f8c:fsname=ext2fs:mntpt=/media/820c34bc-1c2e-471a-bf8b-bad171a62f8c:type=
dev=/dev/ada1p2:volid=dcef4ed2-d9ce-4736-b4b2-5a8a9c2de524:fsname=ext2fs:mntpt=/media/dcef4ed2-d9ce-4736-b4b2-5a8a9c2de524:type=
dev=/dev/ada1p1:volid=148f257e-03dd-4510-841f-e9a9d221fae3:fsname=ext2fs:mntpt=/media/148f257e-03dd-4510-841f-e9a9d221fae3:type=
[holger@biber ~]$

Vielleicht hat es mit den drei Linuxpartitionen zu tun, jedenfalls scheint es harmlos zu sein und keine Auswirkungen auf das Arbeiten mit dem ntfs-USB-Device zu haben.

Viele Grüße und ein schönes Wochenende
Holger
 
In einem anderen Beitrag kam wie auch hier schon zur Sprache, dass es Probleme beim Brennen von optischen Medien gibt, wenn DSBMD läuft, was mir keine Ruhe ließ, denn schließlich darf das auch nicht sein. Das gleiche Problem gab es einst mit hald, der, wie DSBMD, optische Laufwerke pollt, um das Vorhandensein von Datenträgern zu prüfen. Dies führt jedoch dazu, dass Brennvorgänge gestört werden können. Brennprogramme, die hald nutzen, veranlassen diesen einfach, das Pollen am gewünschten Laufwerk abzustellen, solange der Brennvorgang läuft. Da DSBMD ein "Außenseiter" ist, musste ich mir etwas anderes überlegen, das unabhängig davon funktioniert, ob eine Software DSBMD benutzt oder nicht. Glücklicherweise stellte sich raus, dass schon vor längerer Zeit eine Änderung am Kernel vorgenommen worden ist, die dafür sorgt, dass CDs/DVDs und USB-Kartenleser gepollt werden. Die Ergebnisse kann man aus den devd-Events lesen, indem man sich die SCSI-Codes anschaut.
DSBMD pollt jetzt nur noch für einen kurzen Augenblick, wenn in einem Laufwerk kein Medium eingelegt ist, aber laut devd sich dieser Zustand gerade ändert. Sobald das Medium lesbar ist, hört das Polling auf. Der Code läuft bei mir bisher ohne Probleme. Zudem habe ich k3b installiert, hald gestartet und erfolgreich eine DVD gebrannt. Ich würde mich über weitere Tests und Berichte freuen.

Code:
# fetch fetch -o dsbcfg.zip https://github.com/mrclksr/dsbcfg/archive/master.zip && unzip dsbcfg.zip && mv dsbcfg-master dsbcfg
# fetch https://github.com/mrclksr/DSBMD/archive/master.zip && unzip master.zip && cd DSBMD-master && make
# service dsbmd stop
# ./dsbmd -f
 
Zurück
Oben