나는 한때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 카드에 있습니까(데이터 무결성 문제)?
추가 설명:
답변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