나는 Ubuntu 16.04로 입문해서 뭣도 모르고 윈도우쓰는 것 마냥 쓰다가, 조금씩 경험과 지식이 쌓이면서 Ubuntu가 Linux의 전부인 줄 알았었다. 하지만 지금 생각해보면 그 당시 나는 Ubuntu라는 Linux distro와 Unity 데스크탑 환경이 합쳐져서 내가 사용하는 Ubuntu가 만들어졌다는 개념조차 모르고 있었다 (물론 Unity 데스크탑도 Ubuntu에서 쓰기 위해 만든 것이긴 하지만).

이 것이 사실 Ubuntu가 (그리고 그 이름을 뒷받침하고 있는 Canonical이라는 회사가) 추구하는 목표이다: 누구나 쉽게 접근해서 설치하고, 바로 사용할 수 있는 데스크탑 환경 (It just works). 위에서 생각해 본 내 경험에 따르면 Ubuntu는 그 목표를 꽤나 잘 이루어내고 있는 것 같다. 실제로 얼마나 많은 사람들에게 Linux 시스템을 전파했는 지는 모르지만, 그 동안 내가 여기 저기 기웃거리고 살펴보면서 가지게 된 인식은 "첫 Linux 배포판은 Ubuntu나 Mint"일 정도로 가장 쉽게 접근할 수 있는 배포판으로 자리매김하고 있다고 생각이 든다.

스스로 좋은 프로그래머가 되자고 다짐하면서도 내가 지금 쓰고 있는 랩탑 하나도 제대로 제어할 수 있는 지에 대해 회의감이 들곤 했다. 심지어 내가 GNU/Linux를 사용한다는 사실이 더욱 내 마음을 불편하게 한다. UNIX 철학에 충실한 기본 명령 도구와 Git/Vim/Tmux 등의 멋진 터미널 프로그램에 어느 정도 익숙해지면서 (+ C 언어) Ubuntu의 꽉 짜여진 데스크탑 환경이 점점 더 답답해지는 시점이 온 것이다. 나는 이런 저런 구글링도 해보고 유튜브도 돌아다니다가 Arch Linux에 (정확히 얘기하자면 suckless 환경에) 꽂혀서 설치하게 되었는데, 혹시 나와 같은 고민을 하는 분이 계시다면 나의 경험을 공유하기 위해 이 글을 쓰게 되었다.

결론부터 얘기하자면, Arch Linux를 설치하는 것은 Arch를 쓰느냐와 전혀 상관없이 GNU/Linux의 실체를 조금 더 알 수 있게 되는 굉장히 효과적인 경험이 될 것이다. 구닥다리 기계가 있다면 더할 나위 없이 좋은 기회다. 그녀에게 새 생명을!


이 글의 목적, 주제

확실히 짚고 넘어가고 싶은 것이 있다. 여기서 Arch Linux의 롤링 업데이트, 훌륭한 패키지 매니저 pacman을 소개하지 않는다. 이 글은 Arch Linux를 홍보하기 위함이 아니다. 전통적인 데스크탑 화면과 다르게 졸라 멋지고 가벼운 환경을 알리고자 하지 않는다 (이 글에 화면 스크린샷은 없다).

이 글의 목적은 Arch Linux를 설치하기 위해서 어떤 과정을 거쳐야 하고, 그 과정을 수행하기 위해 얼마나 자신의 부족한 지식을 채우게 되는 지를 소개하는 것이다. "왜 하필 Arch Linux냐" 라고 물어보신다면 나의 대답은 ...

  • 내가 이거 밖에 안 해봤다.
  • 그래서 다른 배포판 문서도 좀 봐봤는데, Arch Wiki가 진짜 거의 최고다 (Gentoo 위키가 굉장히 훌륭하다던데 차마 거기까지 갈 순 없었다).
  • GUI 설치 따위 없다. 순수하게 명령창에서 설치하게 한다 (내가 알기로 메이저 배포판 중에서 유일한 것으로 알고 있다).
  • 처음엔 이게 뭔가 싶고 무슨 개고생인가 싶은데, 한 두 회전 거치고 나서 생각해보면... "근데 생각보다 쉽다"라는 말이 나온다.
  • 설치에 성공했다!면 6개의 tty만이 당신을 기다리고 있을 것이다. 진정한 데스크탑 환경 구축은 이제 시작이다.
    GNOME? KDE? i3? 더욱 재밌을 것이다. 그리고 pacman, AUR, 그리고 Arch Wiki과 함께라면 그렇게 어렵지 않다.

