원시 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에서 새 디스크 파티션으로 표시되는 두 가지를 결합하여 새 이미지를 생성하는 쉬운 방법이 있습니까? 나는 피하고 싶다:
- vda.raw 크기 조정
- vda.raw에 새 파티션을 생성합니다.
- vda.raw 마운트
- vdb.raw 마운트
- vdb.raw의 내용을 vda.raw에 복사합니다.
dd로 연결한 다음 이미지에 새 파티션이 있음을 알 수 있도록 파티션 테이블을 수정하는 방법이 있습니까?
답변1
확실한 방법을 시도해 보셨나요? vdb를 vda에 연결하고 새 파티션을 만드세요. 나는 그것을 시도했고 그것은 효과가있는 것 같습니다. 이게 내가 한 일이야...
두 개의 파일로 시작합니다.
# 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
.
먼저 다음 두 파일을 함께 연결합니다.
# 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
#
다다!