Skip to content

아치 리눅스 설치 가이드

서문

아치 리눅스를 써야 하는 이유가 무엇인지에 대한 질문이 등록되는 것을 자주 목격합니다. 저도 객관적으로 똑부러지게 '이런 점이 장점이고 이런 점은 약점이지만 이런 점에서 매력을 느낀다'라고 설명하지 못합니다 (물론, 제가 느끼는 강점과 매력은 분명하지만 매우 주관적이기 때문에). 하지만, 제가 명확히 알고 있고 여러분들께 소개해 드릴 수 있는 것은  '아치 리눅스의 설치 과정이 그렇게 당혹스러우리만큼 어렵지는 않다'라는 것입니다.

일반적으로 윈도우 혹은 맥 진영에서 리눅스를 경험해 보고 싶은 신규 유저들에게 쉬운 배포판으로 우분투를 소개합니다. 충분히 이해할 수 있습니다. 설치 과정은 GUI로 표현되기 때문에 매우 편합니다. 하지만 그 과정들이 어떤 작업인지 이해하지 못하고 'Next' 만을 클릭하는 것을 '쉽다'고 표현하는게 올바른가에 대해서는 고민이 됩니다.

아치 리눅스는 설치 과정이 커맨드 라인 기반(CLI)입니다. 모든 것을 키보드를 이용해 명령하여 설치해야 합니다. 하지만 그 과정 덕분에 리눅스가 어떻게 빌드되는지에 대해서 정확히 이해할 수 있고, 내 시스템이 어떻게 구성되어 있는지를 파악하기 유리합니다 (더 깊은 이해는 Gentoo, CRUX 혹은 LFS 를 통해 경험할 수 있습니다).

제가 처음 아치 리눅스에 관심을 가지게 되었을 때에도 설치 과정이 불편했습니다. 여기서, '불편했다'라는 것은 번역되어 있는 자료의 부재가 크게 작용했습니다. 영어를 읽어 가면서 설치해야 한다는 점이 힘들었습니다. 설치할 당시에도 '한글로 된 양질의 자료가 필요하다'라고 절감했습니다. 한글 아치 리눅스 위키 페이지의 설치 가이드를 추천하실지 모르겠습니다. 매우 훌륭하게 정리되어있고, 아래에서 소개할 설치 과정도 그 페이지를 기반으로 합니다. 다만, 초급 사용자가 사용하는 데에 있어서도 그 페이지로 충분하다는 데에는 동의할 수가 없었습니다. 저는 아치 리눅스가 한국에서 더욱 확산되고, 특히 '초보 사용자의 설치 환경에 큰 도움을 주고 싶다'라는 데에 방점을 찍었습니다.

Keep It Simple, Stupid!

KISS, 즉, Keep it Simple, Stupid! 이것은 유닉스 계열의 정통 철학일 뿐만 아니라 아치 리눅스 진영에서도 핵심적으로 추구하는 철학입니다. 아치 리눅스는 단순함을 추구합니다. 흥미로운 점은 그 30줄도 안되는 단순함을 위해서 얼마나 많은 복잡함을 응축해야 하는가 입니다. 우측의 스크롤 바를 보시면 당황스러우실 수 있습니다. '초보자를 위해 글을 작성했다고 제창하면서 얼마나 자세히 적어두고 있는거냐'라고 반문하실 수도 있습니다. 반전은 이 스크롤 바를 읽어 내려가면서 직접 설치해야 하는 패키지의 수는 오히려 5개로 단순화했다는 점입니다. 물론 이는 수동으로 입력하여 설치하는 패키지를 뜻합니다. 그 5가지는 base, xorg-server or xorg-xwayland, gnome, google-chrome, ibus-hangul입니다.

보신 바와 같이 그 5개의 패키지 중에서도 한 개는 실제 사용에는 필수는 아니지만, 여러분께 아치 리눅스를 사용하는데 필요한 지식(AUR 사용법)까지 전달 드리기 위해 설치하는 것(google-chrome)입니다. 이 한 페이지를 통해 독자분들은 기본 시스템 구축과 관련된 분야(파티션, 포맷, 파일시스템 테이블, 부팅 과정과 부트 로더의 역할), 데스크탑 환경의 구축, 웹 브라우저 설치 과정을 통한 AUR 학습 그리고 아치 리눅스에서 한글을 사용하는 것이 얼마나 단순하고 명료한지에 대해서 느껴보실 수 있습니다. 그 단순함을 성취하기 위해 모순적이게도 상당히 많은 내용을 담을 수 밖에 없었습니다.

설치 전 주의 사항

Warning

공식 아치리눅스 설치 가이드는 단 한 가지 버전만 존재 합니다.

그 외의 가이드들은, 이 페이지를 포함, 모두 특정 목적(사용자 편의/작성자 편의/강의 목적)을 위해 편집된 내용입니다. 그러므로, 공식 위키의 내용을 이해한 후, 이 가이드를 보면서 입맛에 맞게 수정 적용하시는 것을 권장하는 바입니다.

Tip

아치 리눅스 진영에서 다시금 GUI 설치 프로그램을 준비중이라는 이슈를 터뜨렸습니다. 그런데 이게 단순히 소문인 줄로만 여겼으나 더 이상 무시할 수 없는 상황으로 보입니다. FAQ에 따르면, 과거에 존재했던 AIF(Arch Installation Framework-TUI, 아치 설치 프레임워크)는 관리자가 떠난 이유로 버려져있었으나, 2021년 4월 1일부로 archinstall 이라는 이름으로써 부활의 신호탄을 알렸다고 합니다. 아직은 실험적이라고 분명히 밝히고 있지만, 이 설치 프로그램의 미래가 어떻게 되는지 유심히 지켜보고 업데이트 하도록 하겠습니다.

설치 준비

설치 이미지 파일(iso 파일) 다운로드 방법은 아래와 같습니다.

참조: 카이스트 미러 중 아치 리눅스 페이지

카이스트 미러 접속 > 목록 중 > archlinux-2021.12.31-x86_64.iso 를 클릭하여 다운로드

Windows

Rufus를 이용해 제작합니다. 자세한 내용은 생략합니다.

Linux

리눅스 시스템에서 USB 마운트 이후, 아래의 명령을 실행합니다.

# lsblk

명령어 설명

lsblk (list block device): 블록 디바이스 목록을 출력합니다.

여기에서 USB 디바이스 장치명을 확인합니다. 보통, 용량을 통해서 확인합니다. sdb, sdc등 사용자에 따라 다른 이름이 표시됩니다.

아래 명령어를 통해 USB를 포맷하고 새로운 iso를 작성할 준비를 합니다. 주어진 커맨드의 /dev/sdb에서 sdb부분을 본인 환경에 맞게 입력해야 합니다. 위에서 확인한 본인 USB 장치의 이름을 넣어줍니다.

아래 명령어는 USB 내부의 모든 파일을 삭제합니다.

중요한 파일이나 삭제가 용인되지 않는 파일은 반드시 백업을 하시고 진행하시길 바랍니다

# sudo wipefs --all /dev/sdb

아래 명령어를 통해 준비된 USB에 iso파일을 구워줍니다.

if 이후에 (iso 파일 다운로드 위치)/archlinux-(날짜)-x86_64.iso를 본인 환경에 맞게 입력합니다. 해당 경로에 아치리눅스 iso파일이 하나밖에 없다고 가정할 경우, archli와 같이 앞 부분을 입력한 후, Tab 키를 이용해 자동 완성이 가능합니다.

다만, Enter입력 전에 반드시 자동 완성된 파일 이름이 원하는 결과로 입력되었는지 확인하시기 바랍니다.

아래 명령어에서 of부분 이후에는 위에서 준비한 'USB 경로'를 본인 환경에 맞는 것을 입력합니다.

# sudo dd bs=4M if=~/Downloads/archlinux.iso of=/dev/sdb status=progress && sync

명령어 설명

  • dd: dd유틸리티를 이용합니다. (과거 UNIX 시절에는 잘못 사용하면 디스크를 사용 불가능하게 만드는 유틸리티라는 의미로 'Disk Destroyer'라는 별명이 있었습니다.)
  • bs(block size): 블락 크기는 4M(생략 가능)
  • if(input file): 인풋 파일(지금은 아치 리눅스 iso 파일)
  • of(output file): 작성할 대상인 아웃풋 디바이스의 경로

이제 재부팅해줍니다. 재부팅 도중에 본인 메인보드에 맞는 바이오스/UEFI진입 키를 이용합니다. 제 경우는 F2입니다. 보통은 F2, F10, F11, Del등입니다.

설치 미디어 USB 부팅 자체가 안되는 경우!

설치화면 진입 자체가 안되는 문제는 BIOS/UEFI 세팅 문제일 가능성이 큽니다.

secure boot가 사용 안함(Disabled)으로 되어있는지 확인하시기 바랍니다. fast boot, 혹은 CSM모드(혹은 LEGACY/BIOS MODE)에서 발생하는 오류일 수도 있습니다. 추천드리는 것은 모두 사용 안함(Disabled)입니다.

바이오스/UEFI 진입 키를 통해 부팅할 미디어 중, 방금 제작한 USB를 찾아 선택합니다. 이 USB를 통해 정상적으로 부팅이 이루어지면 리눅스 부팅 중과 부팅 후의 선택 화면에서는 일반적으로 디폴트 값으로 가리키고 있는 것을 통해 부팅하시면 됩니다( Boot Arch Linux혹은 x86_64같은 것이 포함되어 있음).

또, 키 맵을 선택하라는 알림이 등장할 수도 있는데 디폴트가 US로 선택되어 있는 경우가 많으므로 그냥 Enter를 입력하시면 됩니다.

