如何使用保险丝在完整磁盘映像(即带有分区表的映像)中安装分区?

Cat*_*kul 5 linux filesystems mount fuse loop-device

这有点间接,但可以使用mountorlosetup的“偏移量”参数安装带有磁盘映像的分区。

我希望能够使用保险丝在用户空间中做同样的事情

用例

我的用例是在不允许构建作业具有 root 权限的自动构建服务器上构建磁盘映像,并且服务器不需要为特定构建作业进行自定义设置。

Cat*_*kul 3

可以使用保险丝来完成,但使用自定义工具可能会更干净。

解决方案

使用 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
Run Code Online (Sandbox Code Playgroud)

解释

基本思想是,熔断器可用于将完整磁盘映像就地分离成指向其分区的文件。vdfuse 可以做到这一点,但它是一个 VirtualBox 工具,需要 VDI 或 VMDK 文件才能工作。xmount 使用 fusion 使原始磁盘映像显示为 VDI 文件。

最后,一旦通过 vdfuse 提供了分区文件,就可以通过 ext2/3/4 工具 fusionext2 来安装它。

它很丑陋,但它完全可以在用户空间中工作。

更新

vdfuse 应该能够在没有 xmount 帮助的情况下挂载原始映像,但是存在一个忽略 RAW 选项的错误。

我在这里找到并修复了这个错误:

https://bugs.launchpad.net/ubuntu/+source/virtualbox-ose/+bug/1019075