Это немного косвенно, но возможно смонтировать раздел с образом диска, используя параметр «offset» команды mount
or .losetup
Я хочу использовать fuse, чтобы сделать то же самое в пользовательском пространстве.
Вариант использования
Мой вариант использования — создание образов дисков на сервере автоматической сборки, где заданию сборки не разрешается иметь права root, и серверу не должна требоваться специальная настройка для определенных заданий сборки.
решение1
Это можно сделать с помощью предохранителя, но, вероятно, будет чище с использованием специальных инструментов.
Решение
С помощью инструментов apt-get-able можно сделать следующее:
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
Объяснение
Основная идея заключается в том, что Fuse можно использовать для разделения полного образа диска на файлы, указывающие на его разделы. vdfuse делает это, но это инструмент VirtualBox, и для его работы требуется файл VDI или VMDK. xmount использует Fuse, чтобы сделать необработанный образ диска похожим на файл VDI.
Наконец, как только файл раздела станет доступен через vdfuse, его можно будет смонтировать с помощью инструмента ext2/3/4 fuseext2.
Это некрасиво, но полностью работает в пользовательском пространстве.
Обновлять
vdfuse должен уметь монтировать RAW-образ без помощи xmount, но есть ошибка, которая игнорирует опцию RAW.
Я нашел и исправил ошибку с помощью патча здесь:
https://bugs.launchpad.net/ubuntu/+source/virtualbox-ose/+bug/1019075
решение2
ЕстьpmountУтилита, представляющая собой оболочку вокруг стандартной программы монтирования, которая позволяет обычным пользователям монтировать съемные устройства без соответствующей записи в /etc/fstab.
Единственное, что вам нужно сделать, чтобы разрешить пользователю использовать его, — это добавить пользователя в plugdev
группу.
решение3
losetup
Изображениеkpartx -av
полученное петлевое устройство- Используйте полученные разделы
/dev/mapper/...
так же, как и физический диск.
Все эти задачи можно выполнить с помощью исполняемого файла automount-map.
A chdir
может вызвать все вышеперечисленные действия. Или используйте sudo для сценария установки/удаления. Или...
решение4
В libguestfs теперь есть команда guestmount
, которая запускает виртуальную машину, позволяя монтировать произвольные разделы в пространстве пользователя.