DD를 사용하여 이동식 장치의 절반(일부)만 복사

DD를 사용하여 이동식 장치의 절반(일부)만 복사

나는 한때32GB SD 카드이 구조를 사용하면(또는 매우 유사하게):

luis@Fresoncio:~$ sudo fdisk -l
Disk /dev/mmcblk0: 29.2 GiB, 31393316864 bytes, 61315072 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
Disklabel type: dos
Disk identifier: 0xec4e4f57

Device         Boot    Start      End  Sectors  Size Id Type
/dev/mmcblk0p1             1   125000   125000   61M  c W95 FAT32 (LBA)
/dev/mmcblk0p2        125001 33292287 33167287 15.8G 83 Linux
/dev/mmcblk0p3      33292288 61315071 28022784 13.4G 83 Linux

그리고 나편입(다른 컴퓨터에서 장치가 있고 sda) sdb로 이동합니다. (잘못 선택했습니다.)64GB SD 카드패스 dd( dcfldd실제로):

# dcfldd if=/dev/sda of=/dev/sdb bs=1M

이제 내 새 64GB SD 카드는 다음과 같습니다.

luis@Fresoncio:~$ sudo fdisk -l
Disk /dev/mmcblk0: 59.5 GiB, 63864569856 bytes, 124735488 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
Disklabel type: dos
Disk identifier: 0xec4e4f57

Device         Boot    Start      End  Sectors  Size Id Type
/dev/mmcblk0p1             1   125000   125000   61M  c W95 FAT32 (LBA)
/dev/mmcblk0p2        125001 33292287 33167287 15.8G 83 Linux
/dev/mmcblk0p3      33292288 61315071 28022784 13.4G 83 Linux

지금은 문제 없습니다. 하지만 이제 더 이상 활성 32GB SD 카드가 없고 64GB SD 카드만 남았습니다. 이 카드를 빈 32GB SD 카드로 다시 전송하고 싶습니다.
이 경우에는 다음을 사용할 수 없다고 가정합니다 dd.dcfldd

어떡해? dd또는 을 사용할 수 있나요 dcfldd? 환승이 도착하면 어떻게 되나요?32GB 경계대상 SD 카드에 있습니까(데이터 무결성 문제)?

추가 설명:

  • 어느다른 방법SD 카드 복제는 제대로 작동하지만 문제가 있습니다. 이 경우 일부 SD 카드가 드라이브를 부팅합니다.라즈베리 파이 2, partimageor 를 통한 복제가 gparted작동하지 않습니다(Raspberry가 부팅되지 않음). dd클론만이 완벽한 것 같습니다 .

  • 비슷한질문입니다만 제 생각에는 다릅니다.

  • dcfldd도구의 구문과 동작은 동일합니다 dd. 단지 더 많은 정보(진행 상황 등)를 제공할 뿐입니다. 여기있어매뉴얼 페이지.

답변1

sda가 64GB 소스 SD 카드이고 sdb가 32GB 대상 SD 카드라고 가정합니다. 다음을 사용하여 필요한 수의 섹터만 복사하도록 dd를 제한할 수 있습니다.

dd if=/dev/sda of=/dev/sdb bs=512 count=61315072

답변2

나는 하드 드라이브를 사용하여 이 작업을 여러 번 수행했습니다. dd작은 하드 드라이브에 큰 하드 드라이브를 넣기만 하면 됩니다. 32GB에 도달하면 실패하지만 괜찮습니다.

여전히 의심스러우면 주변에 있는 오래된 USB 스틱/하드 드라이브에서 이 작업을 수행해 보시기 바랍니다.

답변3

어떤 도구든 사용하여 다음과 같은 복사본을 만들 수 있습니다 cat.dd장점은 없고 cat단점만 있습니다.) 대상 디스크의 끝에 도달하면 중지됩니다. 이 간단한 접근 방식의 단점은 관심 있는 섹션의 복사가 성공했는지 여부를 말하기 어렵다는 것입니다.

복사하려는 항목을 성공적으로 복사한 경우 복사 명령이 성공 상태를 반환하고 그렇지 않으면 오류가 발생하도록 하려면 적절한 양의 데이터를 복사하는 명령을 사용합니다. 파일의 처음 N바이트를 복사하려면 를 사용합니다 head -c. 복사할 바이트 수는 섹터 수에 섹터 크기를 곱한 값입니다( fdisk목록에서는 512바이트). 섹터는 0부터 시작하므로(섹터 0에는 파티션 테이블이 포함됨) 복사할 총 섹터 수는 가장 큰 "끝" 값에 1을 더한 값입니다.

head -c $((61315071*512+512)) /dev/sdSOURCE >/dev/sdDESTINTATION

sdSOURCE및를 sdDESTINATION적절한 장치 이름으로 바꾸십시오. 덮어쓰려는 장치가 덮어쓰려는 장치인지 확인하는 데 유용한 기타 명령을 fdisk -l /dev/sdDESTINATION실행 grep sdDESTINATION /proc/partitions하세요 .file -s /dev/sdDESTINATION

관련 정보