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, 복제를 통해 partimage또는 gparted작동하지 않았습니다(라즈베리가 부팅되지 않음). 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. 복사할 바이트 수는 섹터 수에 섹터 크기(목록에서는 512바이트 fdisk)를 곱한 값입니다. 섹터는 0부터 시작하므로(섹터 0에는 파티션 테이블이 포함됨) 복사할 총 섹터 수는 가장 큰 "끝" 값에 1을 더한 값이 됩니다.

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

sdSOURCEsdDESTINATION적절한 장치 이름으로 바꾸십시오 . 덮어쓰려는 장치가 덮어쓰려는 장치인지 확인하는 데 유용하다고 생각되는 기타 명령을 실행 하세요 fdisk -l /dev/sdDESTINATION.grep sdDESTINATION /proc/partitionsfile -s /dev/sdDESTINATION

관련 정보