這有點間接,但可以使用mount
orlosetup
的“offset”參數來安裝帶有磁碟映像的分區。
我希望能夠使用熔斷器在使用者空間中執行相同的操作
使用案例
我的用例是在自動建置伺服器上建立磁碟映像,其中建置作業不允許具有 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
解釋
基本概念是,熔斷器可用於將完整磁碟映像就地分離成指向其分割區的檔案。 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
答案2
有掛載實用程式是標準安裝程式的包裝器,允許普通使用者在沒有匹配的 /etc/fstab 條目的情況下安裝可移動裝置。
您唯一需要允許使用者使用它的是將使用者新增至plugdev
群組。
答案3
losetup
圖片kpartx -av
由此產生的環回設備/dev/mapper/...
像使用實體磁碟一樣使用產生的分割區
您可以使用可執行的自動掛載對應來完成所有這些任務。
Achdir
可以觸發以上所有動作。或使用 sudo 作為安裝/刪除腳本。或者...
答案4
libguestfs 現在有一個命令guestmount
可以啟動虛擬機,以允許您在使用者空間中掛載任意分割區。