Linux
如何使用 fuse 在完整磁碟映像(即帶有分區表的映像)中掛載分區?
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