https://contented.qolc.net/articles/a-better-faster-way-to-write-a-raspberry-pi-sd-card-image/
The standard way of writing an SD card image for a Raspberry Pi (or any other purpose that requires writing a whole disk image to the card) from any unix-like system (eg Linux or Mac OSX) is to use the venerable dd(1) utility.
dd has been around, basically unchanged, since the dawn of time. It has an arcane syntax that’s completely different to every other unix command, and its screen output is spectacularly unhelpful. While it’s working, it remains silent. You have no idea how fast it’s going or how long it’s going to take, until it eventually finishes and tells you how many blocks came in and went out – and even that minimal information is presented in a rather obscure format.
On my Mac I found using dd to write a Raspi boot image to an SD card to be very slow and unreliable. For some reason it refused to write to the raw disk device (/dev/rdiskn), even though there were no active mounts. Using the buffered device file instead (/dev/diskn) it took a full 30 minutes to write a 650MB image… and even then, when I pulled the card and put it in my Raspi, somehow it still booted the old OS that was on there before.
Then I discovered a lovely utility called pv, which stands for Pipe Viewer. On a Mac it’s available in Homebrew (brew install pv) and Macports (port install pv).
Using this, instead of dd if=osimage.img of=/dev/diskn (30 minutes, remember), I did pv osimage.img > /dev/rdiskn and it took just over 2 minutes, and the card worked perfectly. (These commands need to run as root, of course).
The other big advantage of pv over dd, is that it shows you what’s going on – it provides a progress bar, data transfer rate, ETA and so on (this is actually its raison d’etre, it just seems to be much more efficient than dd at piping data too) – whereas dd just sits there saying nothing until it’s finished.
pv has a ton of potential uses, and is a shining example of the strength of the UNIX philosophy: a small program that does one thing and does it well, interconnecting with other programs in a standard way to make them better. I don’t know how long it’s been around, but I love the fact that even after 20 years of using Linux I can still stumble upon something new and neat that I know will immediately become a well-used part of my toolkit and make life easier. And I have to laugh, because I’ve just found out it was written by Andrew Wood, an old friend from years ago. Looks like it’s been around for quite a while, and is still being actively maintained. Kudos.
Links
* Wherever you see n in this article, you’ll need to replace it with the appropriate number for the SD card on your system. On my Macbook Pro it’s 2, but your system may be different, and if you get it wrong, you could overwrite a critical system disk. My first ever big data loss event back in 1994 was caused by an error like this, which is why I’ve not put the number in above, I wouldn’t want anyone to blindly copy&paste – find out the correct number for your system, double, triple and quadruple check the commandline before you hit enter, take backups and take care!
모든 유닉스 계열 시스템(예: Linux 또는 Mac OSX)에서 Raspberry Pi(또는 전체 디스크 이미지를 카드에 기록해야 하는 기타 목적)용 SD 카드 이미지를 작성하는 표준 방법은 dd(1 ) 공익사업.
dd는 새벽부터 기본적으로 변경되지 않았습니다. 다른 모든 유닉스 명령과 완전히 다른 신비한 구문을 가지고 있으며 화면 출력은 매우 도움이 되지 않습니다. 작동하는 동안에는 침묵을 유지합니다. 얼마나 빨리 진행되고 얼마나 걸릴지 알 수 없습니다. 마침내 완료되어 얼마나 많은 블록이 들어오고 나갔는지 알려줄 때까지, 그리고 최소한의 정보조차도 다소 모호한 형식으로 표시됩니다.
내 Mac에서 dd를 사용하여 Raspi 부팅 이미지를 SD 카드에 쓰는 것이 매우 느리고 신뢰할 수 없다는 것을 발견했습니다. 어떤 이유로 활성 마운트가 없음에도 불구하고 원시 디스크 장치(/dev/rdiskn)에 쓰기를 거부했습니다. 버퍼링된 장치 파일(/dev/diskn)을 대신 사용하면 650MB 이미지를 작성하는 데 30분이 모두 걸렸습니다. 그런데도 카드를 꺼내 Raspi에 넣었을 때 어떻게든 여전히 켜져 있던 이전 OS를 부팅했습니다. 거기 전에.
그런 다음 Pipe Viewer를 의미하는 pv라는 멋진 유틸리티를 발견했습니다. Mac에서는 Homebrew(brew install pv) 및 Macports(port install pv)에서 사용할 수 있습니다.
이것을 사용하여 dd if=osimage.img of=/dev/diskn (30분, 기억) 대신에 pv osimage.img > /dev/rdiskn을 실행했고 2분 조금 넘게 걸렸고 카드가 완벽하게 작동했습니다. (물론 이 명령은 루트로 실행해야 합니다).
dd에 비해 pv의 또 다른 큰 장점은 진행 상황을 보여줍니다. 진행률 표시줄, 데이터 전송 속도, ETA 등을 제공합니다(이것이 실제로 그 이유이며 훨씬 더 효율적인 것처럼 보입니다. 파이핑 데이터에서도 dd보다) – dd는 끝날 때까지 아무 말도 하지 않고 그냥 앉아 있습니다.
pv는 많은 잠재적인 용도를 가지고 있으며 UNIX 철학의 강점을 보여주는 빛나는 예입니다. 한 가지를 잘 수행하는 작은 프로그램, 표준 방식으로 다른 프로그램과 상호 연결하여 더 나은 성능을 제공합니다. 얼마나 오래되었는지는 모르지만 Linux를 사용한 지 20년이 지난 후에도 여전히 새롭고 깔끔한 것을 우연히 발견할 수 있다는 사실이 마음에 듭니다. 더 쉽게. 그리고 저는 웃어야만 합니다. 몇 년 전의 오랜 친구인 앤드류 우드가 쓴 글이라는 것을 알게 되었기 때문입니다. 꽤 오랜 시간 동안 주변에 있었던 것처럼 보이며 여전히 활발히 유지 관리되고 있습니다. 명성.
연결
Andrew Wood의 pv 공식 페이지
일부 용도 요약
* 이 문서에서 n이 표시되는 곳마다 시스템의 SD 카드에 해당하는 번호로 교체해야 합니다. 제 맥북 프로에서는 2인데 시스템이 다를 수 있고, 잘못 입력하면 중요한 시스템 디스크를 덮어쓸 수 있습니다. 1994년에 제 첫 번째 빅 데이터 손실 이벤트는 이와 같은 오류로 인해 발생했습니다. 그래서 위에 번호를 넣지 않았습니다. 아무도 맹목적으로 복사하여 붙여넣는 것을 원하지 않습니다. 시스템에 맞는 정확한 번호를 찾으십시오. Enter 키를 누르기 전에 명령줄을 두 번, 세 번, 네 번 확인하고 백업을 수행하고 주의하십시오!
>sudo su: 수퍼 유저 권한 획득
>apt install pv: pv설치 vs >sudo apt autoremove
> pv rpi-opencv.img > /dev/sdb2
(sd카드 끼우고 파일 매니저로 확인 >df -h의 15기가 디바이스로 확인 , 25분 소요)
'라즈베리파이' 카테고리의 다른 글
Sound Activated Recording – Setup (0) | 2022.05.19 |
---|---|
Getting a ST7735 TFT Display to work with a Raspberry Pi (0) | 2022.05.19 |
리눅스용 한글 가상 키보드 (ubuntu netbook remix 9.10) (0) | 2022.05.19 |
How to change the Desktop Background of Raspberry Pi (0) | 2022.05.19 |
나만의 고정 IP 생성하기! – VPN 생성방법 (0) | 2022.05.19 |
댓글