본문 바로가기
Devops

[Raspberry Pi]라즈베리파이4 Ubuntu Server 시작하기

by heekng 2022. 4. 19.
반응형

라즈베리파이4 Ubuntu Server 시작하기

AWS EC2 프리티어를 사용하여 개인 웹 서버를 구축하여 사용중에 벌써 1년이 지났다.
새로운 계정을 만들어 AWS를 이용하기에는 매번 서버 설정을 만져주어야 하기 때문에 번거롭고, 프리티어가 아닌 AWS를 통해 정기적으로 지출되는 비용이 부담되어 라즈베리파이를 사용해 개인 웹 서버를 구축하기로 결정했다.

준비

  1. 라즈베리파이4 4G
  2. 32GB micro SD card
  3. 외장 SSD 500GB
  4. 5V 3A type-c 충전기
  5. micro HDMI to HDMI 케이블

OS 준비

라즈베리파이는 기본적으로 microSD카드를 스토리지로 사용한다.
microSD카드로 서버를 이용하면 느린 속도에 불편함이 있다.
때문에 외장 SSD를 사용하기로 결정했다.

부트로더 업데이트

라즈베리파이4에는 USB를 통한 부팅이 기본 설정되어있지 않다.
Raspberry Pi Imager을 통해 SD카드에 라즈베리파이 기본 부팅 옵션을 USB부팅으로 설정하는 부트로더를 설치해야 한다.

  1. Raspberry Pi Imager에 접속하여 현재 사용하는 OS에 맞는 버전을 설치한다.
  2. Raspberry Pi Imager를 실행한다.
  3. 운영체제를 Misc utility images > Bootloader > USB Boot으로 설정한다.
  4. SD카드를 선택하고 쓰기를 선택한다.
  5. 라즈베리파이에 SD카드를 넣고 부팅 후 10~20초정도 기다린다.
  6. 끝.

외장 SSD에 Ubuntu Server 이미지 쓰기

나는 GUI가 필요하지 않기 때문에 Ubuntu Server를 사용하기로 했다.
문제는 익숙한 20.04버전을 설치하니 부팅이 정상적으로 진행되지 않았고, 라즈베리파이4는 USB 통해 20.04버전을 부팅하지 못하는 이슈가 있다는 것을 확인했다.
따라서 USB로도 정상적으로 부팅이 가능한 Ubuntu Server 21.10버전을 선택했다.

  1. 라즈베리파이 우분투에 접속해 Ubuntu Server OS Image를 다운로드한다.
  2. Raspberry Pi Imager를 실행한다.
  3. 운영체제를 다운로드받은 우분투 이미지로 선택한다.
  4. 외장SSD를 선택한 후 쓰기를 선택한다.
  5. 끝.

라즈베리파이 Ubuntu 설치

이제 준비가 모두 완료되었으니 라즈베리파이에 ubuntu를 설치한다.
흔한 방법으로 모니터 없이 부팅하기 위해 ubuntu 이미지가 설치된 usb에 SSH 파일을 생성하여 바로 ssh 접속을 하는 경우도 있지만 부팅이 제대로 되지 않는 경우 어떤 상황인지 파악하기 어려운 문제를 계속 겪었다.
따라서 모니터를 꼭 사용하여 기본 설정을 진행하는 것을 권장한다.

microHDMI to HDMI 다이소에서 5000원이면 구매한다..

  1. 라즈베리파이 전원을 해제한다.
  2. microSD카드를 제거하고 외장SSD를 연결한다.
  3. 키보드, 랜케이블, HDMI 케이블을 연결한 후 전원을 넣는다.
  4. Ubuntu 로그인 화면 출력까지 대기한다.
    • 혹시 어떠한 한 화면에서 멈춰있다면 Enter을 한번 입력해보면 로그인 화면이 뜬다.
  5. user: ubuntu / password: ubuntu 입력하여 로그인한다.
  6. 기존 비밀번호와 새로운 비밀번호를 입력하여 ubuntu 계정의 비밀번호를 재설정한다.
  7. 끝.

초기 필수라 생각되는 설정

ubuntu만 설치하였다고 바로 ssh 접속을 할 수 있는 것은 아니다.
그리고 root계정의 비밀번호 설정, 시간대 설정은 기본으로 처음부터 하는 편이다.

root 계정 비밀번호 설정

# root 비밀번호 설정
sudo passwd root

SSH 접속 설정

# openssh-server install
sudo apt-get install openssh-server
# 22번 포트 ufw 허용
sudo ufw allow 22
# ssh restart
sudo /etc/init.d/ssh restart
# ssh enable
sudo systemctl enable ssh
# ssh 상태 확인
sudo systemctl status ssh

위와 같이 설정 후 ip addrs를 통해 현재 ip 확인 후 ssh 접속 확인

timezone 설정

Ubuntu의 기본 타임존은 한국이 아니다.
따라서 시간대를 한국으로 변경한다.

# 현재 시간대 확인
date
# 시간 설정
tzselect
# profile에 timezone 추가
vi ~/.profile
TZ='AsiaSeoul'; export TZ; 입력
# 적용
source ~/.profile

추가

외장 SSD를 사용하면서 reboot 명령어 사용시 ext4 error과 함께 부팅이 되지 않는 상황이 발생했다.
이유를 알아보니 상시로 연결되어있는 SSD가 재부팅을 위해 꺼질 때 전원이 내려가고, 다시 전원이 인가되지 않아 발생하는 오류로 예상된다.
재부팅의 경우는 자주 일어나지 않으나 전원을 아예 해재하고, 다시 입력하는 방식으로 사용해야 할 것 같다.

반응형