パーティションを1つのディスクイメージに結合する


13

画像が3つあります。各イメージは、パーティション(ext3ファイルシステムを使用してフォーマットされたこれらのパーティション)を(ddによって)クローニングすることによって行われました。1つのパーティションはGRUB1(CentOS)でブート可能です

それらを1つのディスクイメージに結合するにはどうすればよいですか?

(ddコマンドを使用してパーティションイメージをコピーできますが、パーティションテーブルを作成してブートを機能させる方法がわかりません)。


1
あなたは本当に何をしようとしているのですか?稼働中のシステムを新しいハードウェアなどに複製しますか?単一システム上の異なるマウントポイントからの3つのパーティションでしたか?
マイクレンフロ

目標は何ですか?ループバックデバイスを使用してファイルシステムイメージを操作できますが、パーティション/ファイルシステムイメージではなくディスクイメージを変更する方がはるかに複雑です。
マイケルローマン

回答:


15

ディスクイメージを作成します。次のコマンドは、10G スパースイメージを作成します。

# dd if=/dev/zero of=mydisk.img bs=1 count=0 seek=10G
0+0 records in
0+0 records out
0 bytes (0 B) copied, 1.6554e-05 s, 0.0 kB/s
# ls -lh mydisk.img
-rw-r--r--. 1 root root 10G Jun 17 15:27 mydisk.img

fdiskでイメージをパーティション分割します。

# fdisk mydisk.img

少なくともイメージ化したパーティションと同じ大きさのパーティションを作成してください!この例では、次のレイアウトを作成しました。

# fdisk -l mydisk.img
Disk mydisk.img: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x5519250f

     Device Boot      Start         End      Blocks   Id  System
mydisk.img1            2048     2099199     1048576   83  Linux
mydisk.img2         2099200     4196351     1048576   83  Linux

kpartxパーティションのそれぞれに対応するデバイスを作成するために使用します。

# kpartx -av mydisk.img
add map loop0p1 (253:3): 0 2097152 linear /dev/loop0 2048
add map loop0p2 (253:4): 0 2097152 linear /dev/loop0 2099200

これにより、以下のエントリが作成されます/dev/mapper

# ls -l /dev/mapper
lrwxrwxrwx. 1 root root       7 Jun 17 15:33 loop0p1 -> ../dm-3
lrwxrwxrwx. 1 root root       7 Jun 17 15:33 loop0p2 -> ../dm-4

これで、パーティションイメージをパーティションにコピーできます。

# dd if=image_of_partition_1.img of=/dev/mapper/loop0p1 bs=1M
# dd if=image_of_partition_2.img of=/dev/mapper/loop0p2 bs=1M

次に、デバイスマッピングを削除します。

# kpartx -dv mydisk.img
del devmap : loop0p2
del devmap : loop0p1
loop deleted : /dev/loop0

そして、あなたはすべて設定されています!

ノート

  • また、を使用する代わりにおよび(ディスクイメージファイルの適切なオフセットで書き込みを開始ddする)seekパラメーターを使用して同じことを達成することもできkpartxますが、使用する方kpartxがエラーが発生しにくいと思います。

  • これにより、起動可能なイメージは作成されません。必要な場合は、ブートローダーもインストールする必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.