스마트홈3. 라즈베리파이4 SSD로 부팅하기

홈어시스턴트를 라즈베리파이에 설치해 SD카드로 사용하다가 어느 순간 갑자기 SD카드가 망가져서 복구하느라 애먹었다는 이야기가 워낙에 많이 있어서 SSD로 변경하기로 했다. 운좋게도 11월 말에 Raspberry Pi에서 USB 부팅을 공식지원하는 업데이트가 올라오면서 간단하게 작업을 할 수 있었다. – 2020년 12월 5일

참고: https://jamesachambers.com/new-raspberry-pi-4-bootloader-usb-network-boot-guide/

5만원 정도를 투자해 업그레이드를 해주기로 했다.

케이스(=어댑터) 구입시 UASP 지원 되는 제품을 사야 boot drive로 이용 가능하다. Orico 제품은 포럼에서 언급된 제품 https://www.raspberrypi.org/forums/viewtopic.php?t=246157

–> 그런데 작업을 끝내고 나니 USB3.0 포트로 연결해서 제대로 호환이 안 된다. 다른 제품을 찾아서 쓰실 것을 추천함.

주문한 물건들이 도착했다

홈어시스턴트에 올라온 문서를 토대로 작업을 진행했다.
https://community.home-assistant.io/t/installing-home-assistant-on-a-rpi-4b-8gb-with-ssd-boot/230948

우선, 현재 SD카드에서 구동중인 HA를 스냅샷을 만들어서 나중에 복원하는 데에 사용할 것이다. 스냅샷 생성에 5분 정도 걸렸다.

samba share를 이용해 backup 폴더에 생긴 tar 파일을 PC에 저장해두었다. 홈어시스턴트를 설치해 사용하던 이 SD카드는 날려버릴 예정이다.

Raspberry Pi OS 설치를 위해 Raspberry Pi Imager를 다운로드 받았다.

HA를 shutdown하고 라즈베리파이를 끄고 SD카드를 꺼내서 컴퓨터에 삽입.
좀전에 받아놓은 Raspberry Pi Imager를 이용해 SD 카드에 최신 Raspberry Pi OS 설치했다.

write가 진행되는 동안에 사용한 HASSOS를 다운로드 받았다. 내가 작업하는 시점 기준으로 최신 버전이 Development 5 build 6 (5.6)이다. 5.4에 SSD부팅 문제가 있었다고 하는데 5.5부터 해결된 듯 하다. 내가 다운 받은 파일은 hassos_rpi4-64-5.6.img.xz 다운로드 링크:

https://github.com/home-assistant/operating-system/releases

SD카드에 Raspberry Pi OS를 올리는데(write and verify) 15분 걸렸다.

모니터, 키보드, 마우스 등을 연결하지 않은 세팅(headless)으로 작업을 진행할 예정이어서 SD카드를 컴퓨터에서 뽑았다가 다시 꽂아서 뜨는 드라이브에 ssh 라는 아무 내용 없는 파일을 하나 저장해줬다. 이렇게 해야 SSH 접속이 1회 가능해진다. 이렇게 조치한 후에 SD카드를 RPi에 넣고 부팅

뿌띠로 접속 성공! 이제 라즈베리파이의 EEPROM 업데이트 작업 시작

여기서 시키는대로 진행

내가 참고한 문서(링크)랑 약간 다른 부분이 있었다. 아마 Raspberry Pi OS의 버전 차이인 듯 하다.
Advanced options -> Bootloader Version -> Use the latest version boot ROM software -> Reset boot ROM to defaults? NO!

Advanced options -> Boot Order -> USB Boot
이렇게 해서 앞으로 USB에 연결된 SSD로 부팅하도록 세팅.

이제 SD카드로 하는 작업은 끝났고, SSD를 세팅해서 연결해줄 차례.
앞서 받아놓은 HASSOS 이미지를 BalenaEtcher를 이용해 SSD에 올리도록 한다.
플래시 하는 속도가 예전에 SD카드에 올릴 때에 비해 어마어마하게 빠르다!!!

SSH 콘솔에서 shutdown 시킨 다음에 전원을 내리고
SD카드를 뽑고, USB에 SSD를 꽂고
다시 전원을 올리고
then pray for homeassistant:8123 to load…

10분즘 기다렸는데, 접속이 된다! 🎉🎉🎉🎉🎉🎉🎉

처음에 받아놨던 스냅샷(tar파일)을 업로드하면 끝……인데 업로드를 하니까 오류가 발생한다.
Upload failed – 502 Bad Gateway

구글링을 좀 해보니까 비슷한 증상을 겪은 사람들이 많은 것 같다. 해결방법은 다음과 같이

1) 일단 계정을 만들어서 처음부터 세팅
2) Samba share add-on 설치
3) backup 폴더에 스냅샷 tar파일을 업로드
4) Supervisor -> Snapshot에 들어가서 wipe and restore 실행!

해결법 출처
1) https://community.home-assistant.io/t/0-116-onboarding-to-a-fresh-install-bad-gateway-message/235519/20
2) https://github.com/home-assistant/frontend/issues/7316#issuecomment-708186872

부팅이 30분씩 걸리길래 문서(링크)에 나온대로 USB3에서 USB2 포트로 바꿔 끼우니까 제속도가 나오는 것 같다. 나중에 기회가 되면 국내에서 구할 수 있는 다른 SSD 케이스로 바꿔줘야겠다.

후기

  1. 큰 어려움 없이 SSD 체제로 넘어갈 수 있었다.
  2. HASSOS를 올린 뒤에 충분히 30분 이상 기다려주면 스냅샷 업로드에서 502 오류가 발생하는 것을 넘어갈 수 있지 않았을까 의심된다.
  3. 스냅샷 복원 후 ESPHome 노드 하나가 연결이 안 돼서 제거했다가 다시 연결시켜주니까 HA에서 인식되었다. Add-on들도 오작동을 하는 것 같았는데, HA를 한 번 재시작시키고 충분히 기다려주니까 잘 작동했다. Headless로 진행하는 상황에선 급하지 않게 한타임씩 기다려줘야 하는 것 같다.
  4. 아직 속도 차이는 체감이 안 된다. 30초 간격으로 온습도 센서를 24시간 기록한 뒤에 history를 로딩해보면 체감이 가능할 것 같다.
  5. 블랙박스처럼 언제든지 데이터가 날아갈 수 있다는 불안감이 있었는데 이제 좀 마음이 놓인다.

2020년 12월 12일 업데이트

발열을 확실하게 잡고 싶어서 80mm 팬을 달아서 케이스를 3D프린터로 만들었다.
SSD는 여전히 USB 2.0 포트를 이용 중.

CC BY-NC-SA 4.0 This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Leave a Comment

Time limit is exhausted. Please reload CAPTCHA.