배경

배경

배경

SD 카드는 Raspberry Pi용으로 구성되었습니다. 목표는 SD 카드(OS, 앱, 데이터)의 정확한 복사본을 만들어 복사본이 원본\마스터 SD 카드와 rPi에서 정확히 동일하게 작동하도록 하는 것입니다.

업데이트: 가정:

  • UNIX와 유사한 운영 체제로 구성된 랩톱에서 복제가 수행됩니다.
  • rPi에서 복사를 수행하면 안 됩니다.
  • 대상 SD 카드가 동일한 제조업체/모델입니다.
  • 소스 SD 카드는 다른 파일 시스템을 사용하여 파티션이 나누어져 있습니다.

여기에 이미지 설명을 입력하세요.

질문

SD 카드 슬롯과 USB SD 카드 리더/라이터가 있는 Ubuntu HP 노트북에 사용할 수 있는 UNIX 복제 옵션은 무엇입니까?

USB SD 카드 RW가 카드 리더인지 카드 라이터인지에 차이가 있나요?

한 가지 목표(제약 사항)는 추가 하드웨어 구매를 피하는 것입니다.

용액 관찰

date; sudo sh -c 'cat sdcard.image >/dev/mmcblk0'; date

2019년 6월 3일 월요일 17:53:18 EDT [sudo] 사용자 비밀번호: 2019년 6월 3일 월요일 23:42:17 EDT

date; sudo sh -c 'pv sdcard.image >/dev/mmcblk0'; date

2019년 6월 4일 화요일 00:33:50 EDT [sudo] 사용자 비밀번호: 119GiB 6:06:12 [5.56MiB/s] [================== == = ===========>] 100%
2019년 6월 4일 화요일 06:43:05 EDT

플래시 SD 카드의 gParted 분석에는 동일한 파티션이 표시됩니다.

여기에 이미지 설명을 입력하세요.

맥OS\OSX

SD 카드 위치 찾기:

diskutil list

다음 항목에 쓸 때는 반드시 SD 카드를 마운트 해제하세요.

sudo diskutil unmount /dev/disk#

여기서 #은 1,2,3...

답변1

한 카드에서 다른 카드로 SD 카드를 복사하려는 경우 다음을 사용할 수 있습니다.DD명령줄에서.

Raspberry Pi 자체 운영 체제에서는 이 작업을 수행하면 안 됩니다. 이는 복사하는 동안 운영 체제가 SD 카드에 기록하여 복사본을 손상시킬 수 있기 때문입니다.

SD 카드를 복사하려면 두 카드 리더기(USB인지 여부에 관계없이)에 두 카드를 모두 연결하세요. 그런 다음 내용을 확인하십시오 /dev. 카드는 로 나타나야 합니다 /dev/sd*. 예를 들어 /dev/sdb. 내장 하드 드라이브가 열려 있을 수 있으므로 주의하세요. /dev/sda.

SD 카드가 마운트되어 있지 않은지 확인하고 명령 프롬프트에 다음을 입력하여 출력된 내용을 읽어 보십시오.

mount | grep /dev/sd

또한 출력을 확인하여 어떤 카드에 어떤 파일 이름이 있는지(루트로) 확인하세요.

sudo blkid

실제로 복사하려면(예: /dev/sdb에서 /dev/sdc로) 루트로 다음을 입력합니다.

dd if=/dev/sdb of=/dev/sdc bs=4096 status=progress

답변2

Unix 시스템은 다음과 같은 방식으로 저장 장치를 제공합니다.장치 파일. 장치 파일은 여러 면에서 일반 파일과 같습니다. 특히, 저장 장치의 정확한 복사본을 만들려면 소스 장치의 내용을 대상 장치에 복사하면 됩니다.

먼저 소스 장치 파일과 대상 장치 파일을 결정해야 합니다. 이름은 Unix 변형과 구성 방법에 따라 다르지만 장치 파일은 항상 /dev이 디렉터리에 있습니다. SD 카드를 마운트하면 장치 파일이 무엇인지 확인할 수 있습니다.

df /media/sdcard1/some/file/on/the/sdcard

장치 파일은 첫 번째 열에 있습니다. 다른 도구는 lsblkSD 카드를 삽입할 때 커널 로그 메시지나 Linux의 명령과 같은 동일한 정보를 제공할 수 있습니다 .

카드에 파티션이 있을 수 있습니다. 그렇다면 파티션이 하나만 있는 경우에도 일부 부팅 시간 정보가 해당 파티션 외부에 있을 수 있으므로 전체 카드를 복사하십시오. 예를 들어 Linux에 표시하는 경우 df./dev/sdb1/dev/sdb/dev/sdb1

SD 카드를 제거했다가 다시 삽입하면 일반적으로 이전과 동일한 장치 파일 이름을 갖게 되지만 이는 보장되지 않습니다.

복사하기 전에 다음을 확인하세요.

  • 소스 장치가 마운트되지 않았거나 읽기 전용으로 마운트되었습니다.
  • 대상 장치가 전혀 설치되지 않았습니다.
  • 대상 장치는 최소한 소스 장치만큼 큽니다. Linux에서는 lsblk장치 크기를 표시합니다.
  • 올바른 대상 장치가 있습니다. 다음 명령은 확인 요청 없이 내용을 덮어쓰게 된다는 점에 유의하세요!

/dev/sdb소스 장치는 이고 대상 장치는 이라고 결정했다고 가정합니다 /dev/sdc. 내용을 복사하려면 루트로 다음 명령을 실행하십시오.

cat /dev/sdb >/dev/sdc

sudo를 사용하는 경우 루트로 리디렉션해야 하므로 >다음과 같이 작성해야 합니다.

sudo sh -c 'cat /dev/sdb >/dev/sdc'

또는 실수로 잘못된 장치를 덮어쓰지 않도록 다음 두 단계를 수행할 수 있습니다.

  1. 사용자( gatorback예제) dev/sdb에게 원본 장치(예제)에서 읽고 쓸 수 있는 /dev/sdc권한을 부여합니다.
    sudo setfacl -m user:gatorback:r /dev/sdb
    sudo setfacl -m user:gatorback:w /dev/sdc
    
  2. sudo 없이도 복사가 가능합니다.
    cat /dev/sdb >/dev/sdc
    

디스크 이미지를 파일에 복사한 다음 이미지 파일을 대상 장치에 복사할 수 있습니다. 이 기능은 여러 장의 사본을 만들어야 하는 경우, SD 카드 리더만 있는 경우 또는 잘못된 방향으로 복사할 위험을 줄이는 데 유용합니다.

  1. sudo cat /dev/sdb >sdcard.image
  2. 소스 카드를 제거하고 대상 카드를 삽입하십시오.
  3. (선택사항) 다음을 통해 콘텐츠를 확인하세요.이미지 설치,예를 들어 sudo mount -o loop -r sdcard.image /mnt.
  4. sudo sh -c 'cat sdcard.image >/dev/sdb'

진행상황을 쉽게 확인하고 싶다면pv대신 cat( pv기본적으로 거의 설치되지 않지만 대부분의 배포판에서 패키지로 사용할 수 있습니다).

관련 정보