라즈베리파이에 Ubuntu 20.04 LTS 설치하기

mAy-I Tech Blog
8 min readSep 26, 2020

--

안녕하세요! mAy-I의 엔지니어 고강련입니다 :)

저번의 ‘라즈베리파이에 라즈비안 설치하기’ 에 이어서 라즈베리파이에 Ubuntu 20.04 LTS 설치하는 방법을 가져왔습니다. 라즈베리파이라는 하드웨어를 사용하는 데 보편적인 라즈비안을 사용하기 보다, 기존에 사용하던 우분투를 선호하시는 분들도 많습니다.

본격적인 세팅법에 앞서 꼭 필요한 것들을 준비해주세요.
- Raspberry Pi 3 Model B+ 또는 Raspberry Pi 4 Model B
- 4GB 이상의 sd 카드 + sd 카드 컨버터

— — — — — — — — — — — — — — — — — — — — — — — — — —

| 목록 |

  1. sd 카드 포맷
  2. Ubuntu 이미지 파일 sd 카드에 굽기
    2–1) Ubuntu 이미지 파일 다운로드
    2–2) Ubuntu 이미지 파일 압축 해제
    2–3) 이미지 파일 sd카드에 굽기 [Win32DiskImager 사용]
    2–4) 라즈베리파이에 sd card 삽입 후 부팅시도
  3. 우분투 설정하기 (network, ssh, timezone)
    3–1) network 설정(wifi, 이더넷)
    3–2) ssh 설정
    3–3) timezone 설정
    3–4) GUI 설정

— — — — — — — — — — — — — — — — — — — — — — — — — —

1. SD 카드 포맷

  • 운영체제를 설치하기 전에 sd card format을 진행해봅시다.
  • 라즈베리파이의 부트로더가 FAT16, FAT32 등의 FAT 파일 시스템을 사용하기 대문에 이 포스팅에서는 format을 두 번 진행하게 됩니다.
  • sd card format을 하는 방법은 이전 포스팅의 ‘라즈베리파이에 라즈비안 설치하기’ 의 방법과 동일하기에해당 포스팅의 1번에 따라 진행하시면 됩니다.

— — — — — — — — — — — — — — — — — — — — — — — — — —

2. Ubuntu 이미지 파일 sd 카드에 굽기

  • sd card format을 완료하셨다면 Ubuntu 이미지 파일을 sd 카드에 구워 부팅 디스크로 만들어줍니다.

2–1. Ubuntu 이미지 파일 다운로드

  • 아래의 링크에서 ubuntu 이미지 파일을 다운받아 주세요.
    https://ubuntu.com/download/raspberry-pi
  • 자신이 갖고있는 Rpi 버전에 맞춰서 다운받아야 합니다. (저는 Rpi 3, 64-bit 다운받을 것이기 때문에 아래 빨간표시한 파일을 다운받았습니다)
Rpi3, 64-bit를 클릭하기 위한 화면

2–2. Ubuntu 이미지 파일 압축 해제

  • 2–1에 따라 이미지 파일을 다운받을 경우 ‘ubuntu-20.04-preinstalled-server-arm64+raspi.img.xz’ 과 같은 파일이 다운받아졌을 텐데, 이는 압축파일 이므로 압축해제를 해주어야 합니다.
  • 윈도우의 기본적인 압축 해제방법으로 할 수 없어서 7-Zip을 설치해 압축을 해제하였습니다. 압축 해제시 아래와 같은 파일이 생성됩니다.
7-Zip을 사용해 압축 해제하는 모습
성공적으로 압축 해제 후 나온 폴더

2–3. 이미지 파일 sd카드에 굽기 [Win32DiskImager 사용]

  • raspi.img.xz 파일이 아닌 압축해제한 raspi.img 파일을 선택하고, Write를 눌러 sd카드를 구워줍니다.
  • 정상적으로 완료되었다면 sd카드 내용이 아래처럼 바뀐 것을 확인할 수 있습니다.