Note

설치 환경에서의 터미널 프롬프트는 루트 사용자이므로 #입니다.

베이스 설치가 완료된 이후, 일반 사용자로 로그인하면 프롬프트가 $로 바뀝니다.

베이스 시스템 설치

UEFI 여부 확인

우선, UEFI로 설치해야 하는지 그리고 UEFI로 설치가 가능한지 확인하도록 하겠습니다. 아래 파티션 계획 파트에서 다시 말씀드리겠지만, 여기서 UEFI로 부팅된 것이 맞고, UEFI로 설치할 생각인 경우의 파티션과 그렇지 않은(BIOS로 부팅된 경우) 파티션이 다릅니다.

BIOS로 부팅된 경우, 디스크 타입이 MBR이어야 하며 필요로 하는 파티션 구성이 다릅니다.

UEFI로 부팅된 경우, 기본적으로 권장하는 설치 설정은 디스크 타입을 GPT로 그리고 반드시 ESP파티션을 가지고 있을 것을 요구합니다.

따라서, 잘 확인하시고 따라오시길 바랍니다!

확인은 아래 명령어를 통해 할 수 있습니다.

# ls /sys/firmware/efi

명령어 설명

ls: list의 줄임. 뒤에 주어지는 경로(/sys/firmware/efi) 디렉터리에 포함된 파일들을 보여줌

결과에 efivars라는 디렉터리가 보이면 UEFI로 설치하실 수 있습니다.

인터넷 연결 확인

인터넷 연결 상태를 확인합니다.

유선 연결 환경을 가정합니다. 무선 환경의 경우, 아치 리눅스 설치 프로그램은 iwctl 유틸리티를 동봉합니다. 해당 유틸리티를 활용해 네트워크에 연결하시면 됩니다.

# ping -c 3 www.google.com

명령어 설명

  • ping 명령어를 통해 명시하는 서버에 핑을 보냅니다.
  • -c이후의 숫자 3을 다른 숫자로 변경해 사용하셔도 무방합니다.
  • -c를 빼먹어서, ping이 계속 실행될 경우,
    당황하지 마시고, Ctrl+C (SIGINT; 시스템 인터럽트 시그널)를 이용해 작동을 중단하실 수 있습니다!

파티션 계획

이 과정은 드라이브의 구획을 나누고 계획을 잡아두는 것으로 그 계획에 맞는 실제 환경을 만드는 것은 다음 단계인 포맷에서 진행 됩니다.

파티션은 대용량 저장 장치를 어떤 구획으로 나누어 사용할지에 대해서 정하는 순서입니다. 가장 일반적인 방법으로는 세 파트로 나누게 됩니다. 각각 부팅을 위한 구획, 데이터들이 저장될 구획, 그리고 리눅스 스왑으로 쓸 구획입니다. 가장 먼저, 부팅을 위한 파티션 관련해서 UEFI로 부팅했고, 설치하려는 경우 'ESP'라고 불리는 EFI System Partition을 계획해야 합니다. ESP를 계획하지 않으면 UEFI 환경에서 부팅을 설정해주는 것이 굉장히 까다로워 집니다. 지금은 이 말이 어렵게 느껴지실지 모르지만, 아래 과정을 진행하다 보면 이해가 되실 겁니다.

  • ESP는 EFI System Partition으로 타입이 설정된, FAT 파일 시스템으로 포맷된 파티션을 뜻합니다. ESP는 /boot디렉터리에 마운트 됩니다. (더 깊이 관심있으신 분들은, /boot/efi에 마운트 하는 것과 /boot에 마운트하는 것 간에 어떤 차이가 있는지 검색해보시면 좋습니다.)
  • 두번째 구획인 데이터 저장 구획은 단순하게 Linux File System이라는 타입으로 사용할 예정입니다. 이 두번째 파티션은 /, 즉 root 디렉토리에 마운트 되어 모든 데이터가 저장될 구역이라고 생각하시면 됩니다.
  • 마지막 스왑 파티션은 이름처럼 Linux Swap이라는 타입을 붙이면 되겠습니다.

SWAP? SIZE?

리눅스 스왑이란 램 환경이 모자랄 때 하드디스크의 스왑으로 설정된 부분에 자료를 로드해두고 램처럼 활용하는 것을 의미합니다. 일부 사용자는 "스왑이 사용되는 순간부터 이미 램이 모자란 것과 같은 것이므로 스왑을 쓰기보다는 차라리 하드웨어를 업그레이드 하겠다"라고 하며 스왑을 사용하지 않는 경우도 있습니다 (LFS유저들 중 이런 견해가 많이 보입니다. 공식 매뉴얼에서도 이렇게 기재해두었습니다. LFS 공식 매뉴얼 > 2.4. 절 "Creating a New Partition" > 2.4.1.2. The Swap Partition > 두 번째 문단)

반대로, 4G 넘는 램을 갖고 있더라도 시스템에서는 실제 램 사이즈와 관계없이 4G 정도의 스왑을 구획하는 경우도 많습니다. hibernation (노트북 등의 장치에서 덮개를 닫아 수면 상태로 보내는 것) 등의 기능을 위해 램 사이즈 만큼의 스왑 파티션을 꼭 챙겨야 한다는 의견도 있습니다.

이 문서에서는 스왑을 다루기로 하겠습니다.

아래 명령어를 통해 내 드라이브로 어떤 것들이 있는지 확인해보겠습니다. 용량을 통해서 부팅에 이용한 usb와 하드드라이브를 분명히 구분해서 기억하셔야 합니다.

# lsblk

결과 출력에 sdasdb, hda와 같은 대용량 저장 장치가 보이실 겁니다. hda는 기존의 IDE방식 커넥션으로 연결된 하드디스크일 가능성이 크고, sda는 최근 SCSI/SATA방식으로 연결된 HDD 혹은 SSD입니다. 가장 일반적인 sda라고 가정하고 계획을 잡아보겠습니다.

대용량 장치가 여러개일 경우 sda,sdb,sdc순으로 출력됩니다. 부팅을 위해 마운트한 USB가 아닌지 확실히 확인하셔야 합니다. 확인은 보통 용량으로 하면 큰 문제가 없습니다.

이번 설치 과정에서는 sda를 총 세 구획으로 쪼개려고 합니다. 쪼개고 나면 sda1,sda2,sda3으로 나누어집니다. 만약 sdb엿다고 하면 sdb1,sdb2,sdb3이 될 것입니다.

보통 /dev/sda 혹은 /dev/sda1, /dev/sda2등의 경로명을 사용하는데 앞의 dev는 device를 뜻합니다.

아래처럼 계획을 잡아보겠습니다.

Note

계획은 사람마다다를 수 있지만 본인 파티션의 몇 번째가 어떤 것으로 쓰일지 제대로 기억하고 계셔야 합니다. 특히,부팅 파티션/스왑 파티션/루트 파티션으로 정확히 개념을 잡고 그게 각각 1,2,3 중에 어느 것으로 쓰일것인지 기억하시고 아래 예제를 따라오셔야 합니다

적용 파티션 파일 시스템 코드명 사용할 용량 기타 정보
/dev/sda1 EFI System Partition EF00 512M ESP
/dev/sda2 Linux Swap 8200(82) 4G 스왑파티션
/dev/sda3 Linux FileSystem 8300(83) 나머지 용량 루트파티션

파티션 용량?

ESP, 흔히 말하는 '부트 디렉터리'에 마운트 시킬 파티션 용량 그리고 스왑 용량 관련해서 정답도 없고, 추천하는 크기도 다 다르다는 점은 충분히 알고 있습니다. 다만 초보자의 관점에서 혼란스러움 없이 진행하기 위해서 우선은 위와 같이 가장 기본이라고 할 수 있는 용량으로 진행해 보도록 하겠습니다.

설치를 하고 계시는 여러분이 이미 각종 고급 설정에 익숙하시면 충분히 수정해서 설치하셔도 됩니다.

Warning

아래에는 cfdisk를 이용하는 과정과 gdisk를 이용하는 과정을 설명합니다.
둘 중 반드시 하나의 방법만을 사용하시기 바랍니다.
초보 사용자의 경우 cfdisk를 권장합니다.

Danger

아래 명령어들은 하드디스크 내부의 모든 파일을 사용할 수 없게 만듭니다.
중요한 파일이나 삭제가 용인되지 않는 파일은 반드시 백업을 하시고 진행하시길 바랍니다.

아래 명령어에 디스크 경로가 포함되는데 본인 환경에 맞는 것을 입력하시면 됩니다.

# cfdisk /dev/sda

UEFI 설치를 위해서는 라벨이 GPT라고 상단에 표기 있는지 확인합니다. MBR이 아니어야 합니다!

만약 처음에 물어보면 GPT를 선택해주시면 됩니다.

물어보는 경우, Primary로 진행합니다.

표에 기존 파티션이 기록된다면 보이는 기존 파티션을 한 줄씩 내려가면서 DELETE해줍니다. (키보드의 화살표 방향키를 이용합니다.) 그리고 나서 모든 용량이 FREE SPACE가 되고 우리가 계획을 세웠던 걸 다시 보면, 처음 만들 파티션은 /dev/sda1, EFI System Partition, 512mb입니다.

따라서,

NEW선택
용량 크기를 입력 : 512M
(앞으로 생성할 모든 파티션도) Primary로 선택
TYPE으로 커서를 옮긴 후(우측 방향키) Enter
EFI System을 선택.(보통 맨 위에 있습니다)

두번째 만들 파티션은 /dev/sda2, Linux swap, 4G였습니다. 방향키를 아래로 내려서 free space를 향하게 하면 아래에 NEW 버튼이 다시 생긴 것을 볼 수 있습니다.

