
지난 홈랩 구축기 1️⃣ - Hardware편 에 이어 이번에는 물리적으로 결합만 시킨 라즈베리파이에 소프트웨어를 설치하는 작업을 해보려고 합니다.
Hardware 편에서 짧게 얘기했듯이
초기 라즈베리파이(출고 직후)는 OS가 없는 상태입니다. (본체에 내장 하드 또한 없는 상태구요.) 그렇기 때문에 첫 부팅을 위해 OS Image 가 구워진 micro SD 혹은 USB를 꽂아주어야 합니다.
위와 같은 상황이기에 OS Image를 다운로드 받는 것부터 시작하려고 합니다.
순서
- Raspberry Pi OS Image 굽기(Imager 활용)
- 1차 부팅 및 시스템 최신화
- NVMe SSD 인식을 위한 펌웨어(EEPROM) 설정
- SD 카드의 데이터를 SSD로 복사(SD Card Copier)



Device 를 선택하는 화면이 나옵니다.

OS를 선택하는 화면이 나옵니다.Raspberry Pi OS (64-bit)을 설치해도 되지만, 저는 리소스 1MB라도 아껴야하기 때문에 Raspberry Pi OS(other) -> Raspberry Pi OS Lite (64-bit) 를 선택해주었습니다.
이 단계에서는 OS를 커스텀하는 단계들이 연달아 나옵니다.
Hostname

Localisation

User

Wi-Fi

Remote access

password로 지정했습니다.Raspberry Pi Connect

Write image

WRITE 버튼을 누르면 SD카드에 OS를 굽기 시작합니다.


(SSH 접속이 성공했다는 가정 하에 진행합니다. SSH 접속 중 제가 겪은 트러블슈팅은 다음 포스트에 공유하겠습니다!)
# 1. 패키지 리스트 업데이트
sudo apt update
# 2. 실제 패키지 업그레이드
# 의존성 관계가 바뀐 중요한 시스템 패키지까지 안전하게 처리해주기 때문에 `upgrade` 보다 `full-upgrade`를 권장.
sudo apt full-upgrade -y
# 3. 재부팅
sudo reboot
- 라즈베리파이5는 기본적으로 SD 카드 부팅을 먼저 시도하도록 설정되어 있습니다.
- 또한, NVMe SSD를 사용하기 위한 PCIe 포트 설정도 확인해야 합니다.
sudo raspi-config

Advanced Options 을 선택합니다.

Boot Order 를 선택합니다.

NVMe/USB Boot 를 선택합니다. (이 설정을 해야 SD카드가 없을 때 파이가 SSD를 찾아 부팅합니다.)

**raspi-config 내에서 넘버링(A3, B2 등)은 자료마다 조금씩 차이가 있는 것 같습니다. 넘버링을 보고 선택하기보다 직접 옵션들을 읽고 선택하는 것이 좋을 것 같습니다.
sudo nano /boot/firmware/config.txt
명령어로 설정 파일을 열고, 맨 아래에
# Enable PCIe Gen 3 speed
dtparam=pciex1_gen=3
를 추가하고 저장합니다. (입력 후 Ctrl + O -> Enter -> Ctrl + X 순으로 커맨드를 입력해야 저장 후 나오기가 됩니다. / mac 기준)

sudo reboot
❗️당연히 잘 적용되었는지 확인을 해봐야 합니다.
# PCIe 링크 상태 확인
dmesg | grep pcie

link up, 8.0 GT/s 라는 문구가 보인다면 성공입니다.(5.0 GT/s 는 Gen 2의 속도입니다. 8.0이 Gen3의 속도이므로 이를 참고하시어 로그를 보시면 좋습니다.)❗️ 하지만, 로그를 자세히 보면 하단에
5.0 GT/s PCIe또한 찍혀 있는 것을 볼 수 있습니다.
로그를 조금 더 자세히 분석해보겠습니다. 우선 두 개의 링크가 뜨는 것을 확인할 수 있습니다. 이는 라즈베리파이5 내부에 서로 다른 두 개의 PCIe 통로가 존재하기 때문입니다.
1000110000.pcie (8.0 GT/s): 우리가 장착한 NVMe SSD가 연결된 외부 PCIe 포트입니다. 설정 후에 8.0 GT/s (Gen 3)로 잘 올라간 것을 확인하였으니 성공입니다.1000120000.pcie (5.0 GT/s): 라즈베리파이5 내부에 있는 RP1이라는 칩셋을 연결하는 통로입니다. 이 칩셋은 USB, 이더넷(LAN) 등을 제어하는데, 내부적으로 5.0 GT/s (Gen 2) 속도로 고정되어 작동합니다.
-> 고로 1000110000.pcie: link up, 8.0 GT/s PCIe x1 (!SSC) 가 로그에 잘 찍혀있다면, 우리가 시도한 Gen3 설정이 잘 되었음을 확인할 수 있습니다.
이제 하드웨어와 OS 최적화(Gen 3)까지 완벽하게 끝났으니, SD 카드의 데이터를 SSD로 복사하는 과정이 남아 있습니다.
# rpi-clone 도구 다운로드 및 설치
git clone https://github.com/billw2/rpi-clone.git
cd rpi-clone
sudo cp rpi-clone rpi-clone-setup /usr/local/sbin
# SD 카드의 OS와 설정값들을 NVMe SSD(nvme0n1)로 통째로 복사합니다.
sudo rpi-clone nvme0n1
Destination disk partition... 이라는 질문들이 나오는데 yes를 입력하며 진행하면 됩니다.❗️ 이번에도 설정들이 잘 적용되었는지 확인이 필요합니다.
# 시스템에 연결된 모든 블록 장치(저장 매체)의 정보를 확인하는 명령어
# List Block Devices
lsblk

하드웨어 설정에서 복잡한 작업이 다 끝났다고 생각했는데, 소프트웨어단에서의 작업은 다른 느낌으로 몹시 어려웠던 것 같습니다. 이렇게 초기 작업을 처음해보는터라 트러블슈팅하고 찾아보고, 시행착오를 겪으며 며칠이 걸린 것 같습니다. 실제 겪었던 자잘한 트러블슈팅을 한 번에 다루면 좋겠다고 생각하여 이번 포스트에서는 성공한 케이스만 기록했습니다. 한 번에 안 된다고 좌절하지 마세요... 끝까지 포기하지 않고 시도해보면 언젠가 되는 것 같습니다...ㅎㅎ
다음번 포스팅에서는 OS 설치를 하며 겪은 여러 이슈들과 고정 IP 할당에 대해서 다루어보겠습니다. 조금만 더 하면 온전한 홈서버를 구축하게 되네요. 긴 글 읽어주셔서 감사합니다. :)