2–4. 라즈베리파이에 sd card 삽입 후 부팅시도

  • 화면 console 창에 무엇이라도 나와야 합니다. (GUI가 포함되지 않아서 처음에는 text로 보일 것입니다.)
  • 로그인하라고 하는 창이 뜨면 5분정도 기다리고, 다시 한 번 더 로딩 후 로그인 텍스트가 떴을 때 입력해야 합니다. (맨 처음에 나오는 login 텍스트는 아직 설정 전이라 제대로 된 비밀번호를 입력해도 틀렸다고 나옵니다.)
  • 초기 id, password는 ubuntu / ubuntu 입니다.
  • 초기에 로그인시 비밀번호를 바꾸라고 하는데, 기존 비밀번호를 입력 후 새 비밀번호 입력을 제대로 하셔야 합니다.

— — — — — — — — — — — — — — — — — — — — — — — — — —

3. 우분투 설정하기 (network, ssh, timezone)

3–1. network 설정(wifi, 이더넷)

  • /etc/netplan/50-cloud-init.yaml 이라는 파일을 수정해 주어야 합니다. (파일명은 다를 수 있으나, 확장명이 yaml인 파일이 한 개 있을 것입니다.)
  • sudo nano /etc/netplan/50-cloud-init.yaml
  • ethernets은 라즈베리파이에 UTP 케이블을 연결 후 고정 ip를 설정해야 할 경우 설정법이며 wifis는 wifi를 설정하는 방법입니다.
# /etc/netplan/50-cloud-init.yaml
network:
ethernets:
eth0:
dhcp4: no
addresses: [192.168.0.17/24]
gateway4: 192.168.0.254
nameservers:
addresses: [8.8.8.8]
optional: true
version: 2
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
"wifiname":
password: "123456789"
  • 위의 방법대로 내용을 변경하신 후에 Ctrl + O를 눌러 저장하시고, 빠져나와 아래 명령어를 입력해 변경한 설정을 적용시킵니다.
sudo netplan generate # 들여쓰기가 잘 맞는지, 문법이 잘 맞는지 확인
sudo netplan apply # 적용시키기

3–2. ssh 설정

  • 아래의 명령어를 입력해 ssh를 설정할 수 있습니다.
sudo apt-get install openssh-server
sudo ufw allow 22
sudo /etc/init.d/ssh restart
sudo systemctl enable ssh
sudo systemctl status ssh # ok 인지 확인
sudo apt-get install firewall-config
sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload
sudo reboot
  • 위의 방법대로 진행했는데 안된다면 아래를 실행해주세요.
# 이래도 안되면 key 있는지 확인
systemctl status ssh.service
# 빨간색으로 error나오면 key 없는것 = 키 생성
sudo ssh-keygen -A
sudo systemctl restart ssh
# 다시 확인해서 key 있는지 확인
systemctl status ssh.service
# 이제 연결 되어야 함!

3–3. timezone 설정

  • date 명령어 입력시 KST가 아닐 경우 한국시간이 아닙니다. 개발하는데 컴퓨터 자체 시간을 불러와야 하는 경우가 있으므로 아래의 내용대로 변경하실 수 있습니다.
# 현재시간 체크 : KST라고 뜨면 한국시간임
date
# 시간 설정하기
tzselect
# 없으면 설치
sudo apt-get install tzdata
# 시간 선택하기
4) Asia - 23) Korea (South) - 1) Yes 클릭
# profile에 추가해주기
# 홈 디렉토리로 이동
cd ~
sudo nano .profile
# 맨밑에 아래처럼 적기
TZ='Asia/Seoul'; export TZ
# 재시작
source ~/.profile

3–4. GUI 설정

  • Rpi3 에서는 GUI를 설정하면 너무 느리기에 하지 않는 것을 추천하나, 꼭 필요할 경우 아래의 방법대로 ubuntu-desktop을 설치해 설정할 수 있습니다.
sudo apt-get install ubuntu-desktop

--

--