Suche CLI Programm, dass es erlaubt ohne root Rechte Festplattenimages mit einem offset in einem Schritt zu mounten

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Cordess
Beiträge: 422
Registriert: 09.01.2006 00:37:22

Suche CLI Programm, dass es erlaubt ohne root Rechte Festplattenimages mit einem offset in einem Schritt zu mounten

Beitrag von Cordess » 28.01.2022 23:10:42

Ich habe leider noch keine zufriedenstellende Lösung gefunden um von einem Terminal aus ohne Root Rechte ein Festplattenimage in einem Schritt zu mounten und wenn man fertig ist, in einem Schritt wieder unzumounten.

Bei Diskettenimages und ISO Dateien geht das mit dem Progamm udevil, aber udevil kann nicht mit Offsets umgehen.

mounten:

Code: Alles auswählen

udevil mount FD13BOOT.img 
unmounten:

Code: Alles auswählen

udevil unmount FD13BOOT.img
Festpattenimages benötigen aber ein Offset, da eine Partition dort in der Regel erst nach dem MBR beginnt. Zumindest ist das so mit Festplattenimages die für virtuelle Maschinen, wie bspw. QEMU erstellt wurden.

Die beste Lösung, die ich bis jetzt gefunden habe und keine root Rechte erfordert, ist udisksctl, dafür braucht man aber für jeden Prozess (mounten bzw. unmounten) zwei Schritte:

Für das mounten muss ich zuerst ein loopdevice erstellen (-f steht für file, -o für Offset)

Code: Alles auswählen

udisksctl loop-setup -o 32256 -f hd.img
und erst dann kann ich es mounten (Anmerkung: die vorherige Ausgabe zeigt an, welches loop device man verwenden muss):

Code: Alles auswählen

udisksctl mount -b /dev/loop0
Der Einhängepunkt ist dann in der Regel unter /media/USERNAME/imagename wenn nicht anders angegeben.

Für den umgekehrten Weg muss ich folgendes eingeben:
Unmounten:

Code: Alles auswählen

udiskctrl unmount -b /dev/loop0
Loop-Device schließen:

Code: Alles auswählen

udiskctrl loop-delete -b /dev/loop0
Das ist leider viel zu umständlich, wenn man mit vielen Images umgehen möchte.

Gibt es da keine sichere Möglichkeit bzw. ein Tool das folgendes als nicht-root erlaubt (XXX steht dafür für ein gesuchtes Tool, dass das können soll):

Mounten:

Code: Alles auswählen

XXX mount -o 32256 hd.img
Unmounten:

Code: Alles auswählen

XXX umount /media/USERNAME/hd.img
Ich verstehe auch nicht, warum das mit udisksctl so umständlich sein muss.

Momentan überlege ich mir ein Skript zum mounten und unmounten zu schreiben, dass udisksctl dann entsprechend wie oben aufruft, aber vielleicht gibt es da eine bessere Lösung und es kann doch nicht Sinn der Sache sein, dass sich dafür jeder ein Skript schreiben soll.

Tja und der normale mount Befehl braucht root Rechte und es ist bei dem höchst unsicher, wenn man den so einrichtet, dass man ihn mit sudo nutzen könnte. Also auch keine Lösung.

Und warum mein /dev bereits loop Geräte eingerichtet hat:

Code: Alles auswählen

ls /dev/loop*
/dev/loop0  /dev/loop1  /dev/loop2  /dev/loop3  /dev/loop4  /dev/loop5  /dev/loop6  /dev/loop7  /dev/loop-control
und obiger

Code: Alles auswählen

udisksctl loop-setup -o 32256 -f hd.img
Befehl dann /dev/loop0 nimmt, weiß ich leider auch nicht.
Es scheint den /dev/loop0 Eintrag jedenfalls zu überlagern.

Cordess
Beiträge: 422
Registriert: 09.01.2006 00:37:22

Re: Suche CLI Programm, dass es erlaubt ohne root Rechte Festplattenimages mit einem offset in einem Schritt zu mounten

Beitrag von Cordess » 29.01.2022 01:15:16

Okay, ich denke das Problem hat sich erledigt.

Ich habe jetzt guestmount aus dem Paket libguestfs-tools gefunden.
Das tut im Prinzip genau das was ich brauche und sogar noch etwas mehr, es kann bspw. auch qcow2 Festplattenimages mounten und das Auswählen der Partition geht ohne Angabe eines Offsets, in dem man einfach /dev/sdaX schreibt und X durch die entsprechende Partitionsnummer ersetzt.

Bei Disketten und ISO Images lässt man das X weg und schreibt nur /dev/sda

Benutzeravatar
Tintom
Moderator
Beiträge: 3064
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: Suche CLI Programm, dass es erlaubt ohne root Rechte Festplattenimages mit einem offset in einem Schritt zu mounten

Beitrag von Tintom » 29.01.2022 09:39:08

Danke für dieses Thema, ich hatte gerade exakt das gleiche Problem. Die Doku zu dem Paket ist ziemlich umfangreich und für meinen Geschmack etwas unübersichtlich, aber es klappt nach ein bisschen ausprobieren. Der zentrale Befehl in dem Paket ist guestmount, welches auf fuse zurückgreift. Der User sollte also in der Gruppe fuse sein. Anschließend reicht (bei mir) ein
guestmount -a <Imagedatei> -i --ro <Mountverzeichnis>
um auf das Dateisystem in einem qcow2-Image lesend zugreifen zu können.

Cordess
Beiträge: 422
Registriert: 09.01.2006 00:37:22

Re: Suche CLI Programm, dass es erlaubt ohne root Rechte Festplattenimages mit einem offset in einem Schritt zu mounten

Beitrag von Cordess » 29.01.2022 15:35:22

Der Parameter -i scheint nur bei bei qcow2 und vergleichbaren Images zu funktionieren.

Bei Diskettenimages, ISO Images und RAW Festplattenimages muss ich, wie bereits erwähnt, den Parameter -m gefolgt von einer Deviceangabe /dev/sdaX verwenden und X ist dann die Partitonsnummer.

Bei mir funktioniert es allerdings, ohne, dass der Nutzer in der Gruppe fuse ist.
Mein Nutzer ist in den Gruppen.

Code: Alles auswählen

cdrom floppy audio dip video plugdev netdev bluetooth lpadmin scanner libvirt

Antworten