YOGYUI

Raspberry Pi4 - USB Flash Drive로 Raspberry Pi OS 부팅 본문

Hardware/Raspberry Pi

Raspberry Pi4 - USB Flash Drive로 Raspberry Pi OS 부팅

요겨 2023. 2. 7. 22:14
반응형

홈네트워크 플랫폼(Homebridge, Home Assistant)을 라즈베리파이 4에서 구동하고 있는데, 코드 작업을 VS Code SSH로 여러 장치에서 원격으로 접속해서 하다보니 유저 데이터가 쓸데없이 쌓이는 바람에 16GB SD 카드 용량이 거의 다 차버렸다 ㅠ

vscode server만 2.3GB를 잡아먹고 있다 ㅎㅎ...

마침 홈네트워크 플랫폼도 한번 갈아엎고 새로 설치해볼까 했는데 (도커 컨테이너로 꾸며볼까 고민중), 겸사겸사 라즈베리파이를 SD카드가 아니라 집안에 굴러다니는 고용량 USB 플래시 메모리로 부팅하는 방법을 알아봤다

사용한 모델: Raspberry Pi 4 Model B Rev 1.2 (4GB RAM)

※ 본 포스팅에서는 완전 Clean한 OS를 USB에 설치하는 것만을 다룬다. 기존에 SD카드에 설치되어 있던 OS를 USB/SSD에 복사한 뒤 멀티부팅하는 방법은 링크1, 링크2를 참고하면 된다 (OS 상에서 EEPROM 부트로더 설정을 쉽게 할 수 있다)

☞ 라즈베리파이 최초 설정부터 USB 부팅을 사용하고자 하는 유저에게 적합한 세팅 방법

준비물

  • Raspberry Pi 4 / 400 (부트로더 EEPROM이 장착된 모델이 필요하다)
  • 8GB 이상 용량의 Micro SD카드 및 SD카드 리더기
  • SSD(Solid State Drive) 혹은 USB 플래시 메모리
    - 이 글에서는 SanDisk Ultra Flair CZ73 (256GB) USB 플래시 드라이브를 사용
  • 환경을 설정할 PC
    - 이 글에서는 Windows 11이 설치된 데스크톱에서 진행

1. Raspberry Pi Imager 설치

