라즈베리파이의 저장장치를 microSD→SSD로 바꾸기

By | 2025-11-08

테슬라메이트를 돌리고 있는 라즈베리파이4에는 저장장치로 32기가 짜리 microSD카드가 꽂혀있다. 구입 당시에 집에 굴러다니는 메모리를 꽂은것이다. 1년여간 잘 사용해오다가 겪은 문제가 두가지가 있었다. 하나는 사이트 자체가 매우 느려져서 접속과 초기화면, 메뉴 이동에 수십초~수분씩 걸리곤 했다. 1년도 안되서 이러면 앞으로는 어떻게 사용하지? 하는 걱정. 기기를 리부팅하니 속도는 원상복구가 됐다. 그러다가 10월중에 서버가 다운되서 거의 한달치 데이타가 날아가는 일이 있었다. PC와 다르게 부품을 업그레이드할 수 있는게 없고 그나마 할 수 있는 것이 저장장치로 사용하는 microSD를 외장SSD로 교체하는 것이다. SSD가 읽기쓰기 속도가 10배 이상 빠르니 성능향상을 기대해봄직 했다.

언제부터 그랬다고, 이젠 당연하게 chatGPT를 믿고 작업을 시작했다.

  • MicroSD의 데이타를 SSD로 클론 복사. 맥에서 raspberry pi imager 를 사용해서 복사하라고 했는데 구버젼의 앱을 기준으로 설명했는지, 해당하는 메뉴가 없었다.
  • 라즈베리파이에 외장SSD를 연결하고 sudo rpi-clone -f sda
  • 클론복사가 됐으니 이제 이 SSD로 부팅을 해야한다. 일단 microSD는 제거하고 외장SSD만 USB 3.0포트에 연결해둔다. 리부팅.
  • 다시 켜진 전원 LED를 확인하고 공유기 설정메뉴에서 내부 네트워크 목록을 살펴본다. 라즈베리파이가 붙지 않았다. ssh 연결도 되지 않는다. 부팅 실패다.
  • 오류메세지를 chatGPT에 넣으니 boot 파티션 이름(레이블)이 달라서 부팅이 안된다하여 sudo fatlabel /dev/sda1 bootfs 실행
  • 여전히 부팅 실패. 다른 USB3포트에 꽂아봐도 마찬가지.
  • USB2 포트에 꽂아보라고 함. 여전히 부팅 실패.
  • mnt/cmdline.txt 에서 PARTUUID 를 SSD의 값으로 바꾸라고 함. 바꿔줌, 부팅 성공. 테슬라메이트도 제대로 접속. 속도 매우 빠름;;
  • USB2.0 포트보다 전송속도가 10배 이상 빠른 USB3.0 포트쪽으로 붙일 방법 요청
  • /boot/firmware/cmdline.txt 에 quirks 넣기부터 추천. 다행이 부팅 성공했고 테슬라메이트도 제대로 접속 가능.
  • 테슬라메이트 화면 하단에 보니 업그레이드가 있다고 함. 기존 버젼은 1.2? 버젼인데 새 버젼은 2.2.0이다.
  • docker-compose pull, docker-compose down, docker-compose up -d 을 했더니 테슬라메이트 접속 불가.
  • 로그와 접속 결과를 보여달래서 보여줌.
  • 테슬라메이트 2.2.0은 Postgres 16이상만 지원하는데 현재 내 Postgres는 버젼 14라고 함.
  • DB날리고 새로 시작할 것인지, 보존할 것인지 물어봄. 당연히 1년여간의 테슬라메이트 기록을 날릴 수 없으니 보존 선택.
  • 바꾸라는대로 docker-compose.yml 에서 몇몇 줄의 내용을 바꿔줌.
  • 기존 DB를 dump 백업 (자야해서 백그라운드 작업 돌려놓고 취침, 다음 줄부터는 다음날 아침 작업)
  • 복원하는데 스키마가 이미 존재한다는 오류 계속 발생.
  • 혹시나 하고 접속해보니 접속은 되나, 모든 데이타가 날아간 상태.
  • DB 초기화하라는대로 하고 복원 명령 넣는데 계속 같은 오류 발생. 명령어가 미묘하게 다름.
  • chatGPT 무료버젼 사용량 만료됐다고 10여시간 뒤에 다시 해보라고 나옴.
  • 다행이, 오류나기 전 최초에 알려준 복원 명령으로 넣으니 제대로 복원됨.

교훈.

  • 99% chatGPT 도움으로 작업을 완료할 수 있었다. 1%는 검색.
  • chatGPT가 가끔 뜬금없는 답변을 할 때가 있다. 클론 백업을 하라는 맥용 앱 설명을 하는데, 해당하는 메뉴가 없길래 얘기했더니 예전 버젼엔 있었는데 지금은 없을 수 있다고. 맥 말고 라즈베리파이에서 바로 작업하란다. 그럴거면 진작에…
  • docker 명령어도 구버젼과 신버젼 명령어가 달라져서 정정 답변을 받았는데 진행하다보면 여전히 다른 버젼의 명령을 알려준다. 아까 답변의 예가 있으니 알아서 변환해서 사용했다. 기존 대화로부터 취득한 현재 사용자의 환경을 잘 기억하지 못하는 면이 있나보다.
  • 한창 오류가 해결되려고 하는 찰라, 무료버젼 사용량이 다 됐다고 10시간뒤에 다시 시도하거나 유료버젼 업그레이드를 하라고 한다. 옛날 유머중에 방위병은 전쟁나도 저녁6시에 칼퇴근 한다더니만 이게 그 짝이다. 방위가 퇴근하는 6시는 미리 시간을 가늠이라도 할 수 있지, 언제 오늘의 할당량이 소진되는지 사용량을 가늠할 수 없는 점 때문에 오도가도 못하는 난처한 상황에 처할 수 있겠다.
  • 테슬라메이트를 돌리면 기존의 차량에서, 앱에서 알 수 없는 어마어마한 데이터를 취득할 수 있는데 곰곰히 생각해보면 이게 무슨 가치를 주고 있나 싶을 때가 있다. 사실 10월에 한달치 데이타 수집이 안되고 있던 것도 그 시기에 앱을 한번도 열어보지 않았기에 알아차리지 못했던 것.
  • microSD→SSD 교체, 테슬라메이트와 DB 업데이트와 마이그레이션에 얼추 3시간 정도 소요됐다. 써보니, 바꿔보니… 처음 셋팅할 때 SSD로 할걸..
  • 안정성은 써 봐야알겠지만 microSD보다 떨어지진 않을테고, 속도는 전 비교할 수 없이 쾌적해졌다.
  • 대충 유지보수하면서 쓰고는 있으나, 테슬라메이트를 라즈베리파이에 셋팅하고 돌리는건 내 기준에서는 문턱이 꽤 높은 작업.
  • 1년 여간, 3만여 km 주행하면서 쌓인 DB용량은 약 800MB이다.

Leave a Reply

Your email address will not be published. Required fields are marked *