Raspberry Pi 3 Model B를 SSD에서 부팅
Source: Dev.to
위 링크에 있는 전체 글 내용을 제공해 주시면, 해당 내용을 한국어로 번역해 드리겠습니다.
소개
여러분, 안녕하세요! 이 글에서는 SSD에서 Raspberry Pi 3 Model B를 USB‑부팅한 경험을 공유하려고 합니다. 거의 1년 전에 이 작업을 했지만, 드디어 글로 정리하게 되었습니다 (지연해서 죄송합니다 — xD).
제가 놓친 부분이 있으면 알려 주세요. 피드백을 환영합니다!
사용한 부품
| 항목 | 수량 |
|---|---|
| Raspberry Pi 3 Model B | 4 |
| Raspberry Pi 3 Model B+ | 1 |
| 전원 공급 장치 (적절한 전압 및 전류) | 5 |
| 솔리드‑스테이트 드라이브 (SSD) | 5 |
| USB‑to‑SATA 어댑터 | 5 |
Source:
SSD 부팅
많은 블로그 글, 포럼 스레드, 그리고 심지어 LLM이 생성한 가이드에서도 Pi 3 Model B를 USB 부팅하는 방법을 설명하고 있습니다. 아래는 제가 직접 시도해 성공한 단계들을 간결하게 정리한 내용입니다.
1. SD 카드에 OS 업데이트
sudo apt update -y && sudo apt full-upgrade -y
2. USB 부팅이 활성화되어 있는지 확인
vcgencmd otp_dump | grep 17
가능한 출력
17:1020000a # USB 부팅 비활성화
17:3020000a # USB 부팅 활성화
3. USB 부팅 활성화 (필요한 경우)
/boot/firmware/config.txt 에 다음 줄을 추가합니다.
(예전 튜토리얼에서는 /boot/config.txt 를 언급하지만, 현재는 해당 위치가 더 이상 사용되지 않습니다.)
program_usb_boot_mode=1
program_usb_boot_timeout=1
4. SD‑카드 이미지를 SSD에 복제
# /dev/mmcblk0 → SD 카드 (내 경우)
# /dev/sdb → USB‑SATA 어댑터에 연결된 SSD
sudo dd if=/dev/mmcblk0 of=/dev/sdb status=progress bs=4M conv=fsync
참고: 시스템에 맞게 장치 이름(
mmcblk0,sdb)을 조정하세요.
5. SSD에서 부팅
- Pi 전원을 끕니다.
- SD 카드를 제거합니다.
- USB‑to‑SATA 어댑터에 연결된 SSD를 연결합니다.
- Pi 전원을 다시 켭니다.
모든 과정이 정상적으로 진행되었다면, Pi가 SSD에서 부팅됩니다. 이제 파티션 크기를 조정하거나 벤치마크를 실행하는 등 자유롭게 사용할 수 있습니다.
결과: 이 방법은 Pi 3 Model B+에서는 성공했지만 내가 보유한 Raspberry Pi 3 Model B 5대 중 4대에서는 실패했습니다. 다음 섹션에서는 그 이유를 설명합니다.
Pi 3 Model B와 Pi 3 Model B+의 차이점
나는 **Pi 3 Model B+**에서 위의 단계를 먼저 수행했으며, 부팅이 완벽히 이루어졌다. 동일한 절차를 네 대의 Pi 3 Model B 보드에 반복했지만, /boot/firmware/config.txt에 program_usb_boot_timeout=1을 추가한 후에도 동일한 “USB 부팅 불가” 결과가 나타났다.
이는 같은 계열임에도 불구하고 Model B와 Model B+ 사이에 미묘한 부팅 관련 차이가 존재한다는 결론을 내리게 만들었다.
내 해결책 (우연히)
많은 시도 끝에 Model B 보드 중 하나가 마침내 SSD에서 부팅되었습니다. 터미널에서 확인하고 I/O 속도 테스트를 실행했으며, 모든 결과가 OS가 SSD에서 실행되고 있음을 확인했습니다.
무엇이 바뀌었나요?
SD 카드를 삽입한 상태에서 SSD도 연결해 두었다는 것을 깨달았습니다. 루트 파일 시스템이 USB SSD에 있더라도, Pi는 부팅 과정을 시작하기 위해 여전히 SD 카드가 필요했습니다.
가설 검증
- SD 카드를 포맷합니다(파일 시스템은 아무 것이어도 됩니다).
- SSD의
/boot/디렉터리 내용을 새로 포맷한 SD 카드에 복사합니다.
두/boot디렉터리는 동일해야 합니다.
이 작업을 수행한 후 Pi는 다시 SSD에서 부팅되었으며, Model B는 OS가 어디에 있든 부팅을 시작하려면 SD 카드가 필요함을 확인할 수 있었습니다.
중요한 세부 사항
- 하나의 SSD에서
/boot/firmware디렉터리를 모든 SD 카드에 복사하지 마세요. - 각 SSD는
/boot/firmware/cmdline.txt에 참조된 고유한 UUID를 가지고 있습니다. - 각 SSD에 맞는
/boot/firmware를 해당 SD 카드에 복사하거나,cmdline.txt를 편집하여PARTUUID=가 올바른 디스크를 가리키도록 하세요.
예시 cmdline.txt (한 줄, 줄 바꿈 없음):
console=serial0,115200 console=tty1 root=PARTUUID=e000a75d-02 rootfstype=ext4 fsck.repair=yes rootwait cfg80211.ieee80211_regdom=US cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory
운영 체제 업그레이드
위의 모든 단계는 최신 Raspberry Pi OS가 Debian 12 (bookworm) 기반일 때 수행되었습니다. 현재 Raspberry Pi OS는 Debian 13 (trixie) 를 탑재하고 있습니다. 새로 포맷하고 처음부터 시작하는 대신, 저는 제자리에서 대규모 업그레이드를 수행했습니다.
업그레이드 단계
-
APT 소스 리스트 편집
sudo nano /etc/apt/sources.list sudo nano /etc/apt/sources.list.d/raspi.listbookworm라는 모든 항목을trixie로 교체합니다. -
패키지 정보 업데이트 및 업그레이드 수행
sudo apt update sudo apt full-upgrade -y -
재부팅
sudo reboot
재부팅 후 시스템은 SSD(위에서 설명한 대로 SD 카드가 함께 장착된 상태)에서 부팅되면서도 Debian 13 기반의 최신 Raspberry Pi OS를 실행합니다.
시스템 업데이트
-
패키지 인덱스 새로 고침
sudo apt update -
최신 버전의 패키지 관리자를 설치
sudo apt install -y apt dpkg -
새로운 의존성을 가져오지 않고 업그레이드
sudo apt upgrade --without-new-pkgs모든 것이 정상인지 확인하세요.
-
전체 업그레이드 수행
sudo apt full-upgrade -
재부팅
sudo reboot
이 단계들은 어떤 설정에서도 충분합니다(**Raspberry Pi 3 Model B+**에서도 작동합니다). 그러나 SD 카드에서 먼저 부팅하고 SSD에서 부팅하지 않기 때문에 몇 가지 추가 단계가 필요합니다.
업그레이드 후 부트 파티션 조정
Linux 커널 이미지는 /boot 디렉터리에 있습니다. 라즈베리 파이는 SD 카드에서 부팅하므로 이전 설치의 부트 파일이 여전히 존재합니다. 업그레이드 후 커널이 기대했던 6.12(Debian 13에 포함된 버전) 대신 6.1 버전으로 남아 있었습니다.
업그레이드를 100 % 완료하려면, Pi가 SSD에서 부팅하도록 했던 단계를 다시 수행하십시오:
-
SD‑card 부트 파티션 마운트
sudo mount /dev/mmcblk0p1 /mnt/sdboot/ -
SSD에서 SD 카드로 펌웨어 복사
sudo cp -r /boot/firmware/* /mnt/sdboot/ -
재부팅
sudo reboot
이 단계를 완료하면 시스템이 새로운 커널로 부팅되고 업그레이드가 완전히 작동합니다.
컨테이너 사용
컨테이너(예: Docker) 또는 K3s와 같은 컨테이너 오케스트레이터를 실행할 계획이라면, /boot/firmware/cmdline.txt에 다음 커널 매개변수가 포함되어 있는지 확인하십시오:
cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory
이 옵션들은 컨테이너 런타임에 필요한 cgroup 기능을 활성화합니다.
References
- Official Raspberry Pi documentation – USB boot on Pi 3
- Various community blog posts and forum threads (links omitted for brevity)
참고 문헌
- 공식 Raspberry Pi 문서 – Pi 3에서 USB 부팅
- 다양한 커뮤니티 블로그 게시물 및 포럼 스레드 (링크는 간략히 생략)