NEW
용량 크기를 입력 : 4G
TYPE으로 Linux Swap

이제 /dev/sda3도 만들어보겠습니다.

다시 방향키 내린 후 NEW 선택
용량 크기는 디폴트가 남아있는 최대 크기로 설정 되어있는지 확인해주고 그냥 Enter
TYPE도 아마 자동으로 Linux FileSystem일 텐데 혹시 모르니 다시 표에서 확인해주시면 됩니다.
마지막으로 WRITE를 선택하시면 됩니다.
QUIT 선택해서 나옴.

이제 포맷 단계로 진행하시면 됩니다!!

Danger

아래 명령어들은 하드디스크 내부의 모든 파일을 사용할 수 없게 만듭니다.
중요한 파일이나 삭제가 용인되지 않는 파일은 반드시 백업을 하시고 진행하시길 바랍니다

아래 명령어에 디스크 경로가 포함되는데 본인 환경에 맞는 것을 입력하시면 됩니다.

# gdisk /dev/sda

?를 입력해서 어떤 명령어들이 있는지 봐두시면 좋습니다. 모든 파티션은 Primary로 잡습니다.

이 유틸은 퍼스트 섹터와 라스트 섹터를 물어보는데 퍼스트 섹터에 라스트 섹터 값을 입력을 하지 않도록 주의하시면서 천천히 진행하시기 바랍니다.

o를 입력  —  모두 지우고
(/dev/sda1 생성을 위해)
n 입력 (New)
첫 번째 파티션이므로 Enter
(default가 1로 되어있는지 확인, 아닐 경우 1을 입력)
첫 번째 섹터는 알아서 계산해주므로 Enter
라스트 섹터는 용량으로 입력 가능하므로 +512mb 입력
파일시스템 코드로 EF00 입력
p (Print/출력)를 통해 제대로 나뉘었는지 확인

(표의 형태로 출력됨. /dev/sda1, EF00(혹은 EFI System), 512mb를 확인)

다시 n 입력으로 /dev/sda2 생성 시작
기본 값으로 2가 되있는지 확인 후 Enter
첫 번째 섹터는 기본값대로 Enter
용량으로 입력 +4G
파일 시스템 코드로 8200 입력
p를 통해 재확인후 /dev/sda3 생성을 위해
n
기본 값으로 ‘3’이 되있는지 확인 후 Enter
첫 번째 섹터는 기본값대로 Enter
이번엔 마지막 섹터까지 사용할 예정이므로 -1을 입력
파일 시스템 코드로 8300 입력
마지막으로 w를 입력해서 Write 해줍니다.
이제 포맷 단계로 진행하시면 됩니다!!

포맷

포맷은 위에서 진행한 파티션 각각의 계획에 맞는 파일시스템으로 진행합니다.

UEFI환경에서 부팅 파티션은 FAT32 파일시스템을 원합니다. 따라서 아까 EFI시스템으로 파티션을 계획했던 sda1fat32로 포맷을 할 것이고,

기본 파일 시스템으로 쓰기로 했던 sda3는 가장 범용으로 쓰이는 ext4파일 시스템으로 포맷하겠습니다. 

스왑 파티션은 다음 단계에서 포맷합니다.

/dev/sda2를 포맷하지 않도록 주의해주세요!

vfat은 512M를 잡았으니 금방 되고, ext4인 sda3는 본인이 부여한 용량에 따라 시간이 잠깐 소요되는 것이 정상입니다.

아래 명령어에 디스크 경로가 포함되는데 본인 환경에 맞는 것을 입력하시면 됩니다.

# mkfs.vfat -F32 /dev/sda1
# mkfs.ext4 -j /dev/sda3

명령어 설명

mkfs: MaKe File System

스왑

스왑드라이브를 만들겠습니다. 스왑드라이브는 위의 포맷과 유사한 명령어를 수행한 이후, 켜주는 과정을 추가로 거칩니다.

아래 명령어에 디스크 경로가 포함되는데 본인 환경에 맞는 것을 입력하시면 됩니다.

# mkswap /dev/sda2
# swapon /dev/sda2

명령어 설명

mkswap: MaKe Swap

마운트

마운트는 리눅스 파일 체계 (/(루트 디렉토리)로부터 뻗어나오는 파일 트리) 각각의 디렉터리에 어떤 드라이브의 어떤 파티션을 이용하겠다고 연결하는 거구나 생각하시면 편합니다.

이 가이드에서 소개한 계획을 따라하고 계시다면 루트 디렉터리와 루트 아래의 부트 디렉터리만 마운트하면 됩니다. 아래 가이드는 이 시나리오를 기반으로 작성되어 있으니 걱정하지 않으셔도 됩니다.

별도로 각자 파티선 계획 단계에서 구상한 계획에 따라 홈 디렉터리(/mnt/home)등을 따로 하나의 드라이브(/dev/sda4)로 마운트 하는 것도 당연히 가능합니다.

설치 프로그램 상에서의 /mnt가 설치를 완료하고 재부팅한 시점에서는 /가 됩니다.

설치용 USB의 역할

/mnt 아래에 새로운 시스템 디렉토리들을 모두 마운트하거나 생성하고난 후, 반드시 필요한 소프트웨어를 설치한 다음(pacstrap), 해당 시스템 내부로 진입합니다(chroot). 다시 말해서, 설치 프로그램이 하는 역할은 라이브 리눅스 시스템을 제공하여 /mnt 아래에 또다른 새로운 리눅스 환경을 만들 수 있는 도구를 제공하는 것입니다.

우선은 /mnt에 루트 디렉터리로서 쓸 Linux FileSystem 파티션(/dev/sda3)을 연결해보겠습니다.

아래 명령어에 디스크 경로가 포함되는데 본인 환경에 맞는 것을 입력하시면 됩니다.

# mount /dev/sda3 /mnt
이렇게 하고 나면 /mnt는 설치 완료 후 재부팅하면 /가 됩니다.

그리고 나서 루트 디렉터리가 되는 /mnt 아래에 부트 디렉터리를 만들어 줍니다.

# mkdir /mnt/boot

명령어 설명

mkdir: MaKe Directory

부트 디렉터리를 마운트하려고 만들었던 /dev/sda1을 마운트해줍니다.

# mount /dev/sda1 /mnt/boot

시간 설정

#timedatectl set-ntp true명령어를 통해 서버 시간과 동기화할 수 있습니다. 특히, 윈도우즈를 쓰던 컴퓨터에서 처음 리눅스를 설치할 때는 사용하는 시간 기준이 각각 localtime과 UTC 기반으로 서로 다르기 때문에 꼭 수행하는 것을 추천합니다.

더 고전적인 방법은 #date 명령어를 통해 직접 현재 적절한 시간을 입력하는 것입니다. 휴대폰 등의 별도 디바이스를 통해 구글에 'current utc time'을 검색해 현재 utc 시간을 확인합니다. #date 명령어로 utc 시간을 입력합니다. 순서는 '월일시분연도' 입니다. 예를 들어, 2021년 12월 31일 14시 56분은 #date 123114562021로 입력합니다. 이 방법을 알아두는 것이 쓸모 없어 보일지도 모르지만 #timedatectl과 같은 명령어는 init 시스템으로 systemd를 지원해야만 가지고 있는 명령어입니다. 따라서, 다른 방법도 알아두시면 혹시나 도움이 될 수 있습니다.

위 과정이 너무 귀찮거나 네트워크를 통해 자동으로 시간을 동기화 하는 것에 거리낌이 없으시다면 #ntpd -q -g을 통해서 #date 명령어 부분은 생략 가능합니다. 자동 서버 시간 동기화는 ntp 서버에 내 기기의 IP가 드러난다는 점 등 개인 정보에 예민한 분들은 선호하지 않습니다. 아치 리눅스 설치 iso에는 ntp가 동봉되지 않습니다. #pacman -Syu이후, #pacman -S ntp를 통해 ntp패키지를 설치하시고 사용하시면 됩니다.

# timedatectl set-ntp true # 혹은
# date (현재의월일시분연도) # 혹은
# ntpd -q -g 
다양한 방법으로 올바른 시간대로 맞춘다음, 아래 명령어를 통해 하드웨어 시간도 이 시스템 시간과 동기화해줍니다.

# hwclock --systohc --utc

명령어 설명

하드웨어 클락을 시스템 클락과 (utc를 기준으로 사용해) 동기화함

  • systohc: 시스템시간(sys)을(to) 하드웨어 시간(hardware clock)으로.
  • utc: 로컬타임(localtime)을 기준으로 하지 않고 utc를 기준으로 함을 명시
  • hctosys: 하드웨어시간(hc)을 (to) 시스템시간(sys)으로 밀어내기도 합니다.

UTC? - Coordinated Universal Time

그리니치 표준시와 거의 동일한데 소숫점단위에서 오차가 발생하기 때문에 기술 분야에서는 UTC를 사용한다고 하네요;

mirrorlist

미러리스트는 아치에서 패키지 설치를 할 때 기본 데이터 베이스로 활용할 서버를 나열해 놓은 리스트입니다. 미러리스트에 내가 사용할 서버가 가깝거나, 속도가 가장 빠르게 접속되는 것으로 적용되어 있어야 설치/사용 환경에서 유리합니다. 따라서, 수정해 보도록 하겠습니다. nano 에디터를 사용해서 파일을 열겠습니다.

# nano -w /etc/pacman.d/mirrorlist

