
これはやや間接的ですが、「offset」パラメータを使用してディスクイメージとしてパーティションをマウントできますmount
。losetup
サーキットブレーカを使用してユーザースペースで同じことを実行できるようにしたいです。
ユースケース
マイユースケースは、ビルドジョブが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/...
結果パーティションを物理ディスクのように使用する
実行可能な自動マウントマップを使用して、これらすべての操作を実行できます。
Aはchdir
上記のすべてのタスクを実行できます。または、sudoをインストール/削除スクリプトとして使用してください。または...
答え4
guestmount
libguestfsには仮想マシンを起動するコマンドがあり、ユーザースペースに任意のパーティションをマウントできるようになりました。