라즈베리파이 공식 홈페이지 (https://www.raspberrypi.com/software/)에서 Raspberry Pi Imager를 본인의 OS에 맞게 다운로드받는다 (2023년 2월 7일 기준 최신버전 = v1.7.3)

설치 후 실행하면 다음과 같은 다이얼로그가 팝업된다 (요샌 한글도 자동으로 지원하네?)

2. Micro SD카드에 EEPROM 부트로더 이미지 쓰기

라즈베리파이의 EEPROM 부트로더의 설정을 'USB(에 연결된 장치)'로 바꿔줘야 한다

> Micro SD 카드에 EEPROM 설정 이미지를 올린 뒤 라즈베리파이를 부팅시켜 EEPROM 설정을 바꿔주는 과정이 필요하다

 

Micro SD 카드를 SD카드 리더기에 삽입한 뒤 PC에 연결해주자 (미리 포맷해둘 필요 없음)

 

Raspberry Pi Imager 초기 화면에서 '운영체제 선택' (Operating System) 클릭 후 'Misc utility images (Bootloader EEPROM configuration, etc)' 선택

'Bootloader' 선택

'USB Boot' 선택

Pi Imager 초기 화면의 운영체제가 'USB BOOT'로 바뀐 것을 볼 수 있다

'저장소(Storage)'를 클릭해서 Micro SD 카드를 선택해주자

'쓰기(Write)'를 클릭하면 부트로더 이미지를 SD 카드에 쓰게 된다

SD카드 내 데이터를 모두 삭제하고 부트로더 이미지를 올리게 된다 (경고 메시지박스 팝업됨)

약 1~2분 정도 기다리면 이미지 쓰기 완료!

SD 카드 내부를 보면 .bin 파일 3개, .sig 파일 2개가 생성된 것을 확인할 수 있다

3. 라즈베리파이 EEPROM 부트로더 설정 변경

앞서 EEPROM 부트로더를 USB Boot로 변경하는 설정 파일을 담은 Micro SD 카드를 라즈베리파이에 삽입한 뒤 전원을 인가한다

전원 인가 후 부트로더 설정 중에는 녹색 LED가 계속 켜져있게 되며, 설정 완료 후에는 녹색 LED가 일정 간격으로 깜빡이게 된다 (부트로더 설정은 굉장히 빨리 수행된다)

설정 완료 후 라즈베리파이 전원을 제거하고 SD 카드도 빼준다

4. Raspberry Pi OS 설치

USB 플래시 메모리에 Raspberry Pi OS를 설치해야 하는데, 약간 번거롭더라도 Micro SD 카드에 OS를 구운 뒤 부팅 후 USB에 복사하는 방법이 제일 확실한 것 같다

별도로 Raspberry Pi OS가 설치된 Micro SD 카드가 없다면, 앞서 EEPROM Bootloader 이미지를 구울 때 사용한 SD 카드를 재활용해서 OS를 설치해보자 

※ Raspbian은 이전에 불리던 이름이고, 요즘은 Raspberry Pi OS가 정식 명칭이라고 한다 ㅋㅋ 괜히 라즈비안이라는 용어 썼다가 아재소리 듣지 않도록 하자

 

다시 Raspberry Pi Imager를 연 뒤 '운영체제' - 'Raspberry Pi OS (32-bit)'를 선택

'저장소(Storage)'에서 위에서 한 것과 동일하게 Micro SD 카드 선택 후 설정 창 열기

SSH 사용 여부, 사용자 이름 및 패스워드, Wi-Fi SSID 설정 등 사전에 설정해두면 유용한 정보들을 미리 입력해줄 수 있다 (SSH만 연결되면 굳이 귀찮게 HDMI로 모니터에 연결할 필요가 없다!)

설정 완료 후 '쓰기(WRITE)'를 클릭하면 Raspberry Pi OS를 클라우드에서 다운로드받아서 SD카드에 구워준다 (넉넉하게 10분 정도 걸린다고 생각하면 된다)

5. Micro SD 카드로 부팅 후 기본 설정

Raspberry Pi OS가 설치된 Micro SD 카드를 라즈베리파이에 삽입한 뒤 전원을 인가해준다

※ EEPROM 부트로더 설정에 따라 USB 디바이스에서 OS를 탐색한 뒤 SD카드 부팅으로 넘어가기 때문에 공장 초기 세팅보다는 부팅 시간이 더 소요된다

 

앞서 설정한 Wi-Fi 라우터(공유기)에서 라즈베리파이의 IP 주소를 확인해준다

ipTime 공유기에서의 예시

이제 PuTTY나 VSCode 등 SSH(Secure Shell) 원격 접속 기능을 사용해 해당 IP 주소의 22번 포트로 접속해보자

VSCode SSH 원격 접속 예시

터미널에서 라즈베리파이 설정 (rasp-config)를 열어보자

$ sudo raspi-config

VSCode > SSH > rasp-config 예시

'2 Display Options' - 'D5 VNC Resolution'에서 최대 해상도(1920x1080)를 선택해주자

'3 Interface Options' - 'I3 VNC'를 선택해 RealVNC 서버 기능을 활성화해주자

설정 완료 후 재시작(reboot) 해주자

RealVNC로 라즈베리파이 IP 주소의 5900 포트로 원격 접속해보자

RealVNC 원격 접속 테스트

6. USB 플래시 드라이브에 OS 복제

USB 부팅에 사용하고자 하는 USB 플래시 드라이브 혹은 SSD를 라즈베리파이의 USB 3.0 포트 (파란색 포트)에 삽입한 뒤 시작메뉴 - Accessories - SD Card Copier 메뉴 선택 

※ USB 저장 장치는 미리 포맷해둘 필요 없다

Copy From Device는 Raspberry Pi OS가 설치된 Micro SD 카드의 파티션을 선택, Copy To Device는 USB 디바이스 선택 후 'Start' 클릭

USB 장치의 내용물이 전부 삭제된다는 경고 메시지박스가 팝업된다

'Yes'를 클릭해서 계속 진행

10분 정도 소요되니 여유롭게 커피 한잔 때리고 오자

Copy complete. 메시지박스가 뜨면 복사 완료!

7. USB 플래시 메모리로 부팅

라즈베리파이의 전원을 끈 뒤 Micro SD 카드를 제거하고 USB를 꽂아둔 채로 다시 전원을 인가해보자

디스크 사용량 분석 시 유용하게 사용할 수 있는 baobab을 설치해보자

우선 업그레이드 가능한 패키지들을 전부 업데이트해주자

(SSH를 통해서 해도 되고, VNC에서 lxterminal을 통해서 해도 좋다)

※ Raspberry Pi OS 초기 상태라면 설치해야할 게 상당히 많다~

$ sudo apt update
$ sudo apt upgrade

업그레이드 완료 후 baobab을 설치해주자

$ sudo apt install baobab

baobab을 실행해보자

(터미널에서 baobab을 실행해도 되고, 시작메뉴 - System Tools - Disk Usage Analyser를 클릭해도 된다)

디스크 용량이 240.5GB로 정상적으로 측정되는 것을 확인할 수 있다!

OS 설치 후에 기본 패키지 업그레이드만 설치했을 뿐인데 벌써 4.2GB나 소모(?)됐다


아무래도 라즈베리파이에서 16GB SD 카드는 더이상은 못쓸 것 같다 ㅋㅋ

IoT 엣지 디바이스로 쓰고 있는 녀석은 32GB SD 카드로 겨우겨우 버티고는 있는데, 나중에 시간내서 이녀석도 USB 메모리나 SSD로 바꿔줘야겠다! (256GB USB 메모리는 삼성이나 샌디스크 제품들은 대충 2만원 초중반대로 구할 수 있다)

 

MySQL이나 MongoDB같은 데이터베이스를 돌리기 위해 수백GB의 용량이 필요하다면 USB 저장장치에 OS을 얹어서 쓰는게 가장 합리적인 선택이 아닐까 싶다 

물론, 읽기/쓰기 속도 및 수명 등 거의 모든 측면에서 SSD가 SD 카드에 비해 월등히 우수하므로, 라즈베리파이를 하드코어하게 사용할 계획이라면 이 글에서와 같이 초기 세팅부터 USB 부팅을 도입하는 걸 고려할 만 하다 (SSD는 전력 소모 문제 때문에 외부 전원 연결이 필수불가결하므로.. R/W 속도를 조금 손해보더라도 HW 부피를 줄이려면 USB 플래시 메모리도 나쁘지 않은 선택지!)

 

끝~!

 

[Reference]

https://www.tomshardware.com/how-to/boot-raspberry-pi-4-usb

 

반응형