기존 가이드의 내용대로 진행하셔도 됩니다만, 최근 iso 들은 유선 네트워크가 연결된 상태에서 부팅한 경우, 네트워크 환경을 통해 이미 mirrorlist를 작성한 채로 부팅됩니다. 따라서 제공된대로 별도로 수정할 필요 없이 그냥 사용하셔도 무방한 것으로 확인됩니다.

다 지우고 적으실 분들은 (nano 에디터 기준) 지우기 시작할 라인으로 커서를 옮기신 이후, Alt+Shift+T를 하시면 맨 끝줄까지 삭제됩니다.

우리나라 미러를 다 적어두겠다 하시는 분들은 아래의 목록을 참고하시면 됩니다. 아치 리눅스 미러리스트 페이지에서 생성된 결과입니다. 아래를 적으신 후, Server앞의 #로 된 주석은 제거하셔야 합니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
## South Korea
##
## Arch Linux repository mirrorlist
## Generated on 2021-09-07
##

## South Korea
#Server = http://mirror.anigil.com/archlinux/$repo/os/$arch
#Server = https://mirror.anigil.com/archlinux/$repo/os/$arch
#Server = http://ftp.harukasan.org/archlinux/$repo/os/$arch
#Server = https://ftp.harukasan.org/archlinux/$repo/os/$arch
#Server = http://ftp.lanet.kr/pub/archlinux/$repo/os/$arch
#Server = https://ftp.lanet.kr/pub/archlinux/$repo/os/$arch
#Server = http://mirror.premi.st/archlinux/$repo/os/$arch
#Server = https://mirror.premi.st/archlinux/$repo/os/$arch

각 줄이 /$repo/os/$arch 로 끝나야 합니다.

nano 편집기를 사용하여 편집 후 저장하고 나오는 방법

Ctrl+X, Y, Enter

  • ctrl+x : 종료
  • 그리고 묻는 것: 수정된 사항이 있는데 수정하십니까? : y
  • 파일 명은 뭐로 합니까? (디폴트 값은 원래 파일명으로 되어 있으므로) Enter

vim 편집기를 사용하여 편집 후 저장하고 나오는 방법

Esc , :+W+Q , Enter

  • esc를 이용해 insert모드(입력 모드)에서 normal모드(일반 모드)로 나옵니다.
  • :를 이용하여 명령어를 입력할 준비를 합니다. 화면 하단에 콜론이 입력된 것을 확인하실 수 있습니다.
  • write, quit

reflector가 뭔지 알고 어떻게 사용하는지 익숙하신 분들은 지금 단계에서 설치해서 속도와 국가 코드에 따라, 혹은 본인 환경에 맞게 새로 작성하셔도 무방합니다.

pacstrap

Note

기존의 가이드에서 pacstrap 파트에 대한 설명은 한 줄이 전부였습니다. 하지만, 아치 리눅스 측의 논란의 업데이트(19년 10월)로 인해 설명이 늘어났습니다. 지금까지 제공되던 base 패키지가 너무 불필요한 것들까지 포함한다(bloated)며 그런 불필요하고 직접 설치하기를 바라는 패키지를 제거하였습니다. 따라서 이제 기존의 명령어만으로는 매뉴얼 페이지(man-db, man-pages, texinfo), 각종 에디터(nano, vim, vi), 네트워크 패키지(dhcpcd), linux-firmware와 각종 파일시스템 패키지를 설치할 수 없습니다. 따라서, 본인에게 필요한 것들을 아래 명령어에 추가하여 작성하시기 바랍니다.

변경에 맞추어 모두 업데이트 완료하였습니다.

dhcpcd? NetworkManager?

권장: networkmanager

노트북 등에서 유/무선을 모두 쓰시거나, 혹은 데스크탑 환경(그놈/KDE 플라즈마)과 잘 결합해 개발되는 패키지를 사용하고 싶으신 분들은 networkmanager를 선택하시면 됩니다.

반드시 입력하여 설치해야 하는 명령어는 다음입니다.

# pacstrap /mnt base linux linux-firmware

그리고 추가적으로 아래 항목들은 위 linux-firmware 뒤에 추가할만한 것들입니다. 예상하기로 여러분께 가장 필요할 것으로 생각되는 패키지부터 아마도 필요하지 않을 것 같은 패키지 순서로 나열합니다.

nano          - vim을 선택하실 분들은 제외
vim           - nano만 쓰실 분들은 제외, 둘다 선택도 가능
=== 하지만 에디터 한 종류는 반드시 필요하므로, 일반적으로 위 두 개 중 하나는 꼭 설치하시기 바랍니다. ===

dhcpcd        - networkmanager를 선택하실 분들은 제외
networkmanager- dhcpcd를 선택하신 분들은 제외
=== 네트워크 패키지는 반드시 필요하므로, 일반적으로 위 두 개 중 하나는 꼭 설치하시기 바랍니다. ===

base-devel    - 대부분의 사용자에게 필요할 것으로 예상
man-db
man-pages
texinfo
dosfstools
e2fsprogs
=== 여기까지 대부분의 사용자에게 권장 ===

mdadm         - 여기서부터는 무슨 패키지인지 모르시겠다면 불필요한 것입니다.
lvm2

base 패키지 목록base-devel 패키지 목록은 링크에서 확인하시기 바랍니다.

genfstab

/etc/fstab은 부팅할 때 어느 디렉토리에 어느 드라이브가 마운트 되야 하는지를 시스템이 알게 해주는 파일 시스템 테이블(File System Table) 파일입니다.

아래 작업은 genfstab이라는 소프트웨어를 활용해 그 파일 시스템 테이블 파일(/etc/fstab)을 자동으로 생성하는 작업입니다. (Gentoo, LFS 등 더 귀찮은 수작업 시스템은 genfstab과 같은 유틸리티를 제공하지 않아 손으로 작성합니다.)

# genfstab -U /mnt >> /mnt/etc/fstab

명령어 설명

genfstab : generate File System table

  • -U : U는 대문자(UUID로 작성하겠다는 의미, 검색: UUID vs PARTUUID)
  • /mnt 아래의 마운트 된 드라이브들을 그대로
  • >> :저 파일에 추가로 작성(Append). 부등호를 한개만 사용하면(>) Overwrite명령이 되어 파일이 이미 존재하더라도 지우고 새로 작성됩니다.
  • /mnt/etc/fstab: /mnt/etc/fstab이라는 이름으로

#cat /mnt/etc/fstab 명령어를 통해서 어떤 게 쓰이는 건지 확인해 보실 수도 있습니다. (cat 명령어는 concatenate(연쇄, 연관시키다)의 줄임으로, 해당 파일의 내용을 보이거나, 파이프(|: Shift+\)를 활용해 다른 파일에 입력할 때 자주 활용합니다.)

아치 리눅스 진입

루트 진입

# arch-chroot /mnt

명령어 설명

arch-change root
/mnt/로 가정하는 환경으로 진입합니다.

시스템 내부로 들어왔습니다! 추가적인 시스템 세팅을 진행하도록 하겠습니다. 여기에서 추후 사용할 소프트웨어를 설치하시면 나중에 재부팅 후에도 설치된 채로 남아있습니다. 즉, 실제 설치될 아치 리눅스 환경을 USB를 통해 부팅된 아치 리눅스 라이브 환경에서 들어온 것입니다.

따라서, 예를 들자면, vim 에디터를 사용하실 분들은 #pacman -Syu 이후, #pacman -S vim 명령어를 통해 설치하셔도 재부팅 이후, 아치 환경으로 부팅했을 때 해당 패키지가 설치되어 있습니다.

