如何使用熔斷器掛載完整磁碟映像(即帶有分割表的映像)中的分割區?

如何使用熔斷器掛載完整磁碟映像(即帶有分割表的映像)中的分割區?

這有點間接,但可以使用mountorlosetup的“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

  1. losetup圖片
  2. kpartx -av由此產生的環回設備
  3. /dev/mapper/...像使用實體磁碟一樣使用產生的分割區

您可以使用可執行的自動掛載對應來完成所有這些任務。

Achdir可以觸發以上所有動作。或使用 sudo 作為安裝/刪除腳本。或者...

答案4

libguestfs 現在有一個命令guestmount可以啟動虛擬機,以允許您在使用者空間中掛載任意分割區。

相關內容