Как смонтировать разделы в полный образ диска (т.е. образ с таблицей разделов) с помощью Fuse?

Как смонтировать разделы в полный образ диска (т.е. образ с таблицей разделов) с помощью Fuse?

Это немного косвенно, но возможно смонтировать раздел с образом диска, используя параметр «offset» команды mountor .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

  1. losetupИзображение
  2. kpartx -avполученное петлевое устройство
  3. Используйте полученные разделы /dev/mapper/...так же, как и физический диск.

Все эти задачи можно выполнить с помощью исполняемого файла automount-map.

A chdirможет вызвать все вышеперечисленные действия. Или используйте sudo для сценария установки/удаления. Или...

решение4

В libguestfs теперь есть команда guestmount, которая запускает виртуальную машину, позволяя монтировать произвольные разделы в пространстве пользователя.

Связанный контент