パーティショニング ツールに kpartx で作成されたデバイスを認識させる方法はありますか?

パーティショニング ツールに kpartx で作成されたデバイスを認識させる方法はありますか?

'ed ディスク イメージ ファイルを持っていますdd

kpartxこのディスク イメージ ファイルからデバイス マッパー デバイスを作成するようなツールを使用できます。

しかし、 などのパーティション分割プログラムではgpartedfdiskマップされたデバイスがリストされません。

gpartedマップされたデバイスとその構成パーティション、およびこれらのパーティションに関する詳細情報を一覧表示する方法 (または同等のグラフィカル プログラムまたはコンソール プログラム) はありますか?

PS: これは、これらのツールに機能が欠けているということでしょうか、それとも、この機能を提供することが根本的に不可能ということでしょうか?

答え1

それは可能ですが、意味があるかどうかはわかりません。

パーティション ツールは、関連するディスク セクターからパーティション テーブルを直接読み取るため、ディスク全体のデバイスのみを考慮します。パーティションごとのデバイスが存在する必要はありません。つまり、 で作成された基本的なループ デバイスでlosetup十分であり、ツールがそれを認識しない場合は、手動で実行するfdisk /dev/loop0か、何かを実行できます。

(もしディスク全体デバイスが にある場合/dev/mapper/、それらのツールにそれを認識させることは難しくありませんが、通常はソース コードを数行編集する必要があります... 実行する方fdisk /dev/mapper/blehが簡単な場合が多いです。


また、最近のカーネルではlosetup --partscanこれがサポートされているため、デバイス マッパーを使用する必要がなくなることに注意してください。

答え2

一時的なハードリンクを作成するだけ実行後kpartx -a ...

sudo ln /dev/loop0 /dev/mapper/loop0

そして、通常どおり gparted を実行します (正常に動作します/dev/mapper/loop0p*)。

sudo gparted /dev/mapper/loop0

リンクが不要になったら忘れずに削除してください。

答え3

3.5年経って、私はそれに対する別の解決策を見つけました:)

kpartx の使用に関心がなく、通常のファイルとして表されるディスク イメージ上のパーティションを操作することが目的であると私が正しく示唆している場合、kpartx とシンボリック リンクを使用しない代替ワークフローを次に示します (そのため、別の回答として投稿されています)。

  1. sudo losetup --find --show ./somedrive.img

    ファイル全体にループ デバイスを接続します./somedrive.img。は、空きデバイスを自動的に探すよう--findに要求します。は、使用されたデバイスを印刷します。たとえば、選択されたデバイスが であるとします。losetup--show/dev/loop5

  2. sudo partx --update /dev/loop5

    Linux カーネルに内部のパーティションを再スキャンするように指示します/dev/loop5。成功した場合は何も出力されないので、ls -al /dev/loop5*何が表示されるか確認してください。

  3. 必要なことは何でもしてください。sudo gparted /dev/loop5

    この時点で、 を適切に操作できるはずです/dev/loop5p*

  4. sudo partx --delete /dev/loop5

    パーティション マッピングを解放します。

  5. sudo losetup --detach /dev/loop5

    最後に、ループデバイスを解放します。

追伸バージョン v2.21 以降のパッケージの Proud Owner™ であればutil-linux、ループ デバイスの接続とパーティションの再スキャンの両方を 1 回で要求できます。sudo losetup --find --show --partscan ./somedrive.imgまた、gparted のようなユーティリティの問題はまったく発生しないはずです。

関連情報