본문 바로가기

오늘의 공부/ubuntu

[ubuntu20.04 lts] sd카드 이미지 만들기 (이미지 저장공간 부족한 경우) &새로운 sd카드 이미지 붙여넣기

 

 

실행환경: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) 입니다.

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

 

 


[참고사이트]

https://scent2d.tistory.com/65

 

dd를 활용한 디스크 이미지 덤프 및 분석환경 구성 (Linux 환경 테스트)

→ 덤프 파일을 저장할 USB 디스크를 인식 후, "fdisk -l" 명령을 입력한다. → 현재 이미지 덤프 목표 파티션은 "/dev/sda1"이며, 덤프 파일을 저장할 USB 디스크는 "/dev/sdc1" 이다. 먼저, "/dev/sdc1" 장치를.

scent2d.tistory.com

 

https://deep-eye.tistory.com/76 

 

[Jetson] Nvidia 젯슨 Nano or NX SD 카드 복사하기 (Clone SD Card)

Jetson Series 젯슨 나노는 NVIDIA에서 제작한 딥러닝용 보드로 GPU 연산이 가능한 프로세서를 탑재하여 CUDA를 활용한 이미지 프로세싱과 딥러닝 연산이 가능합니다. 가격 또한 저렴?하여 다양한 산업

deep-eye.tistory.com

https://dongle94.github.io/ubuntu/ubuntu-sdcard-copy/ 

 

[Ubuntu] (Linux)SD카드 복제하기

우분투(리눅스) 에서 명령어(CLI)기반 SD카드 복제 방법을 알아본다.

dongle94.github.io