生のQEMUイメージ(vda.raw)があり、サイズを変更し、データが埋め込まれた生のext3ファイルシステム(vdb.raw)を含むファイルのデータを使用して既存のパーティションを追加したいと思います。両方のファイルは次のようになります。
$ file vda.raw
vda.raw: x86 boot sector; partition 1: ID=0x83, active, starthead 0, startsector 16065, 20948760 sectors, code offset 0x63
$ file vdb.raw
vdb.raw: Linux rev 1.0 ext3 filesystem data, UUID=14555b9c-4837-4b43-a8e8-fe4e19194e88, volume name "ephemeral0" (large files)
vdb.rawの内容がvda.rawで新しいディスクパーティションとして表示される2つの組み合わせを使用して新しいイメージを作成する簡単な方法はありますか?私は避けたい:
- vda.raw サイズ変更
- vda.rawに新しいパーティションを作成します。
- vda.rawマウント
- vdb.raw マウント
- vdb.rawの内容をvda.rawにコピーします。
ddで接続し、イメージに新しいパーティションがあることを確認するためにパーティションテーブルを変更する方法はありますか?
答え1
確実な方法を試してみましたか? vdbをvdaに接続し、新しいパーティションを作成します。私はそれを試してみました、それはうまくいくようです。これは私がしたことです...
2つのファイルで始まります。
# ls -l vd*
-rw-r--r-- 1 root root 104857600 Feb 27 20:31 vda.raw
-rw-r--r-- 1 root root 104857600 Feb 27 20:31 vdb.raw
# file vd[ab].raw
vda.raw: x86 boot sector; partition 1: ID=0x83, starthead 32, startsector 2048, 202752 sectors, extended partition table (last)\011, code offset 0x0
vdb.raw: Linux rev 1.0 ext3 filesystem data, UUID=734fa0ee-0bc8-4428-a13c-3147c9c0866f
このファイルには、vda.raw
単一パーティション(ext3ファイルシステムを含む)を持つ標準パーティションマップが含まれています。
# fdisk -l vda.raw
Disk vda.raw: 104 MB, 104857600 bytes
191 heads, 50 sectors/track, 21 cylinders, total 204800 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: 0xad0a5dfe
Device Boot Start End Blocks Id System
vda.raw1 2048 204799 101376 83 Linux
vdb.raw
ファイルシステムが含まれていますext3
。
まず、次の2つのファイルを一緒にリンクします。
# cat vda.raw vdb.raw > combined.raw
次に、新しいデータを含む新しいパーティションを作成します。
# fdisk combined.raw
初期パーティションテーブルは次のとおりです。
Command (m for help): p
Disk combined.raw: 209 MB, 209715200 bytes
191 heads, 50 sectors/track, 42 cylinders, total 409600 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: 0xad0a5dfe
Device Boot Start End Blocks Id System
combined.raw1 2048 204799 101376 83 Linux
ここで、開始セクタとサイズのデフォルト値を受け入れて新しいセクタを作成します。
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (1-4, default 2): 2
First sector (204800-409599, default 204800):
Using default value 204800
Last sector, +sectors or +size{K,M,G} (204800-409599, default 409599):
Using default value 409599
Command (m for help): w
The partition table has been altered!
Syncing disks.
それでは、私たちが何を持っているのか見てみましょう。
# kpartx -a combined.raw
# mkdir /mnt/{1,2}
# mount /dev/mapper/loop1p1 /mnt/1
# mount /dev/mapper/loop1p2 /mnt/2
# ls /mnt/1
lost+found README.vda
# ls /mnt/2
lost+found README.vdb
#
ダダ!