뿐만 아니라, 설치 완료 후에 부팅이 안되는 경우, 위 명령어(#arch-chroot /mnt)를 통해 재진입하여 오류를 바로잡을 수도 있습니다.

인터넷 확인

# ping -c 3 www.google.com

비밀번호 설정

# passwd

타이핑하시는 '설정할 비밀번호'는 원래 화면에 안보입니다. 놀라지 마세요!!
확인차 총 두 번 입력하는게 맞습니다. 놀라지 마세요!!

언어 생성

# nano -w /etc/locale.gen

파일이 뜨면 화살표 키를 이용해 아래로 내려가 en_US.UTF-8을 찾습니다.

앞의 주석(#)만 제거해주세요. 그리고 nano 에디터 기준 Ctrl+X, Y, Enter 입니다.

/etc/locale.gen은 어떤 언어 시스템을 생성할지 결정합니다. 즉, 여기서 en_US.UTF-8ko_KR.UTF-8을 주석 해제 해 두어야 아래에서 locale.conf에 둘 중 어느 하나를 골라 적더라도 실제로 사용할 수 있습니다. ko_KR.UTF-8을 사용하지 않으실 분들은 en_US.UTF-8만 주석 해제 하시고 생성하시면 됩니다.

설정파일대로 생성을 합니다.

# locale-gen

언어 설정

locale.conf파일은 시스템 전반의 언어를 관리하는 파일입니다. 여기에 지금 en_US.UTF-8을 적어넣을텐데, 한글 디렉토리명, 터미널에서의 한글 오류 등을 선호하시는 분들은 ko_KR.UTF-8을 입력해주시면 됩니다.

# echo LANG=en_US.UTF-8 > /etc/locale.conf

명령어 설명

echo>LANG=en_US.UTF-8 이라는 문장을 그대로 /etc/locale.conf 파일에 덮어씌우겠다 라는 뜻입니다. 파일이 없을 경우 파일이 생성됩니다. >>를 이용해 기존 내용은 그대로 두고 추가할 수도 있습니다. 이전처럼 이부분도 #nano -w /etc/locale.conf혹은 #cat /etc/locale.conf 통해 확인해 보실수 있습니다.

위 명령어와 다르게 #localectl set-locale LANG=en_US.UTF-8 과 같이 적용하는 방법도 있습니다. 이것은 systemd initsystem에서만 사용 가능한 방법이므로 다양한 시스템을 활용하시는 분들은 주어진 명령어를 활용하시면 더 유익할 것으로 생각합니다.

(생략 무방) 아래의 명령어로 현재 진행하고 있는 쉘 환경에서의 언어도 en_US.UTF-8이라고 선언합니다.

# export LANG=en_US.UTF-8

호스트네임 설정

아래 명령어 예시에서 archlinux 부분에 원하는 PC이름을 설정하시면 됩니다.

# echo archlinux > /etc/hostname

로컬타임 설정

위에서 하드웨어 시간을 UTC 기준, UTC 시간대로 세팅했으니 이제 한국 시간으로 맞춥니다.

# ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

명령어 설명

  • link -symbolic -force옵션으로 
  • /usr/share/zoneinfo/Asia/Seoul세팅을
  • /etc/localtime에 링크하겠다.

리눅스에서의 심볼릭 링크 혹은 소프트 링크는 윈도우즈 환경의 바로가기 생성과 유사하다고 생각하시면 편합니다.
앞으로/etc/localtime을 참조할 때 실제론 /usr/share/zoneinfo/Asia/Seoul를 향하도록 해주는 작업입니다.

사용자 추가

아래 명령어의 user 부분에 본인이 사용하실 이름을 입력합니다.

# useradd -m -g users -G wheel -s /bin/bash user

명령어 설명

-m : user라는 이름을 홈 디렉토리에 생성. 유저의 홈이 됨.
-g: 소문자 g는 기본 그룹을 의미, 따라서, users 그룹에 포함됩니다.
-G: 추가적으로 속할 그룹 설정(참조: 아치리눅스 그룹리스트),
wheel: 관리자 그룹(su 명령 사용 가능 그룹),
-s: default가 아닌 다른 쉘을 사용하기 위한 옵션(zsh, fish를 사용하고자 할 때)
/bin/bash: -s로 다른 쉘을 사용하겠다고 했으니 그 다른 쉘로써 bash를 지정

아래 명령어의 user 부분을 본인이 지정한 유저 이름으로 변경해야 합니다.

# passwd user

sudo

sudo? doas? su -l?

최근 해외 포럼에서 sudo에 대한 논란이 작게나마 발생합니다.

  • BSD 계열에서 자주 보이는 'OpenBSD의 doas를 통해 더 미니멀하게 접근할 수 있다'는 의견과
  • 원래 sudo가 개발된 목적이 다중 사용자 컴퓨터에서 활용하기 위함이었던 것을 감안하면 '1인 사용 환경에서는 sudodoas든 필요 없이 su -l등을 통해 직접 루트 환경이 되어 작업하는 것이 보안상 적절하다' 등이 주요 논지입니다.

판단은 여러분 몫입니다. 초보 사용자용 입문 가이드인 만큼 대부분의 경우에 접하기 쉬운 sudo를 설치하겠습니다.

sudo가 설치되지 않은 경우, #pacman -S sudo를 통해 설치합니다.

vim 에디터가 익숙하신 분들은 그냥 #visudo (EDITOR 환경 변수가 vim으로 잡혀 있는 경우) 하시거나 #EDITOR=vim visudo 하셔도 됩니다.

# EDITOR=nano visudo

Warning

sudoers 파일은 #nano /etc/sudoers커맨드로도 수정이 가능하지만, 원칙은 visudo를 통해 수정하는게 맞습니다. visudosudoers파일의 문법적 오류 등을 점검하고 잠그는 기능을 하기 때문에 임의로 #nano /etc/sudoers를 직접 수정하는 것은 권장하지 않습니다.

sudo 명령어 가능자에 본인을 추가하겠습니다.

'## wheel 그룹 멤버가 어떤 커맨드든 입력할 수 있게 허락하려면 주석을 제거하세요'부분을 수정합니다.

76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
##
## User privilege specification
##
root ALL=(ALL) ALL

## Uncomment to allow members of group wheel to execute any command
# %wheel ALL=(ALL) ALL   // 이렇게 주석처리 되있던 것을
%wheel ALL=(ALL) ALL     // '#'을 지워서 이렇게 되도록 주석 제거 처리 해주면 됩니다.

## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
// 위 설정의 주석을 제거하면, 
// wheel 그룹 소속 사용자가 '비밀번호마저도 필요없이' 
// sudo만 붙이면 명령 실행이 가능하도록 합니다. 
// 보안상의 이유로 강하게 반대합니다. 
// 어떤 변경을 하는 것인지 정확히 알고 계시는 분만 주석 제거하시기 바랍니다.

부트로더

부트로더 설치를 하겠습니다. 파티션 때와 마찬가지로 두 가지중 하나를 선택해 이용할 수 있습니다.

  1. grub은 대부분 배포판에서 사용하기 때문에 익혀두시면 다른 배포판을 다룰 때에도 익숙할 수 있습니다. 다만 grub과 더불어 efibootmgr과 같은 프로그램을 추가로 설치해서 진행합니다.
  2. systemd-bootsystemd에 내장된 기능을 이용해 부트를 시도합니다. 첫 설치는 조금 더 까다롭다고 느끼실 수 있지만 추가 설치를 최소화하려는 아치 배포판의 철학과 매우 잘 부합한다고 생각합니다.

Note

제 추천을 원하신다면 systemd-boot를 추천합니다만 둘 다 어떤 것인지 처음 들어보셨거나, 들어봤다고 하더라도 다른 부트로더, 예를 들어, lilo, elilo가 뭔지 모르신다면 grub을 사용하시기 바랍니다.

부트로더는 시스템을 부팅시키는게 핵심 역할이기 때문에 다양한 부트로더를 활용해봤거나 수정을 직접 해본 경험이 충분하지 않은 이상 많은 배포판에서 활용하고, 문서나 지원을 검색하기 용이한 패키지를 사용하는 것이 맞다고 봅니다.

gurb'2'? gummiboot?

grub은 현재 grub2입니다. grub-legacy라고 하여 예전 BIOS환경일 때부터 쓰여온 훌륭한 소프트웨어입니다. 다만, 너무나 많은 기능을 제공하다보니 단지 UEFI 환경의 부트만을 원하는 사용자에게는 의미없는 기능들도 추가되어 있습니다. 그것은 곧, 소프트웨어에 예기치 못한 충돌이나 문제가 발생할 소지가 많을지도 모른다는 의미로 받아들이기도 합니다.

systemd-bootbootctl혹은 gummiboot라고도 불리는데 그 이유는 systemd가 흡수를 하기 전 외부에 존재하는 소프트웨어일 때의 이름이기 때문입니다. 이제는 systemd와 완전히 합쳐져서 UEFI 부트만을 보조하는 기능을 수행합니다(물론, BIOS 부트를 설치할 수 있습니다만 추천하지 않습니다). 아치리눅스 설치 과정에서도 이미 default로 설치되는 프로그램이기도 합니다.

Warning

아래에는 grub을 이용하는 과정과 systemd-boot를 이용하는 과정을 설명합니다.
둘 중 반드시 하나의 방법만을 사용하시기 바랍니다.
초보 사용자의 경우 grub을 권장합니다.

다만, 시스템을 조금 깊게 이해해보고 싶으시거나, 이미 아치 리눅스 설치 과정에 익숙하신 분들은 'systemd-boot' 파트에 추가적으로 알아두면 좋을 정보가 많이 포함되어 있으므로 한번쯤 살펴보시는 것을 추천합니다.

설치를 합니다. 설치 전에 레파지토리(아치 리눅스 측 패키지 저장소)를 기준으로 로컬 레파지토리(설치 중인 컴퓨터가 가진 소프트웨어들의 정보)를 업데이트, 동기화 합니다.

# pacman -Syu

명령어 설명

  • -S: 원격 레파티토리와 동기화
  • -y(--refresh): -S와 쓰일 수 있는 옵션으로 원격 레파지토리의 패키지 DB를 새로 다운로드
  • -u(--sysupgrade): -S와 쓰일 수 있는 옵션으로 다운로드한 DB에 맞게 시스템 패키지를 업그레이드

이제 사용할 패키지들을 가져와서 설치하겠습니다.

# pacman -S grub efibootmgr

이제 grub을 이용해 부트가 가능하도록 설치하겠습니다.

이 과정을 많은 분들이 혼란스러워 하시는데 이 과정은 '부트로더의 설치' 입니다. 즉, 부팅 과정을 책임질 'grub'이 시스템 설정을 확인하고 부팅이 가능하도록 만드는 과정입니다. (grub '패키지'를 다운로드/설치하는 것이 아님. 패키지는 위 명령어로 설치하였습니다.)

# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch --recheck

명령어 설명

  • grub-install: 그럽 설치 명령
  • 타겟=x86_64-efi: 타겟 아키텍쳐 x86_64-efi로 지정
  • efi-디렉토리=/boot: efi디렉터리 위치 지정
  • --bootloader-id=arch: 부트로더-이름은 arch
  • --recheck

이제, #nano -w /etc/default/grub을 통해, 부트로드의 기본 설정을 변경할 수 있습니다. 예를 들어, 부팅할 OS선택을 기다릴 시간을 0 또는 1초 처럼 짧게 변경하거나 할 수 있습니다. 여기서는 건드리지 않겠습니다. 설정이 완료된 경우, /etc/default/grub의 설정들을 기반으로 하여 부팅을 위한 '파일(/boot/grub/grub.cfg)'을 생성/설치합니다.

# grub-mkconfig -o /boot/grub/grub.cfg

명령어 설명

  • grub-mkconfig: grub이 /etc/default/grub에 쓰인 설정대로 실제 부팅에 사용할 설정 파일(grub.cfg)를 생성합니다.
  • -o: UNIX 계열에서 -o는 output의 줄임으로 생성 파일 경로/이름을 지정할 때 자주 쓰입니다.
  • /boot/grub/grub.cfg: 가장 기본적으로 부팅시 확인하는 경로이자 파일명입니다.

추후에 여러가지 이유로 grub 설정을 변경한 때에도 사용하는 명령어입니다. 특히 커널 변수등을 실험해보거나 할 때 /etc/dafault/grub 파일을 수정한 후에 위 명령어를 통해 업데이트를 합니다.

정리하자면

  • grub 패키지를 다운로드 받아 설치한 이후,
  • grub 부트 로더를 시스템에 설치하면 /etc/default/grub이라는 추가 설정 가능 파일을 남기는데, 필요하다면 이 파일을 입맛에 맞게 수정하고 나서
  • #grub-mkconfig -o /boot/grub/grub.cfg를 통해 /boot/grub/grub.cfg를 만들어야
  • 부팅 과정에서 /boot/grub/grub.cfg 설정을 읽어들여 부팅이 가능해집니다.

이미 내재된 systemd initsystem의 systemdboot 부트로더를 시스템에 설치합니다.

# bootctl --path=/boot install

이제 /boot/loaderloader.conf 파일을 수정해야 합니다.

# nano -w /boot/loader/loader.conf

파일에 아래와 같이 작성

default arch
editor 1
timeout 3

디폴트 이후 arch에는 본인이 알아볼 이름을 넣으시면 됩니다. 보통은 'arch'를 이용합니다.

다만, 주의하실 점은 이 부분에 넣은 이름을 꼭 기억하셨다가 바로 뒤 과정에서 entries/abcd.conf파일의 'abcd'부분에 동일하게 작성해 주셔야 한다는 점입니다. 지금 arch로 작성하시면 나중에 그냥 entries/arch.conf파일을 만드시면 됩니다.

editor 변수: 부팅 중에 e키 등을 이용해 커널 변수 혹은 부팅 환경설정을 조정하는 경우가 있는데 0으로 설정 시에 이것을 방지합니다. 특별한 이유가 없는 이상 1로 유지하는 것을 권장합니다.

timeout 변수: 3 은 부팅 화면 중에 선택을 기다리는 시간입니다. 이것도 마찬가지로 가급적 어떤 조치를 취할 수 있는 최소한의 시간, 3 등으로 두시는 것을 권장합니다.

이제 부트 디렉터리 아래, 엔트리 디렉터리에 파일을 생성하고 수정하겠습니다.

# nano -w /boot/loader/entries/arch.conf
아까 위에서 default에 적으셨던 그 이름을 파일명으로 생성하시면 됩니다.

title ArchLinux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/sda3 rw

title에 적히는 이름은 부팅시 표기되는 이름입니다. 따라서, 알아보기 쉬운 이름을 사용하시면 됩니다.

linux 항목에서 vmlinu"z"에 주의하시기 바랍니다.

initrd 항목의 /initramfs-linux.img는 부팅 때, 시스템을 부팅하기 위해 필요한 최소한의 도구들을 담아 이미지로 제작한 파일입니다. 즉, 루트 파일시스템 타입이 특이하다면 해당 타입을 해석하는 방법을 이 이미지에 담아야합니다. 또, 만약 본인의 하드웨어 일부가 특별한 드라이버를 요구하기 때문에, 기본 커널 이미지에 없고 별도의 모듈을 로드해야 한다면 해당 모듈을 저 이미지에 담아 부팅 과정에서부터 해당 하드웨어 사용이 가능하도록 만들 수도 있습니다.

Note

위 설명에서 뭔가 이상한 점을 눈치채셨나요? 루트 아래에 있는 파일을 이미 읽고 있는데 어떻게 루트 파일시스템을 해석하지 못할 수 있을까요? systemd-boot가 읽는 파일에 적힌 경로는 ESP와 비교하여 적용됩니다. 즉, 여기서의 //boot를 의미합니다. 실제 부팅 과정에서는 가이드대로 따라오셨다면 /dev/sda1이 먼저 읽어들여진 이후, /dev/sda1을 마치 /처럼 마운트한 다음, /vmlinuz-linux/initramfs-linux.img를 통해 나머지 제대로 된 경로와 파일 시스템을 확인하여 시스템을 켭니다. 즉, 여기서 적고 있는 파일들의 이름 등이 헷갈리거나 확인을 하기 위해서는 #ls /boot를 통해 부트 디렉터리 아래에 있는 이름과 대조해보아야 합니다. 더 자세한 부팅 과정에 대한 설명은 생략하도록 하겠습니다.

PARTUUID?

option 항목에서 권장 사항은 물론 PARTUUID를 이용하는 것입니다. 하지만 우선은 루트 파티션 경로를 지정해 주는것으로 대체하도록 하겠습니다. 아치 위키에 따르면 리포맷 되거나 경로 매핑이 변경되는 경우에 PARTUUID가 장점을 가진다라고 되어있는데, 일반 사용자, 초보 사용자 기준에 그럴 일이 드물 것으로 가정하고 경로를 지정합니다. PARTUUID를 사용하고 싶으신 분들은

  1. #blkid를 통해 루트파티션(지금은 sda3)의 PARTUUID를 복사하시거나 적어두신 후 위의 options 항목의 내용을 root=PARTUUID=123efg45--789 rw 로 해주시면 됩니다. 물론 123efg45--789 이 부분에 본인의 PARTUUID가 들어갑니다. (원래 PARTUUID가 깁니다. 놀라지 마세요! "(쌍따옴표) 같은게 추가되지 않았는지 잘 확인하시기 바랍니다!!)

  2. 적어두는 것이 귀찮은 분들은 options 줄을 지운채로 저장하신 후 #echo "options root=PARTUUID=$(blkid -s PARTUUID -o value /dev/sda3) rw">> /boot/loader/entries/arch.conf 명령어를 활용하시면 됩니다. 무슨 방법을 사용하시든 반드시 다시 #cat /boot/loader/entries/arch.conf하셔서 추가한 내용들이 적절히 적혀 있는지 확인하시기 바랍니다.

exit

현재 상태로 아래에서 소개하는 #exit을 통해 chroot환경에서 나가고 재부팅을하면 네트워크 연결이 가능하지 않습니다. 따라서, 네트워크 매니저를 설치하고 켜주도록 하겠습니다.

우선, 아직 설치하지 않았다면,

# pacman -S networkmanager

그리고 네트워크 매니저를 재부팅시에 자동적으로 실행되도록 설정합니다.

# systemctl enable NetworkManager.service
systemd 이닛시스템에서 서비스(데몬)들을 관리하는 명령어가 systemctl입니다. 현재 부팅된 환경에서 바로 서비스를 켜고 사용을 시작하려면 start, 다음 부팅 때도 자동으로 실행하려면 enable 옵션을 사용합니다. 끝에는 대상 서비스의 이름을 적습니다. (systemctl 명령어에서 서비스 이름의 'N'과 'M'이 대문자임을 주의하시기 바랍니다.)

혹시, 이 부분을 놓치고 지나가셔서 네트워크가 안되는 분들은, chroot 방법을 통해 다시 시스템에 진입하셔서 설치가 가능합니다.

# exit

umount

각 디렉터리에 마운트 되어있던 장치들을 제거합니다.

# umount -lR /mnt

reboot

재부팅을 합니다!!!

# reboot

장치가 종료되고 다시 시작되는 시점에 USB를 빼주시면 됩니다. 재부팅이 되면 로그인 하라는 화면이 나올텐데 설치에 성공하신 겁니다! 축하드립니다! 아마 기쁘신 분도 있고, 이게 뭐야 하시는 분도 있을텐데, 이게 뭐야 싶으신 분들은 그래픽 환경에 익숙하셔서 그런거라고 생각합니다. 서버와 같이 헤드리스(headless)로 작업하실 분들을 제외하고 앞으로 이어질 데스크탑 환경을 설치하시면 그래픽 환경에서 아치를 사용하실 수 있습니다.

그래픽 환경 설치

xorg는 그래픽 환경을 위한 시스템 구축에 필요합니다. xorg가 오래되었다는 이유로 비판을 받기도 합니다. 현재 wayland라는 대체 라이브러리가 상용화를 목전에 두고 있습니다(페도라는 wayland가 디폴트). 하지만 아직도 리눅스 배포판 계에 있어서 그래픽 환경의 대명사는 xorg 환경이라고 해도 과언이 아닙니다.

가이드를 따라하실 분들은 wayland를 설치하도록 하겠습니다.

본인이 선호하는 데스크탑 환경이 있거나, 윈도우 매니저가 있고, 해당 환경이 xorg와 호환에 문제가 없는 경우, xorg-server를 설치하시고 진행하시면 됩니다.

로그인

본인이 설정한 ID/Password로 로그인을 합니다.

인터넷 연결 재확인

$ ping -c 3 www.google.com

팩맨 설정

이제 설치할 것들이 몇 가지 있으니 pacman을 업데이트하겠습니다.

일반 사용자로 로그인하였으므로 프롬프트는 $로 변경됩니다. sudo를 활용해 실행합니다.

$ sudo pacman -Syu

pacman-optimize는 pacman 5.1.0 update(2018-05-29) 이후 삭제되었습니다. /etc/pacman.conf 파일과 /etc/makepkg.conf를 살펴보시는 것도 좋습니다.

기본 정보

xorg자체도 물론 xterm 등의 소프트웨어를 통해 작동 가능한 데스크탑 환경을 구축할 수 있지만, 대개 이 위에 추가적으로 설치하는 다양한 DE(Desktop Environment; 데스크탑 환경-종류:Gnome,KDE5/Plasma,XFCE 등 다수), 혹은 WM(Window Manager; 윈도우 매니저-종류:i3wm, awesome, dwm, xmonad 등 다수)를 위한 라이브러리로써 자주 활용합니다.

가이드는 Gnome을 기준으로 소개합니다.

필수 설치

여기서는, Gnome 데스크탑 환경을 설치하고, 데스크탑 환경을 위해 'Xorg-xwayland'를 설치하겠습니다. 설치가 완료되고 나면 디스플레이 매니저를 사용할 수 있게 systemctl enable을 진행합니다. Gnome 패키지에는 'gdm'을 포함한 Gnome 데스크탑 환경에서 사용하는 필수 소프트웨어가 포함되어 있습니다. 별도의 소프트웨어를 추가로 설치하고 싶으시다면 'gnome-extra'를 설치하시면 됩니다. 'gdm' 은 'Gnome Display Manager'로써, 데스크탑 환경의 로그인 화면과 전반적인 그래픽 환경을 관리하는 프로그램입니다.

$ sudo pacman -S xorg-xwayland gnome (gnome-extra)
$ sudo systemctl enable gdm

이전에 인터넷 연결을 위해 systemctl enable NetworkManager 했던 것을 기억하시나요? 이번엔 gdm 서비스를 부팅시마다 사용하기 위해 enable을 사용하였습니다.

다른 데스크탑 환경을 구축 하실 분들은 아래의 '데스크탑환경/디스플레이 매니저'를 설치해주시면 됩니다.

각종 데스크탑 환경과 디스플레이 매니저

다른 데스크탑 환경은 아직 wayland환경에서 구동하기에 부담스러운감이 있습니다. 따라서, xorg-server를 설치합니다.

  • KDE5/Plasma: $sudo pacman -S xorg-server plasma-meta kde-applications-meta, $sudo systemctl enable sddm.service
  • XFCE: $sudo pacman -S xorg-server xfce4 xfce4-goodies
  • 대부분의 경우에 고민없이 설치하기에 좋은 LightDM도 있습니다.

reboot again

재부팅을 진행합니다.

$ sudo reboot

자 어떤가요? 로그인 화면이 그래픽 환경으로 부팅 되셨나요? 이제 사용자 비밀번호를 입력한 후에 아치 리눅스 Gnome 환경 준비가 모두 완료되었습니다. 아! 하지만 권장사항들이 몇가지 더 있네요!

데스크탑 환경설정

상단의 'Activities'의 'settings'를 통해 기본 설정을 살펴 보는 것을 추천합니다.

wifi

상단 패널 우측의 시스템 도구 트레이를 클릭해서 wifi 항목을 보시면 연결 가능 목록이 나열되는 것을 확인할 수 있습니다. 이제 여러분은 원하는 와이파이에 접속하실 수 있습니다. 어때요? 리눅스는 Wifi설정이 어렵다는데 사실은 이렇게 간편하답니다!

웹브라우저 설치

파이어폭스

웹 브라우저가 그놈 데스크탑 환경의 기본 '웹' 소프트웨어를 이용하도록 되어있네요. 본인이 사용하고 싶은 웹 브라우저가 파이어폭스, 혹은 구글-크롬이라면 어떻게 해야 할까요? 파이어폭스라면 설치해주면 됩니다!

$ sudo pacman -S firefox

파이어폭스 설치가 완료되었습니다!

Note

팩맨을 활용해서 설치할 수 있는 소프트웨어의 경우는 아치의 공식 레파지토리에 올라와 있는 것들입니다. 공식 레파지토리에는 아치 리눅스의 라이선스와 호환이 가능한, 즉, 오픈 소스/자유 진영 소프트웨어만 있습니다.

크롬의 경우에는 공식 레파지토리에 chromium이라는 오픈소스 버전 크롬이 있습니다. 사실 둘의 차이점은 크지 않아요!(chromium 설치 :$sudo pacman -S chromium)

하지만 나는 꼭 구글-크롬 을 사용하고 싶다하시면 아치의 자랑인 AUR을 사용해 보겠습니다!

vscode가 이상해요!

위에서 적은 이유로 공식 레파지토리를 통해 설치되는 visual studio code는 사실 Code-OSS이라는 이름의 오픈 소스 버전입니다. MS에서 사용하시던 vscode와 완전히 동일한 사유 소프트웨어(proprietary software) 버전을 사용하고자 하신다면 아래에서 설명하는 AUR 사용 방법을 숙지하신 다음, 'visual-studio-code-bin'이나 유사 패키지를 설치하시기 바랍니다.

구글 크롬

AUR 이란 Arch User Repository로 아치 사용자들이 관리하고 업로드하는 패키지들의 모음입니다. AUR을 이용해 패키지를 빌드하는 방법은 확실히 알아두셔야 합니다. 나중에 부록에서 찾으실 수 있는 AUR-helper(yay 등)를 사용하시더라도 오류는 언제든지 발생할 수 있습니다. 그 때는 부득이하게 수동으로 설치하셔야 합니다.

Tip

아치리눅스 위키페이지에 따르더라도, AUR helper는 언제나 도움을 주는 제 3 자 소프트웨어일 뿐, 공식적으로 지원을 받는 프로그램이 아닙니다.

기본 개념은

  • "aur.archlinux.org"에 접속해서 내가 설치하려고 하는 패키지의 "snapshot"을 다운로드 받습니다.
  • 다운로드 받은 스냅샷의 압축을 해제하면 PKGBUILD파일이 있는데,
  • MAKEPKG라는 명령어를 통해 컴퓨터가 PKGBUILD의 내용대로 설치를 하는 것입니다.

자세한 내용은 아래를 통해 설명드리겠습니다. 지금은 '웹'소프트웨어 밖에 없으니 그것을 이용해서(혹은 파이어폭스를 설치하셨다면 파이어폭스를 이용해서)

"https://aur.archlinux.org"를 접속한 후에
우측의 검색 창에 ‘google-chrome’을 입력하시면
구글-크롬에 해당하는 AUR페이지가 뜹니다.
우측의 작은 대화상자(Package Actions)에서
Download Snapshot 을 이용해 Downloads 디렉터리로 가져옵니다.
터미널 실행 후,
$ cd Down[tab]

최근 모든 쉘은 키보드의 Tab 키로 자동 완성 기능을 제공합니다.

$ ls
google-chrome.tar.gz를 확인할 수 있습니다. name.tar.gzgzip으로 압축되고 tar로 패키지된 파일 이라는 뜻입니다. 해제는 tar명령어를 이용하면 됩니다.

$ tar -xvzf goog[tab]
tar는 파일 압축 해제 프로그램이라고 생각하셔도 됩니다.

명령어 설명

  • x: extract(압축해제)
  • v: verbose(과정 출력)
  • z: gzip 으로 압축된 파일
  • f: 이어 입력할 이름의 압축 파일을 해제
  • Tab키를 이용해 나머지 이름은 자동완성해보았습니다.
$ ls

완료되고 나서 다시 ls를 해보면 google-chrome 디렉터리가 생겼습니다!

$ cd goog[tab]
$ makepkg -risc

명령어 설명

  • -r: 빌드가 완성된 이후, 빌드 과정에서 필요로 했던 의존성으로 설치된 패키지들을 다시 제거합니다. 이 옵션으로 의존성으로 설치된 패키지를 제거한 경우, AUR 패키지 업그레이드 당시에 아직도 의존하는 패키지라면 해당 업그레이드 버전을 빌드할 때 다시 설치됩니다. 그러나 업그레이드가 자주 있지 않다는 점을 알거나 더 깔끔한 시스템을 원하는 경우, 옵션을 켜서 제거하는 것도 좋은 방법입니다.

  • -i: 빌드가 완성되면 자동으로 설치를 진행합니다. 이 옵션을 제거하는 경우, 이어지는 명령어로 $pacman -U pkgname-pkgver.pkg.tar.zst를 입력하여 설치해야 합니다. 이런 번거로움을 없애줍니다.

  • -s: 의존성 중, pacman으로 설치 가능한 공식 레파티토리 패키지들은 자동으로 설치합니다. AUR 패키지 중에서, 또 다른 AUR 패키지에 의존하는 경우는 수동으로 먼저 설치해주어야 합니다.

  • -c: 설치 이후, 빌드 과정에서 생성된 임시 파일을 삭제합니다.

설치 과정에 sudo비밀번호를 요구하면 계정의 비밀번호를 입력하시면 됩니다.

google-chrome 설치가 완료되었습니다! 상단 패널의 Activities>All을 통해서 확인하실 수 있습니다! (간혹 데스크탑환경에서 로그아웃/로그인을 다시 해줘야 아이콘이 보이는 경우도 있습니다.)

한글 폰트

한글 폰트가 시스템에 설치되어 있지 않아, 네이버 등을 접속해보면 네모난 박스로 표시됩니다. 이는, noto-fonts-cjk 등의 패키지를 설치하여 해결할 수 있습니다. ($sudo pacman -S noto-fonts-cjk)

그러나 여기서는 AUR에 더 익숙해지고자 공식 레파지토리에는 없는 폰트를 AUR을 통해 설치해보겠습니다.

(aur.archlinux.org에 접속/ttf-nanum검색/snapshot 다운로드)
$ cd Down(tab)
$ tar -xvzf ttf(tab)
$ cd ttf(tab)
$ makepkg -risc

위의 과정을 통해 한글 폰트 설치가 완료되었습니다. 여기까지 진행하면, 구글 크롬을 통해 유투브/네이버를 이용하더라도 한글 폰트가 깨지지 않고 출력됩니다. 하지만, 한글로 검색을 하고 싶은데 한글 입력이 안됩니다. 어떻게 해야 할까요?

한글 입력

이제 그놈(Gnome)은 언어 입력기로 ibus를 아예 통합해 주었습니다. 즉, 설정의 언어&형식 탭에서 선택하여 변경이 가능합니다. 다만, 필요한 패키지는 설치해야할 수도 있습니다. (기본적으로 설치되는 한국어 패키지가 있지만 많이 모자랍니다. ibus-hangul을 설치할경우 korean을 검색해보면 태극기 아이콘의 hangul이 등장하는데, 이것이 선택되어야 가장 사용하기 편리합니다.)

$ sudo pacman -S ibus-hangul

팩맨을 이용해 ibus-hangul 을 설치합니다.

Note

다른 데스크탑 환경을 사용하시는 분들은 일부 파일을 수정해주어야 합니다. (특히 플라즈마는 ibus와 아직 가깝지 않아 사용이 다소 번거롭습니다.)

먼저, /etc/environment파일에 추가합니다.

GTK_IM_MODULE=ibus
QT_IM_MODULE=ibus
XMODIFIERS=@im=ibus

그리고 ~/.bashrc나 혹은 본인이 다른 쉘을 사용하는 경우 해당 설정 파일을 편집합니다.

ibus-deamon -drxR

설정에서 입력기>ibus-hangul을 추가하여 사용할 수 있습니다.

'한/영'키 사용

이제 설치된 어플리케이션 중에 ibus-preferences를 선택합니다.

앱의 네가지 탭 중 'input-method’를 클릭합니다.

태극기 문양의 'Korean - Hangul'이 안보이면
우측의 'Add' 버튼 > 검색칸에 'Korean' 입력하여 추가합니다.

보이면 우측의 'Preferences' 클릭,
하단의 'Hangul Toggle Key' 부분에서
'+ Add' 클릭 후, 한/영 키를 누른 후, OK 해줍니다.

기존의 'shift+space' 등 아래에 'Hangul(혹은 'Right+alt')'가 추가됩니다.

기존의 'shift+space'는 '- Remove'를 통해 제거해도 무방합니다.

이미 설치한 크롬을 통해 한/영 변환을 해봅니다.

부록A- 독자 건의

###        btrfs & timeshift        ###
###- by. Davido(osh3606@gmail.com) ###

## 파일시스템 포맷하기
# mkfs.btrfs /dev/sda3

## 서브 볼륨 생성
# mount /dev/sda3 /mnt
# cd /mnt
# btrfs subvolume create @
# btrfs subvolume create @home
# cd /
# umount /mnt

## 서브볼륨 마운트
# mount -o rw,noatime,compress=lzo,space_cache=v2,subvol=@ /dev/sda3 /mnt
# mkdir /mnt/home
# mkdir /mnt/boot
# mount -o rw,noatime,compress=lzo,space_cache=v2,subvol=@home /dev/sda3 /mnt/home
# mount /dev/sda1 /mnt/boot 

## fstab 수정
### 스냅샷 프로그램 사용하기 위해서는 genfstab 이후 fstab에서 subvolid 없애줘야 함. 
### 안없애면 추후에 btrfs 복구시 복구 전 id를 찾으려 하기 때문에 정상적으로 복구 안됨…
# nano /mnt/etc/fstab

## /, /home 마운트 옵션에서 
#subvolid=#### 삭제
#subvol=###/,subvol=### 중 하나 삭제

## timeshift를 이용한 스냅샷/복구
## 설치 종료 후 fresh installed 상태에서 btrfs 스냅샷 만들기(timeshift사용)
# sudo pacman -S git
# git clone https://aur.archlinux.org/timeshift.git
# cd timeshift
# makepkg -si
# sudo timeshift –create –comments “Fresh install”

## 복구시
# sudo timeshift –restore

## 원하는 스냅샷 번호 선택
# sudo reboot

부록B- 권장 사항

지금까지 아치 리눅스를 설치하고 데스크탑 환경을 구축한 후에 웹 브라우저와 한글 입력을 시도했습니다. 이제 한글과 영어 타이핑이 가능하고 웹 브라우징이 가능해졌으니 추가적으로 생기는 문제는 웹 검색을 통해 해결하실 수 있습니다! 다만 몇 가지의 추가 사항만 소개하고 글을 마치도록 하겠습니다.

microcode

마이크로코드란 프로세서 제작자들이 안정성,보안 등을 우려해 업데이트 하는 파일을 의미합니다.

참조: 아치 위키 -마이크로코드

본인 CPU 제조사에 따라, intel-ucode 혹은 amd-ucode를 설치 하고 나면 grub은 알아서 잘 찾아줍니다. config파일 업데이트를 진행합니다.

$ sudo pacman -S intel-ucode // intel cpu
$ sudo pacman -S amd-ucode   // amd cpu

$ sudo grub-mkconfig -o /boot/grub/grub.cfg
$ sudo pacman -S intel-ucode // intel cpu
$ sudo pacman -S amd-ucode   // amd cpu

$ sudo nano /boot/loader/entries/arch.conf

arch.conf는 설치 과정에 본인이 사용하셨던 이름으로 대체하셔야 합니다. 아래 문구를 initrd /initramfs-linux.img 위에 삽입합니다.

initrd /intel-ucode.img // intel cpu
initrd /amd-ucode.img   // amd cpu

부트 로더를 업데이트하고 재부팅을 진행합니다.

$ sudo bootctl update

재부팅 이후에 잘 적용이 되었는지 확인합니다.

$ journalctl -k --grep=microcode

아래와 유사한 내용이 확인되어야 합니다.

microcode: microcode updated early to revision 0xde, date = 2020-05-18
microcode: sig=0x806ec, pf=0x80, revision=0xde
microcode: Microcode Update Driver: v2.2.

video driver

그래픽 드라이버를 잡아주셔야 합니다.

$ lspci  grep -e VGA -e 3D

그리고 아치 위키- Xorg: 드라이버 설치 페이지를 보시고 해당하는 드라이버를 설치해주시면 됩니다.

시스템 체크

부팅 중 발생한 오류 목록을 확인

$ journalctl -p 3 -xb

결과를 확인하시고 구글 등의 검색을 통해 해결하시면 됩니다.

systemd 실행 중 실패한 파일 확인

$ sudo systemctl --failed

참조: 아치 위키- 시스템 관리 페이지

부록C- AUR 관련 당부 말씀

AUR Helper란 AUR 패키지들의 업데이트나 설치를 도와주는 소프트웨어입니다. 일반적으로, AUR 레파지토리에 설치되어 있는 패키지들의 버전보다 더 상위 버전이 존재하는지만을 확인해주는 유틸리티, 그보다 한 걸음 더 나아가 상위 버전이 존재한다면 다운로드 받아주는 유틸리티(search and download), 빌드까지 책임져주는 유틸리티(search and build) 마지막으로 아예 pacman으로 설치한 패키지까지 포함해 AUR만이 아니라 공식 레파지토리까지 검색하여 설치와 업데이트를 진행해주기 때문에 평소에 pacman을 사용할 일이 없도록 해주는 유틸리티(pacman wrapper)까지 다양한 종류가 있습니다.

아치 위키에서는 분명히 AUR 헬퍼들은 공식 지원 대상이 아님을 밝히고 있습니다. 따라서, AUR 헬퍼를 사용하다가 발생하는 문제들에 있어서는 지원을 받지 못합니다.

옛날 버전 글에서 yaourt가 디폴트 수준으로 많이 사용되어서 가장 앞에 적었습니다. 그런데 yaourt는 개발이 중단되었습니다.

그래서 "yaourt가 중단되어 다른 소프트웨어 추천을 원하신다면 cower를 추천합니다."라고 수정해놨었는데 cower도 개발이 중단되었습니다.

현재 많은 인기를 끌고 있는 것은 auracle(search and download), yay(pacman wrapper)로 보입니다.

제가 아치 리눅스를 사용한 기간이 그리 긴 시간도 아닌데 그간 수많은 AUR 헬퍼 패키지가 등장했다가 인기를 끌고 사라져갔습니다. 그냥 Git 혹은 AUR 디렉터리를 홈 아래에 만드신 후, Git 클론해서 업데이트 하면서 관리하시는게 속편합니다. 무엇보다 가급적 AUR 패키지를 아예 안 쓰거나, 최소화하는 것을 권장합니다.

부록D- Cheat Sheet

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# gdisk /dev/sdx
# mkfs.vfat -F 32 /dev/sdxN
# mkfs.ext4 -j /dev/sdxN
# mkswap /dev/sdxN
# swapon /dev/sdxN
# mount -v -t ext4 /dev/sdxN /mnt
# mkdir -pv /mnt/boot
# mount -v -t vfat /dev/sdxN /mnt/boot
# timedatectl --set-ntp true
# hwclock --systohc --utc
# reflector --sort rate -c KR >> /etc/pacman.d/mirrorlist
# pacstrap /mnt base linux linux-firmware vim networkmanager
# genfstab -U /mnt >> /mnt/etc/fstab

# arch-chroot /mnt
# passwd
# vim -w /etc/locale.gen
# locale-gen
# echo LANG=en_US.UTF-8 > /etc/locale.conf
# echo pcname > /etc/hostname
# ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
# pacman -S grub efibootmgr
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch --recheck
# grub-mkconfig -o /boot/grub/grub.cfg
# systemctl enable NetworkManager.service

# exit
# umount -lR /mnt
# reboot

Last update: October 28, 2021
Back to top