dd 명령을 사용한 SD 카드 복제


48

많은 파티션을 포함 할 수있는 SD 카드를 복제하려고하는데 일부는 우분투에서 인식 할 수 없습니다. 일반적으로 일부 파티션뿐만 아니라 전체 볼륨을 복제하려고합니다. 그래서 SD 카드를 마운트하고 로그 뷰어에서 다음과 같은 것을 봅니다.

kernel: [  262.025221]  sdc: sdc1 sdc2

alex@u120432:~$ ls /dev/sdc*
/dev/sdc  /dev/sdc1  /dev/sdc2

전체 디스크를 복사하고 싶기 때문에 다음을 실행합니다.

dd if=/dev/sdc of=sdimage.img bs=4M

sdimage.img, 7.9GB (7,944,011,776 바이트) 파일이 생성됩니다 (SD 카드는 8GB). 이제 다른 SD 카드를 마운트하고 실행합니다.

dd if=sdimage.img of=/dev/sdc bs=4M

문제는 두 번째 dd 명령이 특정 단계에서 중단되어 성공하지 못한다는 것입니다. 그런 다음 컴퓨터를 재부팅하거나 종료 할 수 없으며 전원을 끄면됩니다.

이것이 올바른 접근법입니까? SD 카드를 복제하는 다른 방법이 있습니까?

운영체제 : Ubuntu 12.04 (Precise Pangolin), 32 비트.


작성된 img 파일을 마운트하여 올바르게 작성되었는지 확인할 수 있습니까?
Milan Todorovic

@MilanTodorovic-어떻게해야합니까?
Alex F

올바르게 기억한다면 : mount -o loop sdimage.img / path / to / mount. 그런 다음 img 파일을 올바르게 찾아 볼 수 있는지 확인하십시오.
Milan Todorovic

@MilanTodorovic : sudo mount -o sdimage.img / dev / mydisk를 시도했는데 다음을 얻었습니다. mount : / etc / fstab 또는 / etc / mtab에서 / dev / mydisk를 찾을 수 없습니다. 아마도 일부 dev 항목을 만들어야합니다. 이 내용을 답변으로 게시 할 수 있습니까? 감사.
Alex F

1
마운트 된 장치에서 dd를 사용해서는 안됩니다. 모든 파티션을 먼저 마운트 해제하면 명령이 작동합니다.
ubfan1

답변:


29

마운트 된 장치에서 dd를 사용하지 않아야합니다. 모든 파티션을 먼저 마운트 해제하면 명령이 작동합니다.


2
왜 나에게 반대인가? 우분투 12.10했습니다과 명령은 ... monted 전용 파티션이 작품이
루카 Davanzo

1
@Velthune 확실합니까? 그렇다면 본인의 질문을 제안합니다.
Vreality

25

원래 SD 카드를 삽입하고 장치 이름 (일반적으로 mmcblkX또는 sdcX)을 확인하십시오.

sudo fdisk -l

당신은 볼 수 있습니다 :

Device         Boot   Start      End  Sectors  Size Id Type
/dev/mmcblk0p1 *       2048  2099199  2097152    1G  c W95 FAT32 (LBA)
/dev/mmcblk0p2      2099200 31116287 29017088 13.9G 83 Linux

필자의 경우 SD 카드는 /dev/mmcblk0( *p1그리고 *p2파티션입니다).

이제 장치를 마운트 해제해야합니다.

sudo umount /dev/mmcblk0

이제 장치의 이미지를 만들려면

sudo dd if=/dev/mmcblk0 of=~/sd-card-copy.img

시간이 좀 걸릴 것입니다.

완료되면 빈 SD 카드를 삽입하십시오. 장치가 다른 경우 (USB 또는 다른 유형의 SD 카드 리더) 이름을 확인하고 마운트를 해제하십시오.

sudo fdisk -l
sudo umount /dev/mmcblk0

장치에 이미지를 작성하십시오.

sudo dd if=~/sd-card-copy.img of=/dev/mmcblk0

쓰기 작업이 이전보다 훨씬 느립니다.


4
많은 양의 데이터를 복사 할 때는 기본 블록 크기보다 크게 설정해야합니다. 그렇지 않으면 매우 오래 기다려야 할 수 있습니다. sudo dd if=/dev/mmcblk0 of=~/sd-card-copy.img bs=4M
xaedes

13

dd 도구를 사용하여 여러 파티션으로 USB 스틱을 복제하고 있습니다. 다음은 내 명령입니다.

sudo dd if=/dev/sdb of=/dev/sdc bs=4096 conv=notrunc,noerror

notrunc- 출력 파일을 자르지 않음
noerror- 읽기 오류 후 계속


두 개의 SD 카드 리더가 필요하지 않습니까?
피터 Mortensen

1
@PeterMortensen 예, 많은 사람들이 4-in-1 타입 어댑터를 사용합니다.
Teque5

9

dd는 괜찮지 만 cat /dev/sdc/ > ~/backup.iso SD 카드에 다시 넣고 싶다면 그냥 실행하십시오.cat ~/backup.iso > /dev/sdc


두 SD 모두 8GB입니다. 고양이는 SD 이미지를 만드는 데 사용할 수 있지만 다른 SD를 만들려면 dd를 사용해야합니다.
Alex F

0

Ubuntu 에서 이미지 파일 ( 내 경우)을 새로운 SD 카드 (위의 Alon의 회신에서 크게 영감을 얻음)로 다시 복원 하는 단계는 다음과 같습니다 ~/raspberrypi2.img.

  1. 카드 판독기를 통해 마이크로 SD 카드를 삽입하십시오.
  2. 디스크 앱을 엽니 다.
  3. 전체 카드를 빠르게 포맷하십시오 (특정 파티션이 아님).
  4. 디스크를 닫습니다.
  5. 터미널을 열고 다음을 실행하십시오.

    sudo fdisk -l
    

관련 출력 (전체 카드의 빠른 형식으로 인해 파티션이 없음을 나타냄) :

Disk /dev/sdb: 7.4 GiB, 7948206080 bytes, 15523840 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: 0x6957f2f2

sudo dd if=~/raspberrypi2.img of=/dev/sdb

이 단계는 몇 분 정도 걸립니다 (USB3에서도). 마운트를 호출하는 작업 (파일 또는 디스크 앱 열기)으로 중단하지 마십시오 .

모든 사람의 답변에 감사드립니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.