단일 명령을 사용하여 디스크 이미지의 압축을 풀고 SD 카드에 추가하는 방법은 무엇입니까?

단일 명령을 사용하여 디스크 이미지의 압축을 풀고 SD 카드에 추가하는 방법은 무엇입니까?

다음과 같은 제한 사항이 적용됩니다.

  • .zip내 컴퓨터에 파일이 포함된 1.0GB 파일이 있습니다 . 즉 raspbian, 압축을 푼 후 파일 크기는 3.2GB이고 이름은 2015-11-21-raspbian-jessie.img.
  • zip 파일을 다운로드한 후 컴퓨터의 저장 공간이 1.0GB 미만이고 이미지를 컴퓨터에 추출할 공간이 부족합니다.
  • 파일의 압축을 풀고 기존의 일반 .txt 파일을 사용하여 SD 카드에 작성해야 합니다 dd.

이러한 제한 사항에 따라 SD 카드에 이미지를 쓸 수 있나요?

tar데이터를 파이프 한 다음 해당 데이터를 다른 곳으로 전송할 수 있다는 것을 알고 있지만 이것이 여전히 zip파일 형식에 적용됩니까, 아니면 파일에 액세스하기 전에 전체 아카이브의 압축을 풀어야 합니까?

답변1

사용 unzip -p:

unzip -p 2015-11-21-raspbian-jessie.zip 2015-11-21-raspbian-jessie.img | dd of=/dev/sdb bs=1M

-p파일을 표준 출력으로 추출

답변2

이전 솔루션으로 어려움을 겪은 후:

 unzip -p ~/Downloads/2020-02-05-raspbian-buster-lite.zip | sudo dd of=/dev/disk2 bs=1m

또는 진행 상황을 확인하고 설치한 경우 pv:

 unzip -p ~/Downloads/2020-02-05-raspbian-buster-lite.zip | pv | sudo dd of=/dev/disk2 bs=1m

답변3

편의상 보통 unzip -p 2015-11-21-raspbian-jessie.zip >/dev/sdbor를 사용합니다. zcat 2015-11-21-raspbian-jessie.gz >/dev/sdb이는 빅 데이터 전송을 수행할 때 운영 체제가 최적의 성능을 위해 블록 크기(소스 블록 크기, 대상 블록 크기, 메모리 가용성 등을 기준으로)를 자동으로 조정하기를 기대하고 그보다 더 빠르게 작동하는 것으로 나타났기 때문입니다 dd if= of= bs=. 가능한 모든 블록 크기 선택을 시도하지 않았기 때문에 무차별 대입을 시도하지 않았습니다 dd.) ^_^

관련 정보