라즈베리 파이2B에 설치한 Ubuntu MATE 간단한 최적화 하기
▶ 들어가며
안녕하세요. 곰곰입니다.
저번 블로그 글(워드프레스 Nginx 라즈베리파이로 서버 설치 또는 이전)에서 라즈베리파이2에 Nginx + PHP5 + MariaDB를 설치하기 위하여 라즈베리파이용 Ubuntu MATE를 설치하였습니다. Ubuntu MATE는 마테 UI가 적용되어 있는 우분투 리눅스 배포판으로써, 저사양 컴퓨터에 최적화 되어있는 UX를 가지고 있는 리눅스 배포판이기는 합니다.
하지만 라즈베리 파이 2 모델 B가 그렇게 좋은 스팩의 CPU를 가지고 있지 않은 측면, 그리고 서버로 운영되고 있을 때는 몇 가지 최적화 되어야 할 점이 있기 때문에, 이 글에서는 간단하게 Ubuntu MATE 라즈베리 파이 에디션을 최적화하는 방법에 대해 설명하고자 합니다.
▶ 1. Ubuntu MATE를 GUI(그래픽 모드)에서 CUI 모드로 부팅하기
Ubuntu MATE는 리눅스를 콘솔로 즐기고 싶은 분들을 위해 콘솔이 기본으로 부팅되게 설정할 수 있습니다. 특히 라즈베리 파이 2B의 경우에는 기존 라즈베리 파이에 비해 성능이 비약적으로 상승한 것은 맞지만, 저전력 설계와 그에 걸맞는 성능을 보유하고 있기 때문에, GUI로 라즈베리 파이를 사용하는 것은 상당히 느립니다.
따라서 서버로 사용하시려고 하시는 분들, 또는 기본적인 리눅스 지식을 보유하고 계시는 분들은 콘솔 모드로 Ubuntu MATE를 사용하실 수 있습니다.
Ubuntu MATE에서 터미널에 접속하여, 콘솔로 접속합니다. (CUI로 부팅하신 분들은 상관 없음, PuTTY 등 SSH 접속 또한 상관 없음)
아래 명령어를 관리자 권한으로(sudo) 입력해 줍니다.
$ sudo graphical disable
입력 후, 아래 명령어를 이용해 재부팅을 해 주면, 콘솔로 부팅된 Ubuntu MATE를 확인하실 수 있습니다.
$ sudo shutdown -r now
다시 그래픽 모드를 이용하고 싶으실 때는 아래 명령어를 입력해주고, 재부팅을 실시합니다.
$ sudo graphical enable $ sudo shutdown -r now
▶ 2. Ubuntu MATE를 설치하고 Micro SD 파티션의 용량을 조절하자
Ubuntu MATE를 설치하기 위해 우분투 마테를 Win32 Disk Imager로 microSD카드에 썼을 때, 기본적으로 4~8GB 정도의 용량을 기준으로 파티셔닝이 이루어집니다. 따라서 8GB 이상의 microSD 카드를 사용하는 경우에는 새로 리파티셔닝 과정을 통해 남은 공간이 리눅스 공간으로 사용될 수 있도록 해야 합니다.
먼저 Ubuntu MATE를 설치하고 터미널을 실행해 봅니다. (SSH 등 상관 없음) 저는 편의상 PuTTY를 사용해 작업하고자 합니다.
아래 명령어를 이용해 현재 파티션(/)의 상황을 확인하면, 다음과 비슷한 결과를 얻으실 수 있습니다.
# sudo df -h
fdisk -l 명령어를 사용해 구체적인 상황을 확인해 봅시다. 아래처럼 여러분들 microSD 용량에 비해 Linux 파티션 용량이 한 없이 작다는 것을 볼 수 있습니다.
$ sudo fdisk -l
microSD 카드의 디스크를 편집합시다. 아래 명령어를 통해 fdisk를 준비합니다.
$ sudo fdisk /dev/mmcblk0
FAT32 파티션은 부팅을 위해 라즈베리파이가 필요로 하는 파티션이므로 삭제하시면 안됩니다. 따라서 2번째 리눅스 파티션을 일단 지워줍니다.
d 입력 후 엔터, 이후 숫자 2 입력
그 다음, 지워진 두 번째 파티션(리눅스 주 파티션)을 microSD 최대 용량으로 다시 만들어 줍니다.
n 엔터, p 엔터, 2 엔터, 엔터, 엔터 순으로 입력합니다.
이후 w를 눌러서 fdisk를 종료해 주시면, 다음과 같은 경고와 함께 다음 부팅시 파티셔닝이 이루어질 것임을 알려줍니다. 재부팅을 해 줍니다.
Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Re-reading the partition table failed.: Device or resource busy The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8). $ sudo shutdown -r now
재부팅이 되면, 다음과 같은 명령어를 입력해 주어 파티션 용량을 다시 인식시킵니다.
$ sudo resize2fs /dev/mmcblk0p2
이후 fdisk를 통해 파티션 용량을 확인해 보시면, 16GB 온전히 파티셔닝이 되어있는 것을 확인하실 수 있습니다.
▶ 3. 간단 팁: Ubuntu MATE for Raspberry pi 2는 도대체 어떤 CPU 아키텍쳐를 사용중인 것일까?
추후 라즈베리 파이 2B용 Ubuntu MATE를 사용하시다 보면 기존의 리눅스에서 사용하시던 팁들이 적용되지 않으실 때가 있으실 겁니다. (저의 경우는 두 가지가 있었는데, 하나는 nginx용 Pagespeed 모듈이 설치가 되지 않았던 점, 또 하나는 ppa를 통해 PHP7을 설치하던 도중, 갑자기 PHP7의 설치가 이루어지지 않았을 때)
예를 들어, Ubuntu용 PHP를 설치하기 위하여 PPA(사설 저장소)에서 apt-get을 해야 할 필요가 있다고 해 봅시다. 그 때, 분명 ppa 목록에 패키지는 포함되어 있는데, 아무리 sudo apt-get update, apt-get install 과정을 거쳐도 패키지가 설치가 되지 않으실 수도 있는데요. 일단 그 ppa가 보관되어 있는 launchpad에 접속하여 하나의 패키지를 살펴보시면 다음과 같이 되어 있으실 겁니다.
자세히 보기 위해, 그 패키지를 클릭해 보시면 다음과 같은 정보를 보실 수가 있습니다.
여기에서 Builds라고 적혀 있는 부분은, 패키지로 배포하기 위해 패키지가 만들어지는 과정(컴파일 및 메이크 등)에 대하여 설명하고 있는 부분입니다.
체크() 표시가 되어있는 플랫폼은 빌드가 완료되어 배포중이고, 시계모양()으로 되어있는 부분은 빌드가 진행중인 곳입니다. 엑스 표시()가 되어있는 곳은 빌드에 실패하여 새로 빌드되는 것을 기다리고 있는 플랫폼입니다.
또한 Builds에 세 가지 플랫폼이 적혀 있는데, 이 플랫폼은 Ubuntu가 지원하는 대표적인 플랫폼 3가지를 뜻합니다.
- amd64 : 64비트 플랫폼을 뜻합니다. 우리가 Windows 7 64비트를 말할 때의 그 64비트를 뜻하며, 64비트를 상용화시키는데 가장 먼저 성공했던 회사가 AMD이므로, amd64라고 기재됩니다. 다른 곳에서의 x64(인텔 64비트 플랫폼)과 의미가 일치합니다.
- i386 : 기존 32비트 플랫폼을 뜻합니다. 최근 들어서는 메모리가 4GB 이상인 컴퓨터가 많아지고 있는데, 32비트 컴퓨터로는 4GB 이상의 메모리를 처리할 수 없으므로, 최근 들어서 비중이 감소세에 이르고 있습니다. x86(인텔 32비트 플랫폼)과 의미가 일치합니다.
- armhf : ARM 플랫폼의 v7 버전, 즉 ARMv7 계열 CPU를 뜻하는(ARM에 대한 자세한 정보는 위키피디아 참조) 표현입니다. Raspberry pi 2 Model B가 속해있는 플랫폼입니다.
- armel, armeb : (기타) ARM 플랫폼의 다른 버전입니다. 개인 사용자가 접해보기 어려운 플랫폼입니다.
즉, ARMv7 이라고 쓰여 있는 부분은, armhf 와 호환이 된다고 생각하시면 편하겠지요. 다양한 곳에서 지식 글을 참고하실 때 유용하신 정보라고 생각합니다.
▶ 마치며
지금까지 Raspberry Pi 2B에 Ubuntu MATE를 설치하여 사용할 때의 몇 가지 팁에 대해 살펴보았습니다. Raspberry Pi는 낮은 가격에 초소형 PC(* 일부 플랫폼적 제약이 있지만)를 구매하실 수 있는 좋은 방법입니다. 여러분들도 Raspberry Pi를 구매하실 기회가 있으시다면, 이 팁이 도움이 되기를 바랍니다.
두서없는 팁 읽어주셔서 감사합니다.