Linux

如何使用 fuse 在完整磁碟映像(即帶有分區表的映像)中掛載分區?

  • September 6, 2018

mount這有點間接,但可以使用orlosetup的“offset”參數掛載帶有磁碟映像的分區。

我希望能夠使用 fuse 在使用者空間中做同樣的事情

案例

我的案例是在自動建構伺服器上建構磁碟映像,其中建構作業不允許具有 root 權限,並且伺服器不需要為特定的建構作業進行自定義設置。

可以使用保險絲,但使用自定義工具可能會更清潔。

解決方案

使用 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 應該能夠在沒有 xmount 的幫助下掛載原始映像,但是有一個錯誤忽略了 RAW 選項。

我在這裡用更新檔追踪並修復了這個錯誤:

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

引用自:https://unix.stackexchange.com/questions/41872