0. 설치 계기

현재, 리눅스를 써보기 시작한지 약 3개월정도 되었습니다.

집에 있던 약 10년 된 노트북이 버리기는 아깝고, 윈도우즈는 7도, 10도 너무 버겁게 돌아가서 리눅스를 써보기로 결심한 것이 계기가 되었네요.

리눅스에 대해 아무것도 모르는 초보자에게 가장 적합한 배포판이 무엇일까 검색해보니 우분투가 압도적으로 많았기에, 가장 처음은 데스크톱용 우분투 였습니다.

이후에 리눅스 민트, 페도라, 레드햇, CentOS 등을 거치며 몇년 전 구입해 두었던 라즈베리파이를 꺼내서 라즈비안을, 그리고 데스크탑 가상머신은 데비안을, 안쓰는 안드로이드 폰에는 칼리 리눅스 설치 해서 조금씩 사용 해봤습니다.

이번에 라즈베리파이3을 구입 후, 블로그를 옮긴 덕분에 라즈베리파이1은 다시 잠들어 버렸습니다.

(언젠가는 웹서비스 로드밸런싱이나, Failover Clustering 등도 설치 해 볼 예정입니다.)

오늘 심심하던 차에, 여기저기서 들어본 아치리눅스가 생각난김에 라즈베리파이를 깨울겸, 라즈베리파이용 아치리눅스를 찾아서 설치 해 보았습니다.

첫 설치 후 약 30분, sudo도 없고 아무것도 없는 심플함이 불편하기도 하지만 제법 마음에 들었습니다.

게다가 데비안 계열을 사용하면서 가장 마음에 안들었던 매우 느린 공식 저장소의 패키지 업데이트가, 아치리눅스는 최신버전의 패키지를 매우 빠르게 제공해 줌으로써 호감도가 급 상승했습니다.

(언뜻 듣기로는, 데비안은 매우 매우 안정적인 버전의 패키지를 공식 배포 한다고 합니다.)

예를 들어, 최근 php7 출시 이후로 데비안에서 사용하기 위해서 소스코드를 받아서 직접 컴파일 하거나 ppa를 이용하곤 했는데, 아치리눅스는 몇일 전 업데이트 된 php7.0.5 버전이 이미 공식 저장소에 업데이트 되어 있었습니다. 데비안계열은 아직 php5.6이구요. (출시 후 이미 5개월 경과)

이상은 개인적인 감상이었고, 지금부터 라즈베리파이용 아치리눅스를 설치 해서 구동 하는 방법을 설명하겠습니다.

1. System Architecture

라즈베리파이는 ARM 기반 기기이므로, ARM 아키텍쳐용 바이너리가 필요합니다. 이 바이너리들은 Arch Linux ARM 프로젝트로 진행됩니다.

라즈베리파이의 버전별 아키텍쳐는 다음과 같습니다.

이 포스트에서 사용할 메인 PC는 리눅스 민트, 설치는 라즈베리파이 1세대, 모델 B+용 ARMv6 이미지를 기준으로 작성합니다.

2. SD카드 파티션 만들기

이 작업은 처음부터 끝까지 루트 계정으로 작업합니다.

먼저, 루트 계정으로 들어갑니다.

su

패스워드를 입력하시고, SD카드 삽입 후, SD카드의 장치명 및 파티션을 확인합니다.

# fdisk -l

!!! 매우 중요 !!!

여기에 여러분의 SD카드가 리눅스에 어떤 이름으로 로드 되어있는지 보여줍니다.

저의 경우는 스크린샷에 보이는 것처럼,

mmcblk0까지가 장치명이고 p1이 및 p2가 추가된 mmcblk0p1mmcblk0p2가 파티션 명입니다.

현재 존재하는 파티션 테이블을 삭제 후, 새롭게 만들어 줍니다. 자신의 SD카드 장치명을 사용하여 fdisk를 실행합니다.

fdisk /dev/mmcblk0

아래 영문자를 차례대로 입력합니다.

o
p

파티션 새로 만들기 (주 파티션, 1번, 파티션크기는 100 MB, W95 FAT32)

n
p
1
Enter
+100M
t
c
n
p
2
Enter
Enter
w

위 파티션 작업 전체 과정 스크린 샷입니다.

파티션을 새롭게 만드셨으면 파티션을 사용 가능한 파일 시스템으로 만들어줍니다.

파티션이 마운트 되는 경우가 있으므로, 파티션들을 언마운트 합니다.

umount /dev/mmcblk0p1 /dev/mmcblk0p2

먼저, 1번 파티션을 vfat으로 만들고, 현재 폴더에 boot 폴더 생성 후 폴더에 파티션을 마운트 합니다.

mkfs.vfat /dev/mmcblk0p1
mkdir boot
mount /dev/mmcblk0p1 boot

2번 파티션은 ext4로 만들고, root 폴더 생성 후 폴더에 파티션을 마운트 합니다.

mkfs.ext4 /dev/mmcblk0p2
mkdir root
mount /dev/mmcblk0p2 root

3. 이미지 다운로드 및 SD카드에 설치

자신의 라즈베리파이에 맞는 이미지를 다운로드 및 SD카드의 root 폴더에 복사 후, boot 파일 시스템을 1번 파티션으로 이동, 파티션을 언마운트 합니다.

아래는 각 세대별 명령어 입니다. 본인의 라즈베리파이에 맞는 이미지를 선택하세요. bsdtar가 없는 경우에는,

apt install bsdtar -y

로 설치합니다.

wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-latest.tar.gz
bsdtar -xpf ArchLinuxARM-rpi-latest.tar.gz -C root
sync
mv root/boot/* boot
umount boot root
wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz
bsdtar -xpf ArchLinuxARM-rpi-2-latest.tar.gz -C root
sync
mv root/boot/* boot
umount boot root

공식 웹사이트의 내용에 따르면, 현재까지는 라즈베리파이 2세대용 이미지를 사용하고 있습니다.

공용 이미지인 ARMv8 AArch64 Multi-platform, 혹은 ARMv8 Amlogic S905 ODROID-C2 을 사용 가능 한 것으로 보이지만, 테스트를 해보지 않았으므로 사용 시 주의를 필요로 합니다.

4. 라즈베리파이 부팅

PC에서 SD카드를 제거 후, 라즈베리파이에 삽입합니다.

라즈베리파이 전원을 켜줍니다.

위의 설치 과정을 제대로 따라 오셨다면, Arch Linux가 부팅이 되는 것을 확인하실 수 있습니다.

Arch Linux ARM 부팅이 완료 되면, SSH로 접속이 가능 합니다.

호스트명 : alarmpi

기본 사용자 계정 : alarm / alarm

루트 계정 : root / root

이상으로 라즈베리파이용 아치리눅스 설치 방법을 알아보았습니다.