完全なハードドライブイメージのパーティションのサイズを変更する方法


8

私は使用してハードドライブの完全なイメージを撮りました:

dd if=/dev/sda of=/home/user/harddriveimg bs=4M

適切にマウントした後、パーティション内のパーティションのサイズを変更できるように思えます。

別れのコマンドラインに慣れていないので、試してみました:

gparted /home/user/harddriveimg

これはパーティションテーブルをロードしましたが、パーティション自体を見つけることができませんでした(例:harddriveimg0)。

ディスクに書き戻すことなく、このような画像ファイルを変更することは可能ですか?端末コマンドのみを使用するソリューションに完全に満足します。


1
ディスクイメージファイルから個々のパーティションにブロックデバイスとしてアクセスする場合(たとえば、マウントするため)、kpartxを調べます。
Celada

@セラダ、それは良い解決策のように見えます!kpartxはpartxのラッパーにすぎませんか?
タイムスクエア

partxカーネルベースのパーティション検出マジックをkpartx使用するのに対し、カーネルでブロックデバイスを作成するための汎用的でより強力なメカニズムであるデバイスマッパーを使用するため、これは実際のディスクでのみ機能すると思います。
Celada

@Celadaは、kpartxパーティションテーブルの検出にカーネルを使用しませんが、カーネルにそれらを通知するため、ループデバイスなどのパーティショニング可能なデバイスが必要です。
psusi

回答:


3

ループバックデバイスをファイルに関連付ける必要があります。

sudo losetup /dev/loop0 /home/user/harddriveimg

次に、その上でgpartedを実行します。


これは、残念ながら機能しません。Gpartedは、パーティションテーブルにリストされている最初のパーティションの/ dev / loop0p1をまだ探しています。
タイムスクエア

@ Timesquare、libpartedが壊れているようです。使用しているバージョンとディストリビューションは何ですか?
psusi

私のlibpartedバージョンはArchlinuxの2.0.0です。問題は、Gpartedが特定のパーティションレコードに関連付けられているブロックデバイスを選択する方法にあると考えています。(Gpartedはバージョン0.14.1です)
Timesquare

@Timesquare、いいえ、それはパーティションの正しいブロックデバイスです。parted 3.0以降が必要です。
psusi 2012

あなたが正しく言っていることが理解できれば、問題は別の場所にあります。提案どおりlosetupを使用した後、ブロックデバイス/ dev / loop0p1、/ dev / loop0p2 ...は存在しません。
Timesquare
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.