이미지가 3 개 있습니다. 각 이미지는 파티션 (ext3 파일 시스템을 사용하여 포맷 된 파티션)을 복제 (dd)하여 수행되었습니다. GRUB1 (CentOS)을 사용하여 하나의 파티션으로 부팅 가능
하나의 디스크 이미지로 어떻게 결합 할 수 있습니까?
(dd 명령을 사용하여 파티션 이미지를 복사 할 수 있지만 파티션 테이블을 생성하고 부팅이 작동하는 방법을 모르겠습니다).
답변
디스크 이미지를 작성하십시오. 다음 명령은 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
것이 오류가 덜 발생 한다고 생각합니다 . -
이렇게하면 부팅 가능한 이미지가 생성되지 않습니다. 원하는 경우 부트 로더를 설치해야합니다.