
디스크 이미지가 있는데, 이는 "전체" 디스크 이미지입니다. 예를 들어 여러 파티션이 포함되어 있고, 파티션만 복제하고 싶습니다.하나그 중(첫 번째 파티션이 아님..)을 여러 파티션이 있는 외부 드라이브의 파티션에 복사합니다(또한 디스크의 첫 번째 파티션에 복제하지 않습니다...).
이미지를 FDisk하면 다음이 제공됩니다.
# fdisk -l 2013-02-09-wheezy-raspbian.img 디스크 2013-02-09-wheezy-raspbian.img: 1939MB, 1939865600바이트 255개 헤드, 63개 섹터/트랙, 235개 실린더, 총 3788800개 섹터 단위 = 1 * 512 = 512바이트의 섹터 섹터 크기(논리적/물리적): 512바이트 / 512바이트 I/O 크기(최소/최적): 512바이트 / 512바이트 디스크 식별자: 0x00014d34 장치 부팅 시작 끝 블록 ID 시스템 2013-02-09-wheezy-raspbian.img1 8192 122879 57344 c W95 FAT32 (LBA) 2013-02-09-wheezy-raspbian.img2 122880 3788799 1832960 83 리눅스 #
블록 장치는 다음과 같습니다.
# fdisk -l /dev/sdc 디스크 /dev/sdc: 8014MB, 8014266368바이트 247개 헤드, 62개 섹터/트랙, 1022개 실린더, 총 15652864개 섹터 단위 = 1 * 512 = 512바이트의 섹터 섹터 크기(논리적/물리적): 512바이트 / 512바이트 I/O 크기(최소/최적): 512바이트 / 512바이트 디스크 식별자: 0x00000000 장치 부팅 시작 끝 블록 ID 시스템 /dev/sdc1 2048 131071 64512 e W95 FAT16(LBA) /dev/sdc2 131072 15652863 7760896 83 리눅스 #
이미지의 두 번째 파티션이 블록 장치의 두 번째 파티션을 대체하고 싶습니다. 뒤따르는 손상된 여유 공간에 대해 걱정하지 마십시오. GParted를 사용하여 이를 정리하고 어쨌든 다른 용도로 필요합니다.
답변1
# losetup --find --show --partscan --read-only 2013-02-09-wheezy-raspbian.img
/dev/loop7
# dd if=/dev/loop7p2 of=/dev/narnia bs=1M
작동하지 않으면 --partscan
다음 중 하나를 사용할 수도 있습니다.
# partx -a /dev/loop7
# kpartx /dev/loop7
또는 유사한 파티션 매핑 솔루션.
그것이 올바른지 또는 무엇인지 확인하기 위해 먼저 마운트해야 할 것입니다.
물론 fdisk 출력을 읽고 또는 무엇이든 직접 제공할 수도 있습니다 dd
. skip=131072
즉, 많은 입력 블록을 건너뛰어 파티션이 있는 위치에서 읽기를 시작하도록 할 수 있습니다. 그러나 루프 장치를 사용하여 실제 파티션을 보는 것이 더 좋습니다.
답변2
다음과 같이 작동해야 합니다.
dd if=/path/to/2013-02-09-wheezy-raspbian.img2 of=/dev/sdc2 bs=4096 conv=notrunc,noerror
만약에= 복제하려는 이미지를 설정합니다.
~의= 이미지를 복제할 대상 파티션을 설정합니다.
답변3
- 이미지를 루프백 장치로 마운트합니다.
losetup -fP yourImage.img
- 이제 이미지의 각 파티션에 직접 액세스할 수 있습니다. 꼭 사용해야 한다면
dd
할 수 있지만 더dd if=/dev/loop0p1 of=image.img
좋아하실 것 같습니다cat
. 루트 쉘에서는 간단히cat /dev/loop0p1 > image.img
. 두 예 모두 첫 번째 파티션을 원하고 할당된 루프백 장치가 다음과 같다고 가정합니다./dev/loop0
- 루프백 장치 사용이 완료되면 를 사용하여 분리할 수 있습니다
losetup -d /dev/loop0
. 다시 한 번, 이는/dev/loop0
루프백 장치라고 가정합니다.
답변4
이를 사용하면 두 번째 파티션만 별도의 이미지로 복사할 수 있습니다.
dd if=2013-02-09-wheezy-raspbian.img of=second.img bs=512 skip=122880
그런 다음 디스크의 파티션 대신 복사할 수 있습니다.
dd if=second.img of=/dev/sdc2 bs=512
아니면 하나의 명령으로 할 수도 있습니다
dd if=2013-02-09-wheezy-raspbian.img of=/dev/sdc2 bs=512 skip=122880
쓰기 전에 /dev/sdc2를 마운트 해제했는지 확인하세요.