DD를 사용하여 디스크 이미지에서 파티션을 복제하는 방법은 무엇입니까?

DD를 사용하여 디스크 이미지에서 파티션을 복제하는 방법은 무엇입니까?

"전체" 디스크 이미지인 디스크 이미지가 있습니다. 예를 들어 복제하려는 여러 파티션이 포함되어 있습니다.하나(첫 번째 파티션이 아님..) 여러 파티션이 있는 외장 드라이브의 파티션에 연결합니다(또한 디스크의 첫 번째 파티션에 복제하지 않았습니다...).

이미지를 FDisk하여 다음 결과를 얻습니다.

# fdisk -l 2013-02-09-wheezy-raspbian.img

디스크 2013-02-09-wheezy-raspbian.img: 1939MB, 1939865600바이트
255개 헤드, 63개 섹터/트랙, 235개 실린더, 총 3,788,800개 섹터
단위 = 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 출력을 읽고 직접 제공할 수도 있습니다 . ddskip=131072, 파티션이 있는 위치를 읽기 시작하도록 많은 입력 블록을 건너뛰지만 실제 파티션을 보려면 루프 장치를 사용하는 것이 더 좋습니다.

답변2

다음과 같이 작동해야 합니다.

dd if=/path/to/2013-02-09-wheezy-raspbian.img2 of=/dev/sdc2 bs=4096 conv=notrunc,noerror

만약에= 복제하려는 이미지 설정

~의= 이미지를 복제할 대상 파티션을 설정합니다.

답변3

  1. 이미지를 루프백 장치로 마운트합니다.losetup -fP yourImage.img
  2. 이제 이미지의 각 파티션에 직접 액세스할 수 있습니다. 부득이하게 사용해야 한다면 dd이 방법을 사용하면 되지만 dd if=/dev/loop0p1 of=image.img, 내 생각에는 cat이 방법을 더 선호하실 것 같습니다. 루트 셸에서 실행하면 됩니다 cat /dev/loop0p1 > image.img. 두 예제 모두 첫 번째 파티션이 필요하고 할당된 루프백 장치가 다음과 같다고 가정합니다./dev/loop0
  3. 루프백 장치 사용을 마친 후 를 사용하여 루프백 장치를 분리할 수 있습니다 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를 마운트 해제했는지 확인하세요.

관련 정보