
'ed ディスク イメージ ファイルを持っていますdd
。
kpartx
このディスク イメージ ファイルからデバイス マッパー デバイスを作成するようなツールを使用できます。
しかし、 などのパーティション分割プログラムではgparted
、fdisk
マップされたデバイスがリストされません。
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 とシンボリック リンクを使用しない代替ワークフローを次に示します (そのため、別の回答として投稿されています)。
sudo losetup --find --show ./somedrive.img
ファイル全体にループ デバイスを接続します
./somedrive.img
。は、空きデバイスを自動的に探すよう--find
に要求します。は、使用されたデバイスを印刷します。たとえば、選択されたデバイスが であるとします。losetup
--show
/dev/loop5
sudo partx --update /dev/loop5
Linux カーネルに内部のパーティションを再スキャンするように指示します
/dev/loop5
。成功した場合は何も出力されないので、ls -al /dev/loop5*
何が表示されるか確認してください。必要なことは何でもしてください。
sudo gparted /dev/loop5
この時点で、 を適切に操作できるはずです
/dev/loop5p*
。sudo partx --delete /dev/loop5
パーティション マッピングを解放します。
sudo losetup --detach /dev/loop5
最後に、ループデバイスを解放します。
追伸バージョン v2.21 以降のパッケージの Proud Owner™ であればutil-linux
、ループ デバイスの接続とパーティションの再スキャンの両方を 1 回で要求できます。sudo losetup --find --show --partscan ./somedrive.img
また、gparted のようなユーティリティの問題はまったく発生しないはずです。