그렇다고 해서 이 글에서 Arch Linux를 설치하는 방법을 떠 먹여주지는 않을 것이다. 사실 Arch Wiki가 이미 잘 떠 먹여줄 준비를 하고 있을 것이다. 이 글에서 그 Wiki를 가벼운 마음으로 산책하면서 수다를 떨고자 한다.

관련 Wiki


부팅 USB를 만들자

UNIX 계열 시스템이라면, dd라는 명령으로 간단하게 끝나버린다. 도대체 dd가 궁금하다면 man dd

관련 Wiki


Boot mode: BIOS or UEFI?

설레는 마음으로 본격적으로 Installation guide를 시작하자 마자 나는 여기서 굉장한 공부를 해야 했다. 저 두 가지가 뭔지도 잘 모르는데, 내 랩탑에 무엇을/어떻게 할 것인지 아는 것은 너무나 먼 일이었다.

간단하게 요약하자면 기존 부팅 시스템인 BIOS를 대체하려는 목적으로 나온 것이 UEFI이고, 대부분의 요즘 기계들은 UEFI를 지원한다 (2013년 이후 제조된 기계는 정말로). Arch Wiki에서는 # ls /sys/firmware/efi/efivars 라고 명령해서 UEFI인지 확인해보라는데, 이 것은 현재 시스템이 UEFI로 돌아가고 있는 시스템인지 체크하는 것이다. 그니까 위 명령 결과가 없으면 UEFI가 아니라 BIOS 모드로 부팅 시스템이 잡혀있는 것이다. 하지만 그 상황에서 내 기계가 UEFI가 가능한 것인지에 대답은 되지 않는다. 그 대답은 BIOS 메뉴에서 볼 수도 있고, dmidecode -t 0 명령어를 통해서도 알 수 있다.

2년 정도 전에 프리도스 깡통 랩탑을 사서 Ubuntu 16.04 LTS를 설치할 때는 몰랐는데, 이제 와서 보니 내 기계가 UEFI 부팅이 가능한데 Ubuntu는 냅다 BIOS 부팅으로 MBR 파티션을 잡아서 설치했다는 것을 알게 되었다. 지금껏 모르고도 문제 없이 잘 써왔지만, 괜히 구린 기분은 어쩔 수 없었다.

설치의 가장 마지막 단계로 boot loader를 골라야 하는 순간이 오는데, boot loader가 BIOS/UEFI 시스템을 좀 가린다. 본인이 원하는 boot loader가 있다면 그에 맞는 boot mode를 선택해야 한다. 나는 systemd-boot를 쓰고 싶었기 때문에, 어찌 저찌 EFI System Partition (ESP)를 잡아서 새로 UEFI boot mode를 설치할 수 있었다. 사실 지금도 제대로 설치를 잘 한 것인지 확신은 없다.

관련 Wiki


파티션

GUI 없이 가장 하기 어려울 것 같은 부분이다. 나도 아무 것도 모르고 시작했고, 이 글을 보는 여러분도 모를 것이라 가정하기 때문에 파티션과 관련해서 알아야 할 사항을 꼽아보겠다.

  • lsblk로 현재 파티션 상황 보기
  • MBR/GPT 파티션 선택: 이는 BIOS/UEFI boot mode와 밀접하게 관련이 되어 있다.
  • fdisk/gdisk 사용법: 처음에 진짜 무서워서 뭘 못 눌러보겠다면
    p (print)를 계속 찍어보고 도움말 키 (아마도 물음표?키)를 통해 명령어를 계속 확인면서 더듬더듬 나가야 한다.
    이 짓을 몇 번 하다면 /dev/sdxY 표기도 익숙해지리라 생각한다.
  • swap이 뭘까, 내 기계는 그거 필요할까? (아마도) Virtual memory는 뭘까?

