본문 바로가기
카테고리 없음

[펌] 라즈베리파이 이미지 저장 및 굽기

by 김당이 2023. 3. 2.
반응형
SMALL

출처: https://seonghyuk.tistory.com/264

 

 

실행환경:ubuntu 20.04 lts


 

SD카드 이미지를 만들려고 하는데 64기가 정도 필요했습니다.

 

그런데 현재 제 노트북에는 20GB 밖에 남지 않아 고민하던중 USB에 이미지를 저장할 수 없을까 해서 

 

시도한 끝에 성공해서 포스팅 남깁니다. (여러개  USB는 아직 안됨)

 


[1. usb에 이미지 파일 만들어 저장하기]

 

1)우선 SD카드리더기에 이미지를 뜰 SD카드를 넣고 연결해줍니다.

 

 

2)그리고 이미지가 저장될 usb도 연결해줍니다.

(저장 공간이 충분한 경우 2번 과정 후에 4-1로 가주시면 됩니다.)

 

 

연결된 장치를 아래 명령어로 확인합니다.

sudo parted -l

 

 

현재 /dev/sdc 에는 sd카드가 /dev/sdd 에는 usb가 연결된것을 확인할수 있습니다.

 

 

그 후에 sd카드를 umount 시켜줍니다.

 

*여기서 /dev/sdc는 제 노트북에서의 위치이므로 각자 확인해보시고 각자의 위치로 하면 됩니다.

sudo umount /dev/sdc

 

저같은 경우는 애초에 마운트 되지 않아서 저런 메시지가 뜨네요.

 

 

3)연결된 usb 마운트 시키기

 

그리고 mount를 해줍니다.먼저 mount 시킬 디렉토리를 만들어줍니다. 저는 nblusb라는 폴더에 마운트를 해보겠습니다.

 

mount /dev/sdd /home/nblusb/

이미 마운트 되었다고 나오네요.

 

다음 명령어로 마운트 위치를 알아냅니다.

df -h

 

 

 

저는 media/hy1이라는 곳에  마운트가 되어있네요.

 

 

 

4)sd카드 이미지를 usb에 생성하고 저장하기(복사x)

 

그리고 dd 명령어를 사용해서 /dev/sdc에 있는 sd카드를  아까 마운트 시킨 usb에 gzip을 이용하여 이미지를 만들어봅니다. 

(media/hy1/1E.. 로 끝나는 디렉토리 뒤에 저장될 형태의 파일명을 정해주면 됩니다. 저는 nbl_image  라고 했습니다)

 

시간이 30분정도 소요됩니다.

sudo dd if=/dev/sdc conv=sync,noerror bs=64K | gzip -c > /media/hy1/1E6B-EEE8/nbl_image.img.gz

*명령어 간단 해석

dd는 복사하거나 파일 변환을 할때 쓰는 명령어입니다. 저는 이미지파일을 만들것이므로 이 명령어를 씁니다.

 

dd if=/dev/sdc  는 /dev/sdc의 내용을 읽고

 

conv=sync 는 파일을 변환하는 옵션입니다. inpit크기와 output크기가 차이가 있을때 null 문자로 변환한다는 의미입니다.

(읽어들이는것과 출력으로 내는 것 크기가 차이가 있을 때 크기를 맞추기 위한 설정 같습니다)

 

noerror은 파일을 읽으면서 오류가 발생해도 계속 작업을 진행하는 것을 의미합니다.

 

bs=64K는 한번 읽어들일 사이즈 64킬로바이트로 설정하는 것을 의미합니다.

 

| 는 파이프라인으로  and로 생각하시면 됩니다.

 

 

gzip은 리눅스에서 압축을 할때 씁니다.

-c 옵션은 원본파일은 그대로 둔다.

> /media/hy1/.. 는 어디에 파일을 출력할지(압축할지)  경로를 정해줍니다.

nbl_image.img.gz 는 gz 앞 img 파일 형식으로 압축할 것을 의미합니다.

 

 

https://bigsun84.tistory.com/312

 

[Linux] dd 명령어 옵션 정리

dd : 블록 단위로 파일을 복사하거나 파일 변환을 할 수 있는 명령어 ## 옵션 정리 bs : Bytes, 한번에 읽고 쓸 최대 바이트 크기를 지정합니다. cbs : Bytes, 한번에 변환 작업 가능한 바이트 크기를 지

bigsun84.tistory.com

 

 

 

완료후 아까 usb가 마운트된 위치로 가 확인해보면 이미지가 하나 생긴것을 볼 수 있습니다.

 

 

 

 

 

*여기는 usb가 아닌 저장공간에 이미지를 생성할 경우 입니다.

 

4-1)sd카드 이미지를 usb에 생성하고 저장하기(복사x)

(여기서 gzip -c > ~/ 으로 디렉토리를 설정했는데 원하는 디렉토리가 있다면 ~ 대신 그 디렉토리를 적어주셔도 됩니다.)

 

sudo dd if=/dev/sdc conv=sync,noerror bs=64K | gzip -c > ~/nbl_image.img.gz

 

[2.복사된 이미지를 새로운 sd카드에 복사하기]

 

1.먼저 usb리더기에 복사본을 넣을 새로운 sd카드를 넣고 연결해줍니다.

 

 

2. mount된 위치 확인하기

(저는 2개의 sd카드 리더기를 연결했습니다. 위치는/dev/sdc/ 와 /dev/sde로 되어 있네요.)

sudo parted -l

 

 

그리고 복사를 하려면 root권한이 필요하기에

 

저는 그냥 관리자모드로 바꿔서 진행했습니다.(sudo를 붙이면서 진행하셔도 됩니다.)

sudo su

 

 

그리고 연결된 마운트된 sd카드 위치로 복사해줍니다.

 

(저는 2개의 sd카드를 연결했기에  파이프라인  |  2개 사용했습니다만

1개만 사용해주세요.저렇게 했을땐 맨앞 1개만 복사가 되네요.  추후 방법을 알아내면 추가하겠습니다.)

 

시간은 리더기에 따라 소요시간이 다르며 저같은 경우는 40분이 걸렸습니다.

gunzip -c /media/hy1/1E6B-EEE8/nbl_image.img.gz | dd of=/dev/sdc bs=64K

*/media/hy1은 아까전 이미지를 저장해둔 위치(usb) 입니다.

본체 저장공간에 이미지가 있다면 그 디렉토리를 적어주면 됩니다.

 

 

반응형
LIST