Es ist zwar etwas indirekt, aber es ist möglich, eine Partition mit einem Disk-Image zu mounten, indem der „Offset“-Parameter von mount
oder verwendet wird.losetup
Ich möchte Fuse verwenden können, um dasselbe im Benutzerbereich zu tun.
Anwendungsfall
Mein Anwendungsfall ist das Erstellen von Disk-Images auf einem Autobuild-Server, wobei der Build-Job keine Root-Berechtigungen haben darf und der Server für bestimmte Build-Jobs keine benutzerdefinierte Einrichtung benötigen sollte.
Antwort1
Dies ist mit einer Sicherung möglich, wäre aber mit Spezialwerkzeugen wahrscheinlich sauberer.
Lösung
Mit apt-get-able-Tools ist folgender Kludge möglich:
mkdir mnt
xmount --in dd --out vdi disk.img mnt
mkdir mnt2
vdfuse -f mnt/disk.vdi
mkdir mnt3
fuseext2 -o "rw" mnt2/Partition1 mnt3
Erläuterung
Die Grundidee besteht darin, dass mit Fuse ein vollständiges Disk-Image direkt an Ort und Stelle in Dateien aufgeteilt werden kann, die auf seine Partitionen verweisen. vdfuse tut dies, ist jedoch ein VirtualBox-Tool und erfordert zum Funktionieren eine VDI- oder VMDK-Datei. xmount verwendet Fuse, um ein rohes Disk-Image als VDI-Datei erscheinen zu lassen.
Sobald die Partitionsdatei schließlich über vdfuse verfügbar ist, kann sie über ein Ext2/3/4-Tool, fuseext2, gemountet werden.
Es ist hässlich, funktioniert aber vollständig im Benutzerbereich.
Aktualisieren
vdfuse sollte in der Lage sein, ein RAW-Image ohne die Hilfe von xmount zu mounten, aber es gibt einen Fehler, der die RAW-Option ignoriert.
Ich habe den Fehler aufgespürt und mit einem Patch hier behoben:
https://bugs.launchpad.net/ubuntu/+source/virtualbox-ose/+bug/1019075
Antwort2
Es gibtMengeDienstprogramm, das als Wrapper für das Standard-Mount-Programm fungiert und normalen Benutzern das Mounten von Wechseldatenträgern ohne entsprechenden /etc/fstab-Eintrag ermöglicht.
Um dem Benutzer die Verwendung zu gestatten, müssen Sie ihn lediglich zur plugdev
Gruppe hinzufügen.
Antwort3
losetup
das Bildkpartx -av
Das resultierende Loopback-Gerät- Verwenden Sie die resultierenden Partitionen
/dev/mapper/...
wie eine physische Festplatte.
Sie können alle diese Aufgaben mithilfe einer ausführbaren Automount-Map ausführen.
A chdir
könnte alle oben genannten Aktionen auslösen. Oder verwenden Sie sudo für ein Setup-/Entfernungsskript. Oder ...
Antwort4
libguestfs verfügt jetzt über einen Befehl guestmount
, der eine virtuelle Maschine startet, damit Sie beliebige Partitionen im Benutzerbereich mounten können.