UEFI 관련해서 내가 했던 것처럼, 새롭게 ESP를 잡아야 할 경우에는 파티션에 대해서 공부할 게 조금 더 많아진다. 하지만 기본적으로 GPT 파티션을 잡고, ESP를 위한 550MB의 파티션 하나만 먼저 잡아주면 된다고 생각하면 된다.

파티션 포맷

새롭게 생성한 파티션을 포맷해줘야 한다. 또 UEFI를 위한 ESP를 제외하고 모두 ext4로 하면 된다. ESP는 fat32로 해주어야 한다.

관련 Wiki


랜선 꽂고 시작합시다

Arch Linux는 인터넷 연결이 된 상태에서의 설치를 권장한다. 그리고 기본 부팅 iso 이미지는 무선 인터넷 기능을 탑재하고 있지 않으므로 굳이 무선 인터넷이 필요하다면 별도의 커스텀 iso를 만들어야 하는 것으로 알고 있다. 그냥 랜선 꽂고 하시길 강력 추천한다.


pacstrap

이제 어려울만 한 부분은 거의 다 지나갔으니 Installation guide를 따라가면서 즐거운 마음으로 pacstrap를 외치면 된다.

pacstrap이 끝나면 이제 chroot를 통해 설치된 환경 안으로 임시적으로 들어가서 USB를 빼도 괜찮은 지경으로 만들어주는 작업을 해준다. 빨리 랜선을 뽑고 싶다면 iwwpa_supplicant를 가장 먼저 설치해두자. 이거 깜빡하면 다시 랜선 꽂으러 가야 한다 (나는 랜선이 난방 따위 없는 창고 같은 방에 있어서 굉장히 힘든 시간을 보냈었다). 그리고 분명히 무선 인터넷 잡는데 힘든 시간을 보낼 것이기 때문에, 여기서 필요한 패키지는 모두 깔아놓고 오자. USB 빼고 랜선 뽑고 나서는 와이파이 잡는데 집중해야 할 것이다.


Boot loader

잔인하게도 마지막에 굉장한 선택권을 우리에게 준다. 근거는 마땅히 없지만 (어느 유튜버의 말에 따르면), syslinux나 systemd-boot 정도가 무난한 선택이 될 것이다.

관련 Wiki


설치 끝?

Installation guide를 잘 따라서 설치가 잘 끝났는가? 그럼 이제 General Recommendations로 이어진다.

이제부터는 쇼핑의 시간이다. 잠시 커피 한 잔의 여유를 갖고 갑이 되어서 내 입맛에 맞는 환경을 고르다보면 시간 잘 간다.

관련 Wiki

참조 링크


Building Blocks

설치를 잘 마치고 나면 우선 축하를 신나게 하고, 그 동안 개고생을 하면서 시스템에 운영 체제를 설치하기 위한 단계들이 얼마나 자신에게 친숙해졌는 지 생각해보자. 효과가 있다고 생각이 든다면 다행이다. 아니라면? 죄송합니다. 댓글에 불편 접수 받겠습니다.

다시 한 번 말하건데, 지금 자신이 쓰고 있는 환경 (Windows든 MacOS든, 뭐든 간에) 이 자신의 작업을 하고자 하는 데에 있어 아무런 문제가 없다면 굳이 다른 무언가로 갈아탈 필요는 전혀 없다. GNU/Linux 배포 간에 옮겨다닐 이유도 없다. 하지만 본인이 조금 더 GNU/Linux 시스템을 알고 싶다면, 자신의 기계를 장악하고 싶다면, 한 번쯤 Arch Linux에게 우리를 교육시킬 기회를 주어도 손해볼 장사는 아닐 것이다.