Arch Linux Installation Tutorial

[Latest]Update Version 1.2.1205

Update Version 1.1.1110

Update Version 1.0.1108


While translating Arch Linux Installation Tutorials into Korean for Korean linux users, I felt this documentation will be good for foreigners as well when it comes with English. So, I made this Installation Tutorial English Version.

If you follow all steps in this tutorial, you will get the Latest Arch Linux, with Gnome Desktop Environment, wifi access and web browser such as firefox, chromium or Google-chrome.

Also I added some advice for starters, so don’t be afraid to follow this guide even if you are first time in linux environment.

 If I was wrong, or made any mistake, feel free to contact me.



This guide doesn’t cover a step for making bootable USB device, but I am planning to update soon.

I will install arch linux on UEFI/GPT partition device. So your PC needs to be able to boot on UEFI mode.

I tried to minimize the numbers of packages when installing arch linux, so it came with only 6 packages(It can be 8 if you choose grub, and efibootmgr). That 6 packages are base base-devel xorg-server gnome gdm firefox or google-chrome.

RECOMMENDATION : If you accept second options everytime when you face choosable options and decided to install google-chrome, you can understand basic partition, boot process, Arch’s package manager, and even AUR(Arch User’s Repository).


<1. Base Install>

Boot mode

$ls /sys/firmware/efi

You should be able to see “efivars” folder.

#this command means “list files and folders under ‘/sys/fimware/efi’ directory

Internet Connection

$ping -c 3

#this command means “ping 3 times to;



There will be a disk drive in name of ‘sda’ or ‘hda’. Check what is your device’s name.

We will make 3 partitions in this tutorial.(Assume that your device name is ‘sda’)

/dev/plan – File System / Code / Size / etc

/dev/sda1 – EFI System / EF00 / 512M / Boot Partition-ESP

/dev/sda2 – Linux Swap / 8200 / 4G / Swap Partition

/dev/sda3 – Linux FileSystem / 8300 / Free Space / Root Partition

UEFI mode bootloader needs ESP partition, and ESP partition means FAT32 filesystem device which is mounted on boot folder.(Efi System Partition)

Now, You can select one option between using ‘cfdisk’ and ‘gdisk’. cfdisk provides you a little table interface, so I recommend ‘cfdisk’ if you are new to partition or linux. But I recommend gdisk if you are not a new user, and also understanding partition scheme.

Partition(2)-1. cfdisk

$cfdisk /dev/sda

Your Label must be GPT

Delete every existing partition.

Let’s make our first partition(dev/sda1)

select ‘NEW’

Size : 512M

(If asks) Primary

move cursor to ‘TYPE’ and ENTER

select ‘EFI System’

move to new line with arrow key, and we will make second partition(/dev/sda2)

select ‘NEW’ again

Size : 4G


move cursor to ‘TYPE’ and ENTER

select ‘LINUX SWAP’

Finally, third partition(/dev/sda3)

select ‘NEW’

Size Enter with default(Computer will calculate last size for you)

check if the ‘TYPE’ is already set to ‘Linux File System’

You made all three partition! Check if we made it correctly. There should be /dev/sda1-512M-EFI System, /dev/sda2-4G-Linux Swap, /dev/sda3-very big size-Linux File System. If it is right,

select ‘WRITE’

select ‘QUIT’

Partition(2)-2. gdisk

$gdisk /dev/sda

type ‘?’ to see what commands are there.

$type 'o' to overwrite

$type 'n' for new

$type '1' for first partition
(you can also 'enter' if default is '1')

$'ENTER' for default fist sector

$type '+512M' for last sector of /dev/sda1 by its size

$type 'EF00' for EFI System

$type 'p' to print out the result

See if you’ve done right. There should be /dev/sda1 – 512M – EF00.

$type 'n' for new

$type '2'for second partition 
(you can also 'enter' if default is '2')

$'ENTER' for default second sector

$type '+4G' for last sector of /dev/sda2 by its size

$type '8200' for Linux Swap

$type 'p' for check

and our final partition /dev/sda3. Let’s make it!


$type '3' or enter if default is '3'


$type '-1' to use every sector left

$type '8300' for Linux File System

$type 'p' for check

if the table shows right answer, you can

$type 'w' to write partition

$type 'y' for yes

$'q' to quit


$mkfs.fat -F32 /dev/sda1

format /dev/sda1 as fat 32 type file system. fat32 file system is required for UEFI boot mode.

$mkfs.ext4 /dev/sda3

format /dev/sda3 as ext4 file system, and ext4 is most common filesystem on linux systems.


$mkswap /dev/sda2

#make swap

$swapon /dev/sda2


$mount /dev/sda3 /mnt

#ext4 linux filesystem to mnt folder

$mkdir /mnt/boot

#make directory under /mnt as ‘boot’

$mount /dev/sda1 /mnt/boot


You should check your mirrorlist. Uncomment your nearest mirror server by deleting ‘#’.

$nano /etc/pacman.d/mirrorlist

#You can exit from nano text editor by typing ‘ctrl+x’ and ‘y’ and then ‘ENTER’. They mean exit by ‘ctrl+x’, yes I will overwrite by ‘y’ and save as the original filename by ‘ENTER’.


$pacstrap /mnt base base-devel

Generating File System Table

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

#genfstab = generate file system table

#You can also check what was written by $nano /mnt/etc/fstab. There will be a table which is same as our original partition scheme.

2. System Settings

change root

$arch-chroot /mnt

We are now in our arch system for system settings.

check internet connection again

$ping -c 3

Set Root password


type password(It’s OK. You can’t see what you’re typing now)

type password again

Locale setting

$nano /etc/locale.gen

Find with arrow key and uncomment “en_US.UTF-8” by deleting ‘#’.


Language setting

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

echo will write (or even make a file if it donsn’t exitst ) “LANG=en_US.UTF-8” in /etc/locale.conf file.

$export LANG=en_US.UTF-8

Hostname setting(PC’s name)

$echo pcname > /etc/hostname

From now on you can replace any name with underlined text.

Local Time setting

$ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime

by typing $ls /usr/share/zoneinfo, you can check your location and change the name with underlined text. after the “New_York” word, there is a space before /etc/localtime.

#ln -sf means Link and symbolic, force.

Hardware Clock setting

$hwclock --systohc --utc

#hardwareclock setting. –systohc means setting the systemtime from the RTC and –utc means the RTC timescale is UTC.

Adding User

$useradd -m -G users,wheel -s /bin/bash anyname

and set a password for username.

power and sotrage groups are not used in these days. so avoid tutorials which provide you to have that option as well.

$passwd thatname

We will edit sudoers file

$EDITOR=nano visudo

make the file as same as below.(In the middle of the file)

##user privilege specification##

root ALL = (ALL)ALL

thatname ALL = (ALL)ALL

##uncomment to ~

%wheel ALL= ~

At the last line, you should delete ‘#’ for uncommenting “%wheel ~”.



Now you need to make choice again. The BOOTLOADER! Like partitioning tools, you can choose (1)’grub’ if you don’t know what the bootloader is. If you had experienced grub already, I recommend (2)systemd-boot because you don’t have to install additional packages, and I personally prefer systemd-boot.(Grub is used in various distros, so if you are planning to experience other distros as well, then you should probably go with grub.)


$pacman -S grub efibootmgr

Install grub and efibootmgr

Pacman is arch’s Package Manager. and with upper ‘S’ option, you can install the packages you typed.

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

Install grub bootloader on your system. With two ‘-‘sign you can set ‘target’, ‘efi-directory’, ‘bootloader-id’ and ‘recheck’option. You can replace ‘arch'(bootloader-id part), but now, just stick with default command.

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

make configuration grubfile. you can also use this command when you fixed or added grub configuration for updating it.


$bootctl --path=/boot install

install bootctl

$nano /boot/loader/loader.conf

make the file look like below

default rememberthisname

editor 1

timeout 3

default : you can replace underlined text, but I recommend ‘arch’. I don’t care what you name it but important thing is that you must remember that name and make exact ‘thatname.conf’ file later.

editor : ‘1’ makes anyone can fix options while booting. I recommend ‘1’ for a while and when you sure the system works fine, come back to that file and change it to ‘0’

timeout : how long boot option stays. I recommend 3 for a while and like editor case, if everything looks fine, come back and change to 0 or whatever you want.

$cd /boot/loader/entries

change directory to entries folder

$nano thatname.conf

Here it comes. replace underlined text with the name you memorized.

write down below.

title archlinux

linux /vmlinuz-linux

initrd /initramfs-linux.img

options root=/dev/sda3 rw

title : show up while booting. so replace the underlined archlinux with recognizable name you want.

linux : watch out for ‘/’ and vmlinu‘z’

options : I also use ‘quiet’ option. If you want, you can write it after ‘rw’

options : you can set your device path which was mounted to root folder. well, arch wiki recommend you to use PARTUUID for safety issue. But, If you’re not familiar with terms like UUID, just use path. The safety issue occurs when user messed up path mapping or other things, but I don’t think you will do such things in near future.However, I’ll show you guys how to set PARTUUID options, below.(you can use vim and command like ‘:r !blkid’, but I think it is too much complicated for readers.)


for check block IDs

write down or copy that /dev/sda3’s PARTUUID numbers-alphabets. It will look like 123abc456-789de012-345fg…

And put it as ‘options root=PARTUUID=123abc456-789de0123-345fg..’ and remove all quotation marks.(Of course, underlined text should be replaced by your PARTUUID.


exit from installation


Unmount every device

$umount -R /mnt



#when PC starts again, remove your bootable USB!


Does your pc turn on? Does prompt shows “login: “? You succeeded installing Arch Linux. Some of you may happy with this, and some of you will be disappointed. I know, arch linux doesn’t bring you Desktop Environment as default. So Let’s install Gnome Desktop Environment!




3. Desktop Environment Install


Type your username and password to log in arch linux!

Internet connection

$sudo systemctl start dhcpcd

You can also enable dhcpcd to connect internet. But I recommend just start at this time, because gnome desktop uses networkmanager as default.

#sudo means “substitute user do“or known as “super user do“. It gives you temporary permission as root.

$ping -c 3

Pacman Setting

$sudo pacman-optimize

$sudo pacman -Syu

Pacman -Syu updates database and your packages up-to-date.

Installing packages

$sudo pacman xorg-server gnome gdm

Enable GDM

$sudo systemctl enable gdm




Now, Does your pc boot up with Graphical Interface? Gnome welcomes You! You can login by clicking the can-man avatar picture, and type your password. You can have fun with your Arch Linux/Gnome Desktop!

But I have a few RECOMMENDATIONS!!



Network Manager

If you’re a pioneer-type person, you could have already noticed that your network isn’t working. And you can figure it out by reading past tutorials slowly. I just started DHCPCD service, not enabled. Gnome desktop uses network manager, and you can check it with Applications>Settings>Wifi. It doesn’t turn on and says networkmanager is not working. Now Let’s Fix that Problem

$pacman -Ss network manager

It’s not a typo! Upper ‘S’ and lower ‘s’ mean ‘search’. you can search network manager with that command. As you scroll up, you can see ‘extra / networkmanager version-numbers(gnome) [installed]‘.

(If you can’t find [installed], then you can simply install it with command $sudo pacman -S networkmanager)

So let’s turn on that service.

$sudo systemctl enable NetworkManager

Enable for every booting and then

$sudo systemctl start NetworkManager

Start right away. And watch out for the upper case ‘N’&’M’.

If you recheck your Applications>Settings>Wifi, it works! Who said Linux sucks with Wifi settings?

Web Browser

Now other problem occurs. I know, you have only ‘web’ application. You need something you are used to. If it is ‘firefox’, it’s easy. You can install with

$sudo pacman -S firefox

right away.

But if it is google-chrome, it’s not that simple.

(Note. There is also ‘Chromium’ on Arch Official Repository, and it’s almost same as google-chrome but open-source based. So if you care about open-source environment, install chromium with $sudo pacman -S chromium)

What you can download from ‘pacman -S’ is Arch Official Repository Packages. If you want ‘BlahBlah’, and searched with ‘$pacman -Ss blahblah’, and doesn’t exitst? You can use AUR(Arch User’s Repository). And I think AUR is one of the best feature of Arch Linux.

Let me show you how to use AUR.

First. Open that “WEB” Application

go to

and search “google-chrome”.

Click “Download Snapshot” on right side of webpage inside the “Package Actions” box.

Open terminal,

$cd Down(tab-key)

#tab can auto-complete your folder or file name.


See what’s inside Download folder.

You can see ‘google-chrome.tar.gz’. Let’s extract it.

$tar -xvzf goog(tab-key)

Let’s see what happened.

-x : extract

-v : verbose (to see what’s going on)

-z : when the file was compressed with gzip

-f : use archive file

(note. If you wonder what all options really mean, you can simply check by $tar –help command. Also, almost every commands provide you ‘man’ pages, or ‘info’, ‘-h’. So, just type ‘man something‘, ‘info something‘, ‘something -h’, or ‘something –help’ anytime, to see what those options mean.)


There is new ‘google-chrome’ FOLDER.

$cd goog(tab-key)
$makepkg -sic

If arch asks you sudo password, you can type the password. After a while when installation is finished, you can check Applications>All : google-chrome is there!Now you can delete files in Downloads folder.

Makepkg builds with pkgbuild file. After complete build, it install packages with pacman.

-s : install dependencies while install package

-i : install if build succeed

-c : clean unnecessary files after successfully build


Now you can navigate World Wide Web!

You can install more packages you want, You can watch Youtube videos, and anything!


Congratulations! Now you know how to install Arch-Linux!


Appendix A

  1. Microcode :  Recommend 5/5
    1. grub users
      1. $sudo pacman -S intel-ucode (Assuming You use Intel CPU)
      2. $(sudo) grub-mkconfig -o /boot/grub/grub.cfg
    2. systemd-boot users
      1. $sudo pacman -S intel-ucode(Assuming You use Intel CPU)
      2. $sudo nano /boot/loader/entries/memorizedname.conf
      3. write down “initrd /intel-ucode.img” above “initrd /initramfs-linux.img”
      4. $sudo bootctl update
      5. $reboot
  2. Video Drivers : Recommend 4/5
    1. $lspci | grep -e VGS -e 3D
    2. Look at this arch wiki for finding appropriate drivers:HERE
    3. My laptop prints out “VGA compatible controller : Intel Corporation HD Graphics 520”
    4. Mine needs xf86-video-intel
    5. $sudo pacman -S xf86-video-intel
  3. System Check Methods : Recommend 5/5
    1. $sudo journalctl -p 3 -xb (Error list while booting process/Google it!)
    2. $sudo systemctl –failed (Failed systemd file, and not running)
  4. pci bus error : Recommend If you need : If you have trouble with infinite messages while booting such as “PCIe bus error : ~~”, you can fix it with below steps.
    1. grub users
      1. When bootloader shows OS list to choose, press ‘e’ key.
      2. move cursor next to “quiet”
      3. insert “pci=nomsi”, so it looks like “~ quiet pci=nomsi”
      4. ENTER to continue booting(If “pci=nomsi” dosn’t work, you can try with “pci=noaer”)
      5. when you booted correctly, open file with
      6. $sudo nano /etc/default/grub
      7. find line like
      8. GRUB_CMDLINE_LINUX_DEFAULT=”~blahblah~ quiet”
      9. and insert “pci=nomsi” there too.(If “pci=noaer” worked, you should put that instead of “pci=nomsi”)
      10. It should be look like ~blah_DEFAULT=”~blahblah~ quiet pci=nomsi”
      11. $(sudo)grub-mkconfig -o /boot/grub/grub.cfg
      12. $reboot
      13. check if it works
    2. systemd-boot users
      1. When bootloader shows OS list to choose, press ‘e’ key.
      2. move cursor options part
      3. add “pci=nomsi” after “rw quiet”
      4. If “pci=nomsi”doesn’t work, you can try with “pci=noaer”
      5. when you booted correctly, open file with
      6. $sudo nano /boot/loader/entries/rememberedname.conf
      7. find options part and move cursor to the end
      8. insert “pci=nomsi” (if “pci=noaer” worked, you should put that instead of “pci=nomsi”)
      9. It should be look like ~blahblah rw quiet pci=nomsi
      10. $sudo bootctl update
      11. $reboot
      12. check if it works

Appendix B – Package Recommnedations

  1. text editor
    1. nano
    2. vim
    3. emacs
  2. AUR wrapper
    1. yaourt
    2. pacaur
    3. cower
  3. Gnome-tweak-tool
  4. LibreOffice-fresh
  5. qbittorrent
  6. vlc
  7. foxitreader



아치 리눅스 설치

아치 리눅스 설치 가이드 (V.04.180725)


[서 문]

최신버전(검색으로 오신 분들은 반드시 최신 버전으로 확인하시기 바랍니다.) /  목차  /   커맨드 리스트  ]
 필자는 글을 쓰는 직업을 가지고 있거나, 취미로 글을 즐겨 쓰는 사람이 아닙니다. 그러다보니, 아래에서 적어 내려갈 내용들이 가독성이 떨어지거나, 혹은 비문일 수도 있습니다. 실력이 부족한 줄을 잘 알면서도 세상에 글을 내놓으려니 많이 부담스럽습니다. 다만, 이런 장문의 글을 쓰게된 계기를 많은 분들이 이해해 주시면 감사하겠습니다.
 저는 평소에 리눅스 배포판 중에서 아치 리눅스를 사용합니다. 그리고 꽤나 만족하고 있습니다. 하지만, 온라인 상에서 아치 리눅스는 어렵고, 특히 설치하기가 번거럽고, 그런 단점들에도 불구하고 써야하는 이유가 무엇인지에 대한 질문이 등록되는 것을 자주 목격합니다. 저도 컴퓨터 분야에 종사하고 있지 않고, 공부하는 학생이다 보니 객관적으로 똑부러지게 이런 점이 장점이고 이런 점은 약점이지만 이런 점에서 매력을 느낀다라고 설명하지 못합니다(물론, 제가 느끼는 강점과 매력은 분명하지만 매우 주관적이기 때문에). 다만, 제가 명확히 알고 있고 여러분들께 소개해 드릴 수 있는 것은 아치 리눅스의 설치 과정이 그렇게 당혹스러우리만큼 어렵지는 않다라는 것입니다. 일반적으로 윈도우 혹은 맥 진영에서 리눅스를 경험해보고싶은 신규 유저들에게 쉬운 배포판으로 ‘우분투’를 소개합니다. 충분히 이해할 수 있습니다. 설치 과정은 GUI로 표현되어 받아들이기 매우 편합니다. 하지만 그 과정들이 어떤 작업인지 이해하지 못하고 ‘Next’만을 클릭하는 것을 쉽다고 표현하는게 올바른지에 대해서는 고민이 됩니다. 아치리눅스는 설치 과정이 커맨드 라인 기반입니다. 모든 것을 키보드를 이용해 명령하여 설치해야 합니다. 하지만 그 과정 덕분에 리눅스가 어떻게 빌드되는지에 대해서 정확히 이해할 수 있고, 내 시스템이 어떻게 구성되어 있는지를 파악하기 유리합니다.

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

< Keep It Simple, Stupid. >

 아치 리눅스의 철학입니다. 아치 리눅스는 단순함을 추구합니다. 재밌는 점은 그 단순함을 위해서 얼마나 많은 복잡함을 응축해야 하는가 입니다. 우측의 스크롤바를 보시면 당황스러우실 수 있습니다. 초보자를 위해, 양질의 한글 번역을 위해 글을 작성했다고 제창하면서 얼마나 자세히 적어두고 있는거냐 라고 반문하실 수도 있습니다. 문제는 이 스크롤바를 읽어내려가면서 설치해야하는 패키지의 수는 8개(경우에 따라서는 10개:grub efibootmgr)로 단순화했다는 점입니다. 그 8가지는 base, base-devel, xorg-server, gnome, google-chrome, ttf-nanum, ibus, ibus-hangul 입니다. 이 한페이지를 통해 독자분들은 기본 시스템 구축과 관련된 분야(파티션,포맷,파일시스템 테이블, 부팅 과정과 부트로더의 역할), 데스크탑 환경의 구축, 웹 브라우저 설치 과정을 통한 AUR 학습, 리눅스에서 WIFI사용이 어렵다는 게 왜 오해라고 주장하는지, 그리고 아치 리눅스에서 한글을 사용(읽기 위한 폰트 설정, 입력을 위한 ibus 설정)하는 것이 얼마나 단순하고 명료한지에 대해서 느껴보실 수 있습니다. 그 치명적인 단순함을 위해 모순적으로 상당히 많은 내용을 담을 수 밖에 없었습니다.

 추가로 수정해야 하거나 도움이 필요하시거나 도움을 주실 분들은 꼭 댓글 혹은 이메일을 남겨주시면 감사하겠습니다. 지금으로써는 추가로 다른 글은 작성하지 않고 업데이트 로그를 남기며 이 글에 살을 계속 붙여나갈 생각입니다.

 다만, 이 글은 절대 깊이 들어가지 않고 설치 과정상에서 설명할 수 있는 아치 리눅스 혹은 리눅스 일반 명령어나 개념을 소개하기 위해 작성되었습니다.

 한국 아치 사용자의 커뮤니티가 더욱 발전하고, 한국 리눅스 사용자가 응집할 수 있는 대형 커뮤니티를 기대한다는 말씀을 마지막으로 설치 과정으로 들어가도록 하겠습니다.

#P.S. 이 페이지는 실제로 제가 시스템 부수고 처음부터 다시 설치할 때 사용하는 페이지입니다. 이미 설치 다 완료하고 나서, 아 이렇게 했었지 하면서 적어두는게 아니라, 꽤나 자주, 직접 이 페이지의 명령어들을 하나 하나 억지로 똑같이 입력해보면서 시스템이 구축되는지 확인하고 있습니다. Bleeding Edge 배포판을 고르신 만큼 가장 최근의 명령어로 업데이트 되있는지 궁금하실 것 같아서 업데이트 버전 명명법에도 날짜를 기재하였습니다.

[최근 업데이트] 
(version.Big Update.Date)
V.04.180725 : pacman 5.1.0 업데이트 관련 이슈
V.04.180105 : 신년 맞이 오타, 구성 수정
V.04.171205 : xf86-video-intel 삭제(modesetting관련)
V.04.171117 : 오타 수정, 가독성 향상
V.04.171115 : 직접 재설치 후 수정
V.04.171114 : 설치 전 주의사항 수정, 업데이트 버전 생성
V.04.171113 : 부록B>각종 설정 변경 추가, 부록C>커맨드 리스트, useradd 관련 수정
V.03.171112 : 부팅 가능 USB 제작 방법(리눅스에서), GDM 관련 수정, gst-libav 추가, 직접 재설치 진행 후 상황에 맞게 수정, 서문 수정
V.02.171111 : ccache, makepkg.conf 수정 추가, 페이지점프 가능
V.01.171108 : 문서 이동, 수정
V.01.171107 : 구성 수정, 오타 수정, 이미지 추가
V.01.171100 : 작성

[설치 전 주의사항]

[모바일환경]구글 검색을 통해 진입하신 분들은 정돈된 형식이 깨져보이는 현상이 있습니다.(수정 작업 중입니다.) 홈페이지를 클릭하시면 이 페이지로 다시 들어오실 수 있습니다. 저장된 페이지가 아닌 가장 최신의 업데이트 내역을 확인하고 싶으신 분들도 위의 링크로 재접속하시면 됩니다.

#기본적으로 설치환경/루트환경 에서의 프롬프트는 ‘#’입니다. 하지만 사용 환경에서 일반적으로 마주하는 프롬프트가 ‘$’이기 때문에 아래의 명령어들은 모두 ‘$’로 통일한 점 양해바랍니다.

#리눅스가 충분히 익숙하신 분들은 명령어만 순서대로 보고 진행하실 수 있도록 해보았습니다(권장 : 바로 ‘커맨드 리스트’로 이동).다른 배포판을 사용해봤지만, 리눅스가 아직 익숙하지 않다고 생각하시는 분들은 설명된 내용을 읽으면서 진행하시면 됩니다. 리눅스를 처음 경험하시는 분들은 #의 개수와 관계없이 읽어보시면 됩니다.(#기호로 처리된 부분은 해당 명령어의 자세한 설명이거나, 추가적인 시스템 설명입니다. 주석이라고 생각하셔도 무방합니다.)

#설치화면 진입 자체, 혹은 부팅 매체에서 usb를 인식하지 못하는 등의 문제는 UEFI세팅 문제일 가능성이 큽니다. secure boot가 ‘사용 안함(Disabled)’으로 되어있는지 확인하시기 바랍니다. 혹시, 확인 이후에도 문제가 발생할 경우에 우선은 구글 등 검색을 해보시는 것을 추천드립니다. 높은 확률로, fast boot, 혹은 CSM모드(혹은 ‘LEGACY/BIOS MODE’) 에서 발생하는 오류로 생각됩니다. (추천드리는 것은 모두 ‘사용 안함(Disabled)’입니다.) 다시 말씀드리지만, 이 글에서는 너무 깊게 들어가지 않고 일반적인 부분만 훑고 지나가도록 하겠습니다.(그런데 업데이트를 거치면서 점점 깊어지고 있습니다;;)

#’$example hello’ : 왼쪽의 예시 문장처럼 ‘$’기호가 붙은 내용은 ‘$’기호 바로 이후부터 그대로 커맨드 입력을 하시면 됩니다(추천하지는 않지만, 급한 경우 복사 붙여넣기를 하셔도 됩니다). 다만, 사용자의 경우에 따라 다르게 적용 가능한 부분(예를 들어, 디바이스의 장치명, 사용자 이름)은 밑줄을 그어 헷갈림을 방지하도록 하겠습니다.

#간혹 모바일 환경에서 자주 발생하는 문제가 커맨드가 길어지면서 다른 라인으로 넘어가는 경우인데, 초보자의 경우에는 새로운 커맨드를 입력하는 것인지 아니면 단순히 라인이 길어져서 아랫줄로 내려온것인지 구분이 힘든 경우들이 더러 발생합니다. 이 오해를 방지하기 위해 ‘$’기호가 새로 붙어 있는 경우에만 새로 작성하시면 됩니다. 그렇지 않은 경우는 줄이 내려와 있어도 기존 명령에 이어서 작성하시면 됩니다.

#초보 사용자가 명령어를 쉽게 외우거나, 빨리 익숙해지기 위해서 명령어의 줄임말을 소개하여둔 곳이 여럿 있습니다. 혹, 제가 줄임말을 잘못 이해하고 있으면 알려주시기 바랍니다.

#공식적인 아치 리눅스 설치 가이드는 단 한가지 버전만 존재합니다(위키. 아래 링크 참조). 그 이외의 가이드들은 이 페이지를 포함하여 모두 특정 목적(사용자 편의/작성자 편의/강의 목적 등)을 위해 편집된 내용입니다. 그러므로, 공식 위키의 내용을 일정 이상 이해한 후, 편의를 위해 이 가이드를 보면서 입맛에 맞게 수정 적용하는 것을 권장하는 바입니다.


  1. 설치 준비
  2. 시스템 설치
    1. UEFI 설치 가능 여부 확인
    2. 인터넷 연결
    3. 파티션-계획
      1. cfdisk 사용
      2. gdisk 사용
    4. 포맷
    5. 스왑
    6. 마운트
    7. 미러리스트
    8. pacstrap
    9. genfstab
  3. 시스템 설정
    1. 루트로 진입
    2. 인터넷 확인
    3. 루트 비밀번호 설정
    4. 로케일 설정
    5. 언어 설정
    6. PC 이름 설정
    7. 로컬 타임 설정
    8. 하드웨어 시간 설정
    9. 사용자 추가
    10. 부트로더 설치
      1. grub efibootmgr 사용
      2. systemd-boot 사용
    11. exit
    12. umount
    13. reboot
  4. 데스크탑환경 설치
    1. 로그인
    2. 인터넷 임시 연결
    3. pacman 설정
    4. 필수 설치
    5. reboot
  5. 데스크탑환경 설정
    1. NetworkManager 설정
    2. 웹 브라우저-Firefox
    3. AUR-Google-chrome
    4. 한글 폰트
    5. 한글 입력
  6. 부록 A-권장 사항
    1. microcode
      1. systemd-boot 사용자
      2. grub 사용자
    2. video driver
    3. 시스템 체크
      1. 부팅 중 발생한 오류
      2. systemd 실행 실패 목록
    4. PCIe bus error
      1. systemd-boot 사용자
      2. grub 사용자
    5. ccache, makepkg.conf 설정
  7. 부록 B-추천 패키지
  8. 부록 C-커맨드 리스트

1. 설치 준비

#iso 파일 다운로드 방법 : 아치 리눅스 iso 다운로드 페이지> 하단 “South Korea” > “” > “.iso”파일 다운로드

#리눅스 시스템에서 usb 마운트 이후

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

#dd 소프트웨어 이용

#bs : 블락 크기는 4M(생략 가능)

#if : 아치 리눅스 파일 다운로드 위치. 아치 리눅스 iso 이름은 실제로 간단하지 않으므로, 대충 앞을 확인해 놓은 후 (tab키)를 이용해 자동 완성.

#of : $lsblk 등의 명령어를 통해 USB 장치의 정확한 이름을 확인하고 실행. sdX에서 X부분을 수정하면 됨. 필자의 경우는 sdb였음.

#아치 리눅스 설치 후 usb를 다시 사용하고 싶을 때 : 윈도우즈와 리눅스에서 겸용을 위해서는 FAT32 파일시스템을 추천함. USB용량이 32G 등 거대할 때도 ‘FAT32’를 추천.(다만, 파일 개당 최대 용량을 4G까지만 지원하므로 주의.)-자세한 설명 : 링크

$umount /dev/sdb

//sdb 아래 다른 파티션이 마운트되있는 것도 언마운트!

$sudo wipefs --all /dev/sdb
$sudo cfdisk /dev/sdb

>cfdisk 를 통해 ‘dos’라벨의 ‘Linux Filesystem’파티션을 하나 생성.

DOS 선택 > primary 선택 > 용량 전체로 '엔터' > 'write' 엔터 > 'quit' 엔터
$sudo mkfs.fat -F32 /dev/sdb1

부팅 중에 본인 메인보드에 맞는 바이오스/UEFI진입 키를 이용합니다. 제 경우는 ‘F2’입니다. 보통은 F2,F10,F11,DEL키 등입니다. (UEFI에 진입 후 Secure Boot와 필요한 경우 CSM MODE도 ‘DISABLED’로 사용 중지 해주시면 됩니다.) 부트 장치로 iso이미지를 구운 USB를 선택하시고 ‘Save & Exit’등의 옵션을 이용해 UEFI에서 빠져나가시면 됩니다. 정상적으로 부팅이 이루어지면 USB를 통해 설치 환경으로 진입합니다. 부팅 중 선택 화면에서는 일반적으로 디폴트 값으로 가리키고 있는 것을 통해 부팅하시면 됩니다. (“Boot Arch Linux” 등/혹은 x86_64같은 것이 포함되어 있음.)

목차로 이동

2. 시스템 설치

2.1. UEFI 설치 가능 여부 확인

 우선, UEFI설치가 가능한 컴퓨터인지 확인해보겠습니다.

#ls는 ‘list’의 줄임.뒤에 나오는 /sys/firmware/efi 디렉토리의 내용을 보여줌.

$ls /sys/firmware/efi

 결과에 ‘efivars’라는 폴더가 보이면 가능한 PC입니다.

목차로 이동

2.2. 인터넷 연결

 인터넷 연결 상태를 확인합니다. 유선 연결을 가정합니다. (와이파이 환경의 경우 기본적으로 $wifi-menu를 통해 연결을 시도해보시고 불가능할경우 공식 위키 등을 참고하시기 바랍니다.)

##숫자 3으로 3회만 테스트합니다:변경 가능

$ping -c 3
목차로 이동

2.3. 파티션-계획

파티션은 대용량 저장 장치를 어떤 구획으로 나누어 사용할지에 대해서 정하는 순서입니다. 가장 일반적인 방법으로는 세 파트로 나누게 됩니다. 각각 <부팅을 위한 구획>, <데이터들이 저장될 구획>, 그리고 <리눅스 스왑>으로 쓸 구획입니다. 가장 먼저, 부팅을 위한 파티션에는 ESP라고 하여 EFI System Partition으로 설정해야 합니다. EFI System 딱지가 붙지 않으면 UEFI환경에서 부팅을 설정해주는 것이 굉장히 까다로워 집니다. 지금은 이 말이 어렵게 느껴지실지 모르지만, 아래 과정을 진행하다 보면 이해가 되실 겁니다. (ESP는 EFI System으로 타입이 설정된, FAT 포맷 파티션을 뜻합니다. Boot폴더에 마운트 될 파티션을 의미합니다) 두번째 구획인 데이터 저장 구획은 단순하게 Linux File System이라는 타입으로 사용할 예정입니다.(이 두번째 파티션은 ‘/(root)’에 마운트 되어 모든 데이터가 저장될 구역이라고 생각하시면 됩니다.) 마지막 스왑 파티션도 역시 이름처럼 Linux Swap이라는 타입을 붙이면 되겠습니다. 이 과정은 드라이브의 구획을 나누고 계획을 잡아두는 것으로 실제 그 계획에 맞는 환경을 만드는 것은 다음 단계인 포맷에서 진행 됩니다.

#윈도우즈의 C드라이브 D드라이브 처럼 어떤 구획을 나누어서 사용할지 계획을 잡는 것이다 라고 생각하셔도 됩니다.

##리눅스 스왑이란 램 환경이 모자랄 때 하드디스크의 스왑으로 설정된 부분에 자료를 로드해두고 램처럼 활용하는 것을 의미합니다. 일부 사용자는 “스왑이 사용되는 순간부터 이미 램이 모자란 것과 같은 것이므로 스왑을 쓰기보다는 차라리 하드웨어를 업그레이드 하겠다”라고 하며 스왑을 사용하지 않는 경우도 있습니다;; 여기서는 기본적으로 스왑을 다루어 보도록 하겠습니다. (필자는 4G 램 시스템에서 4G 스왑을 사용하고 있습니다.)

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


#결과 출력에 sda, hda와 같은 대용량 저장 장치가 보이실 겁니다. hda는 기존의 IDE방식 커넥션으로 연결된 하드디스크일 가능성이 크고, sda는 최근의 SCSI/SATA방식으로 연결된 하드/SDD입니다.

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

#이번 설치 과정에서는 sda를 총 세 칸으로 쪼개려고 합니다. 쪼개고 나면 sda1,sda2,sda3으로 나누어집니다. (만약 sdb엿다고 하면 sdb1,sdb2,sdb3이 될 것입니다. 보통 경로로 /dev/sda 혹은 /dev/sda1, /dev/sda2등의 경로명을 사용하는데 앞의 dev는 device를 뜻합니다.)

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

/dev/plan — 파일시스템/코드명/쓸용량/기타

/dev/sda1 — EFI System/EF00/512m/ESP(EFI System Partition/부트파티션)

/dev/sda2 — Linux Swap/8200/4G/스왑파티션

/dev/sda3 — Linux FileSystem/8300/나머지용량/루트파티션

#자, 이 부분에서 꼭 밝히고 싶은 말씀이 있습니다. ESP, 흔히 말하는 부트폴더에 마운트 시킬 파티션 용량 그리고 스왑 용량 관련해서 정답도 없고, 추천하는 크기도 다 다르다는 점은 충분히 알고 있습니다. 다만 초보자의 관점에서 혼란스러움 없이 진행하기 위해서 우선은 위와 같이 가장 기본이라고 할 수 있는 용량으로 진행해 보도록 하겠습니다. 설치를 하고 계시는 여러분도 나중에 익숙해지시면 충분히 알아보시고 용량은 수정해서 설치하시면 되겠습니다.

 아래부터는 (2)-1 / (2)-2 둘 중에 한가지를 선택하셔서 진행하시면 됩니다. 초보자는 (2)-1 기본적인 표 형태의 인터페이스를 제공하는 cfdisk 를 추천하지만, 커맨드 라인 인터페이스에 익숙하시다면 (2)-2 gdisk를 추천합니다.

#첫 파티션 앞과 마지막 파티션 뒤에 1M정도의 여유 용량을 마련하시는 분들도 있는데, 상관없습니다. LFS 책에서는 오히려 이 방법을 기본으로 권장하고 있습니다. (LFS-Part2.Chapter2-2.4.Creating a New Partition 참고)

목차로 이동

2.3.1. cfdisk를 사용

$cfdisk /dev/sda

 라벨이 GPT라고 상단에 되어 있는지 확인합니다. MBR이 아니어야 합니다! 만약 처음에 물어보면 GPT를 선택해주시면 됩니다.

 모든 파티션은 Primary로 진행합니다.(컴퓨터가 물을 경우)

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


용량 크기를 입력 : 512M

(앞으로 생성할 모든 파티션도) Primary로 선택

‘TYPE’으로 커서를 옮긴 후 엔터 

‘EFI System’을 선택.(보통 맨 위에 있습니다.)

 두번째 만들 파티션은

/dev/sda2 — Linux swap/4G였습니다. 따라서,

#방향키를 아래로 내려서 free space를 향하게 하면 아래에 NEW버튼이 다시 생긴 것을 볼 수 있습니다.


용량 크기를 입력 : 4G

‘TYPE’으로 'Linux Swap’
(이제 /dev/sda3 생성)
다시 방향키 내린 후 'NEW' 선택

용량 크기는 디폴트가 남아있는 최대 크기로 설정 되어있는지 확인해주고 그냥 '엔터'

'TYPE’도 아마 자동으로 'Linux FileSystem'일 텐데 혹시 모르니 
다시 표에서 확인해주시면 됩니다.

마지막으로 ‘WRITE’를 선택하시면 됩니다.

##‘QUIT’선택해서 나옴.

목차로 이동


2.3.2. gdisk를 사용(cfdisk를 사용하신 분들은 넘어가시면 됩니다.)

$gdisk /dev/sda

#’?’를 입력해서 어떤 명령어들이 있는지 봐두시면 좋습니다.

 모든 파티션은 ‘Primary’로 잡습니다.

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

‘o’를 입력 — 모두 지우고

(/dev/sda1 생성을 위해)
'n' 입력 (New)

첫 번째 파티션이므로 '엔터'
(default가 1로 되어있는지 확인/아닐 경우 '1'을 입력)
첫 번째 섹터는 알아서 계산해주므로 '엔터'

라스트 섹터는 용량으로 입력 가능하므로 '+512mb'입력

파일시스템 코드로 'EF00' 입력
'p'를 통해 제대로 나뉘었는지 확인
(표의 형태로 출력됨.
/dev/sda1, EF00(혹은 EFI System), 512mb를 확인)

다시 'n'입력으로 /dev/sda2 생성 시작

기본 값으로 '2'가 되있는지 확인 후 '엔터'

첫 번째 섹터는 기본값대로 '엔터'

용량으로 입력 '+4G'

파일 시스템 코드로 '8200' 입력
'p'를 통해 재확인후 /dev/sda3 생성을 위해


기본 값으로 '3'이 되있는지 확인 후 '엔터'

첫 번째 섹터는 기본값대로 '엔터'

이번엔 마지막 섹터까지 사용할 예정이므로 '-1'을 입력

파일 시스템 코드로 '8300' 입력

마지막으로 'w'를 입력해서 'write'
목차로 이동

2.4. 포맷

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

 UEFI환경에서 부팅 파티션은 fat 파일시스템을 원합니다. 따라서 아까 EFI시스템으로 파티션을 계획했던 sda1은 fat32로 포맷을 할 것이고, 기본 파일 시스템으로 쓰기로 했던 sda3는 최근 가장 범용으로 쓰이는 ext4파일 시스템으로 포맷하겠습니다. 스왑 파티션은 지금 포맷을 진행하면 안됩니다!

#mkfs = Make File System

$mkfs.fat -F32 /dev/sda1

#fat은 금방 됩니다.

$mkfs.ext4 /dev/sda3

#ext4가 아무래도 sda3의 용량이 클테니 잠깐! 시간이 걸립니다.

목차로 이동

2.5. 스왑

스왑 드라이브를 만들어줍니다.

$mkswap /dev/sda2

#mkswap = makswap

스왑을 켜줍니다.

$swapon /dev/sda2
목차로 이동

2.6. 마운트

 마운트는 리눅스 파일 체계(루트(‘/’)로부터 뻗어나오는 파일 트리)의 각각의 폴더에 어떤 드라이브의 어떤 파티션을 이용하겠다고 연결하는 거구나 생각하시면 편합니다. 지금은 루트폴더와 루트아래의 부트 폴더만 마운트하면 됩니다. 추후에 홈폴더등을 따로 하나의 드라이브로 마운트 하는 것도 가능합니다.(위에서 비유적으로 언급한 윈도우즈의 C/D 드라이브 개념에서 각 드라이브를 실제로 연동시키는 작업이라고 생각하시면 됩니다.)

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

$mount /dev/sda3 /mnt

그리고 나서 루트 폴더 아래에 부트 폴더를 만들어 줍니다.

$mkdir /mnt/boot

#mkdir = makdirectory

부트 폴더를 마운트하려고 만들었던 /dev/sda1을 마운트해줍니다.

$mount /dev/sda1 /mnt/boot
목차로 이동

2.7. 미러리스트

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

$nano /etc/pacman.d/mirrorlist

#다 지우고 적으셔도 되는데 저는 개인적으로 그냥 첫 주석인 ‘## United Kingdom’ 위에다가 적어버립니다. 아래의 내용을 그대로 적어주시면 되겠습니다.(현재 kaist 미러는 403 error 이휴가 있습니다.)

Server =$repo/os/$arch

Server =$repo/os/$arch

Server = 로 시작하는 총 2줄로 입력이 되면 완성입니다. 모바일 환경에서 가로 길이의 한계로 ‘$arch’부분이 내려오는 경우가 있는데, ~/$repo/os/$arch 로 이어서 작성하시면 됩니다!

##(nano 편집기를 사용하여 편집 후 저장하고 나오는 방법 : ctrl+x, y, 엔터) ctrl+x : 종료 / 그리고 묻는 것 = 수정된 사항이 있는데 수정 하십니까? : y / 파일 명은 뭐로 합니까? 디폴트 값은 원래 파일명으로 되어 있으므로 : 엔터

#지금 단계에서 reflector를 설치해서 사용하셔도 무방합니다. 사용방법 : 링크

목차로 이동

2.8. pacstrap

$pacstrap /mnt base base-devel

#pacstrap 으로 /mnt 에 base 패키지와 base-devel 패키지를 설치하겠습니다.

목차로 이동

2.9. genfstab

파일 시스템이 어떤 드라이브와 마운트 되어있는지를 알 수 있는 파일 시스템 테이블 파일입니다. 그 파일 시스템 테이블 파일을 생성하는 작업입니다. 시스템 사용중에도 마운트 된 디바이스, UUID를 확인할 때 사용하는 파일입니다.

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

##genfstab : generate File System table

##-U : U는 대문자 U(UUID로 작성하겠다는 의미), /mnt 를, >> :저 파일에 추가로 작성(Append), /mnt/etc/fstab으로

#nano /mnt/etc/fstab 명령어를 통해서 어떤 게 쓰이는 건지 확인해 보실 수도 있습니다.

목차로 이동

3. 시스템 설정

3.1. 루트로 진입

$arch-chroot /mnt

##arch-change root

 시스템 내부로 들어왔습니다! 추가적인 시스템 세팅을 진행하도록 하겠습니다.

목차로 이동

3.2. 인터넷 확인

$ping -c 3
목차로 이동

3.3. 루트 비밀번호 설정


###입력은 원래 화면에 안보입니다. 놀라지 마세요!

##확인차 두번째 입력

목차로 이동

3.4. 로케일 설정

$nano /etc/locale.gen

파일이 뜨면 화살표키를 이용해 아래로 내려가다 보면


이 있습니다. 앞의 주석(#)만 지워주세요. 그리고 ctrl+x, y, 엔터입니다.

(ko_KR.UTF-8도 찾아서 ‘#’을 지우셔도 됩니다. 한글 사용에는 아무 지장이 없습니다.)

목차로 이동

3.5. 언어 설정

##참고로, 최소한의 세팅을 통해 빠른 설치 이후에 데스크탑 환경을 Gnome으로 설치하고 나서 터미널을 실행할 때 간혹 터미널이 실행되지 않는 이유를 궁금해하시는 분들이 있는데 지금 과정이 진행되어 있지 않으면 Gnome터미널은 작동을 하지 않습니다. 물론, 지금 과정을 그대로 하지 않았더라도 데스크탑 환경에서 세팅을 이용해 언어 설정을 바꾸셔도 실행시킬 수 있습니다. 다만, 아치 위키에서도 설치 과정에 그대로 소개하고 있는만큼 여기서도 따라가도록 하겠습니다.

 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 /etc/lcoale.conf를 통해 확인해 보실수 있습니다.

$export LANG=en_US.UTF-8

위의 명령어로 현재 진행하고 있는 쉘 환경(/bin/bash)에서의 언어를 선언합니다!

목차로 이동

3.6. PC 이름 설정

$echo hellopc > /etc/hostname

#hello 부분은 원하는 PC이름을 설정하시면 됩니다.(설치 전 주의사항에서 언급한대로 앞으로 등장할 밑줄부분은 본인이 원하는 이름으로 대체합니다.)

목차로 이동

3.7. 로컬 타임 설정

$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를 향하도록 해주는 작업입니다.

##(/usr/share/zoneinfo/Asia/Seoul 띄우고 /etc/localtime입니다.)

목차로 이동

3.8. 하드웨어 시간 설정

$hwclock --systohc --utc

##hwclock 띄우고 빼기 두개 systohc 띄우고 빼기 두개 utc입니다. 하드웨어 클락을 시스템 클락과 utc를 기준으로 사용해 동기화함

#옵션들 : systohc  – 시스템시간(sys)을(to) 하드웨어 시간(hardware clock)으로//utc-Coordinated Universal Time이라고 합니다;;그리니치 표준시와 거의 동일한건데 소숫점단위 초 에서 오차가 발생하여 기술적인 분야에서는 utc를 사용한다고 하네요;;/hctosys-하드웨어시간(hc)을(to) 시스템시간(sys)으로 밀어내기도 합니다.

목차로 이동

3.9. 사용자 추가

$useradd -m -G users,wheel -s /bin/bash hello

#역시 hello 부분은 원하는 아이디로 바꾸어 주시면 됩니다.


-m : username을 기반으로하는 홈 디렉토리를 생성

(-g : 소문자 g는 기본 그룹을 의미.)

-G : 추가적인 그룹 설정 (power은 이제 안쓰이는 그룹/sotrage는 systemd를 흡수하기 이전에 쓰이던 추가 그룹입니다. 아직도 위의 옵션 그룹을 기재해둔 가이드들이 많습니다;;)

참조: 아치 리눅스 위키 그룹 리스트

wheel : sudo와 su유틸을 사용하기 위한 관리자 그룹에 포함

-s : default가 아닌 다른 쉘을 사용하기 위한 옵션

/bin/bash : -s 로 다른 쉘을 사용하겠다 했으니 그 다른 쉘로써 bash를 지정

$passwd hello

#비밀번호 생성 아까와 마찬가지로 두번 입력하시면 성공했다는 알림이 출력됩니다.(hello는 본인 아이디)

$EDITOR=nano visudo

vi/vim에디터가 익숙하신 분들은 그냥 $visudo 하시면 됩니다.

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

#sudoers 파일은 $nano /etc/sudoers 커맨드로도 수정이 가능하지만, 원칙은 visudo를 통해 수정하는게 맞습니다. visudo는 vi에디터를 기본으로 하기에 EDITOR=nano를 통해 nano 편집기로 열었습니다. visudo가 sudoers파일의 문법적 오류 등을 점검하고 잠금하는 기능을 하기 때문에 임의로 $nano /etc/sudoers 를 수정하는 것은 권장하지 않습니다.

아래로 화살표키 내리다 보면

##uncomment to ~항목에 
%wheel ALL= (이렇게 주석처리 되있던 것(#을 삭제)을 제거해 주시면 됩니다.)

(위의 굵은 글씨로 되있는 것이 똑같이 작성되면 됩니다.)
목차로 이동

3.10. 부트로더 설치

부트로더 설치를 하겠습니다. 아까 파티션 때와 마찬가지로 2가지를 이용할 수 있습니다. (1) grub 은 대부분 배포판에서 사용하기 때문에 익혀두시면 다른 배포판을 다룰 때에도 익숙할 수 있습니다. 다만 grub 과 efibootmgr과 같은 프로그램을 추가로 설치해서 진행합니다. (2) systemd-boot는 systemd에 내장된 기능을 이용해 부트를 시도합니다. (부트 시간도 차이가 난다고 알려져있습니다.) 첫 설치는 조금 더 까다롭다고 느끼 실 수 있지만 추가 설치를 최소하하려는 아치 배포판의 철학과 매우 잘 부합한다고 생각합니다. 제 추천을 원하신다면 systemd-boot를 추천합니다.

#추가. grub은 현재 grub2입니다. grub-legacy라고 하여 예전 BIOS환경일 때부터 쓰여온 훌륭한 소프트웨어입니다. 다만, 너무나 많은 기능을 제공하다보니 단지 UEFI 환경의 부트만을 원하는 사용자에게는 의미없는 기능이 추가되어있습니다. 그것은 곧, 소프트웨어에 예기치 못한 충돌이나 문제가 발생할 소지가 많다는 의미이기도 합니다. systemd-boot는 bootctl혹은 gummiboot라고도 불리는데 그 이유는 systemd가 흡수를 하기 전 외부에 존재하는 소프트웨어일 때의 이름이기 때문입니다. 이제는 Systemd와 완전히 합쳐져서 UEFI 부트만을 보조하는 기능을 수행합니다(물론, BIOS 부트를 설치할 수 있습니다만 추천하지 않습니다). 아치리눅스 설치 과정에서도 default로 설치되는 프로그램입니다.

목차로 이동

3.10.1.  grub efibootmgr 사용

grub 과 efibootmgr을 설치합니다.

$pacman -S grub efibootmgr

#grub을 사용하여 부트가 가능하도록 설치하겠습니다.

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

##grub-install 할텐데, (띄우고)타겟=x86_64-efi 이다. (띄우고)efi-디렉토리=/boot이다. (띄우고)부트로더-id=arch로 하겠다. –recheck

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

#grub 설정을 업데이트 할 때도 나중에 사용합니다. 특히 커널 변수등을 실험해보거나 할 때 /etc/dafault/grub 파일을 수정한 후에 위 명령어를 통해 업데이트를 합니다.

목차로 이동

3.10.2. systemd-boot 사용

$bootctl --path=/boot install

#/boot/loader 의 /loader.conf파일을 수정해야 합니다.

$nano /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 은 부팅 화면 중에 선택을 기다리는 시간입니다. 이것도 마찬가지로 지금은 설정해두되 나중에 ‘0’등으로 수정하셔도 됩니다.

 이제 로더 폴더 아래의 엔트리스 폴더에 파일을 생성하고 수정하겠습니다.

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

아까 위에서 default에 적으셨던 그 이름 그대로 사용해서 파일을 생성하시면 됩니다.

title Hello

linux /vmlinuz-linux

initrd /initramfs-linux.img

options root=/dev/sda3 rw

#참고. $ls /boot 해보시면 /boot폴더 아래에 loader와 각종 이미지 파일(vmlinuz, initramfs-linux 등)이 있는 것을 확인하실 수 있습니다. 그것들이 위 파일 내용에 포함되는 것입니다.

#title 알아보기 쉬운 이름을 사용하시면 됩니다. 이 곳의 쓰인 이름은 다른 설정에서 추가로 필요하지 않습니다만, 보통 ArchLinux등을 사용하는 편입니다.

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

#추가적으로 저는 rw옵션에 이어 quiet 등을 사용합니다.(그랬었는데, 다시 quiet옵션은 그냥 안씁니다. 큰 이유는 없고 Failed가 뜨는지 보고싶어졌습니다.)

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  하셔도 됩니다.(밑줄 부분은 본인이 만든 파일 이름입니다.)

무슨 방법을 사용하시든 반드시 다시 $nano /boot/loader/entries/arch.conf하셔서 추가한 내용들이 적절히 적혀 있는지 확인하시기 바랍니다.

목차로 이동

3.11. exit

목차로 이동

3.12. umount

#장치를 언마운트합니다.

$umount -R /mnt
목차로 이동

3.13. reboot



#장치가 종료되고 다시 시작되는 시점에 usb를 빼주시면 됩니다.

 재부팅이 되면 로그인 하라는 화면이 나올텐데 설치에 성공하신 겁니다! 축하드립니다! 아마 기쁘신 분도 있고, 이게 뭐야 하시는 분도 있을텐데, 이게 뭐야 싶으신 분들은 그래픽 환경에 익숙하셔서 그런거라고 생각합니다. 앞으로 이어질 데스크탑 환경을 설치하시면 그래픽 환경에서 아치를 사용하실 수 있습니다.

4. 데스크탑 환경 설치

데스크탑 환경을 구축해 보겠습니다.

4.1. 로그인

본인이 설정한 id/passwd로 로그인을 합니다.

목차로 이동

4.2. 인터넷 임시 연결

우선 인터넷 연결을 해보겠습니다.(추후 데스크탑 환경에서는 network manager를 사용하고 있으니, 지금 dhcpcd는 enable 하지는 않고 start만 하겠습니다./ enable은 부팅시에 자동으로 시작하도록 허용하는 것이고, start는 지금 서비스를 시작하는 것을 의미합니다.)

$sudo systemctl start dhcpcd

##sudo 는 substitute user do (superuser do 로 기억하시면 더 직관적으로 이해됩니다.)대체 유저가 사용한다는 뜻으로 일시적으로 사용자의 권한을 상승시키는 명령입니다.

#dhcpcd 를 방금 start했기 때문에 아래의 ping명령을 찾을 수 없다고 출력될 수 있습니다. 몇 초 후에 다시 시도하시면 접속이 가능합니다.

$ping -c 3
목차로 이동

4.3. pacman 설정

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

##pacman 은 아치 리눅스(arch-linux)의 패키지 매니저(package manager)입니다.

$sudo pacman-optimize

$sudo pacman -Syu

##pacman-optimize 는 pacman 5.1.0 update(2018-05-29경) 이후 삭제되었습니다.

##-Syu에서 S는 대문자 나머지는 소문자 입니다.

목차로 이동

4.4. 필수 설치

Gnome데스크탑 환경을 설치하고, 데스크탑 환경을 위해 Xorg-server를 설치하겠습니다. 이 부분은 설치 과정을 통틀어 가장 긴 시간이 소요됩니다. 설치가 완료되고 나면 디스플레이 매니저를 사용할 수 있게 Systemctl enable을 진행합니다.

#xorg-server패키지에는 기본적으로 디스플레이 데스크탑 환경을 쓰는데 필요한 소프트웨어가 포함되어 있습니다. Gnome패키지에는 gdm을 포함한 Gnome 데스크탑 환경에서 사용하는 필수 소프트웨어가 포함되어 있습니다. 별도의 소프트웨어를 추가로 설치하고 싶으시다면 gnome-extra를 설치하시면 됩니다.

#gdm 은 Gnome Display Manager로써, 데스크탑 환경의 로그인 화면과 Xorg-server 등 전반적인 그래픽 환경을 관리하는 프로그램입니다.

$sudo pacman -S xorg-server gnome (gnome-extra)

$sudo systemctl enable gdm

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

#다른 데스크탑 환경을 구축 하실 분들은 아래의 ‘데스크탑환경/디스플레이 매니저’를 설치해주시면 됩니다.(아래는 직접 설치해보지 않았습니다. 설정 방식이 Gnome과 다를 수 있습니다.)

  • 데스크탑 환경 – 디스플레이 매니저
  • Plasma5(KDE) – SDDM
  • XFCE – XDM
  • 대부분의 경우에 사용이 가능한 LightDM도 있습니다.
목차로 이동

4.5. reboot


재부팅을 해보겠습니다.

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

5. 데스크탑환경 설정

적극적인 분들은 이미 느끼셨을 테지만, 새로 설치한 아치 리눅스에서 인터넷 연결이 되지 않습니다. 해결을 해볼까요? Gnome 터미널을 실행합니다.(상단 좌측 ‘Activities>Terminal’)

##개인적으로 리눅스/데스크탑 환경을 사용하면서 가장 기본으로 생각하는 것이 ‘설정’입니다. 지금 바로 상단의 ‘Activities’의 ‘settings’를 통해 기본 설정을 하는 것을 추천합니다. 특히 settings에서 Region & Language 탭에 들어가 보시면 언어가 영어로 되어있어야 Gnome 터미널이 작동합니다.

목차로 이동

5.1. NetworkManager 설정

Gnome 데스크탑 환경에서 디폴트로 사용하는 네트워크 매니저를 사용할 수 있게 설정하겠습니다.

$sudo systemctl enable NetworkManager

#systemctl 을 사용할 때에는 N과 M이 대문자임에 주의하셔야 합니다.

$sudo systemctl start NetworkManager

#enable을 통해 부팅시 시작설정을 하였고, 이번엔 start를 통해 지금 시작해보았습니다.

상단 패널의 Activities>Settings(설정)에 들어가셔서 첫 화면으로 뜨는 Wifi항목을 보시면 연결이 되는 것을 확인할 수 있습니다. 이제 여러분은 원하는 와이파이에 접속하실 수 있습니다.

어때요? 리눅스는 Wifi설정이 어렵다는 것도 사실은 이렇게 간편하답니다!

목차로 이동

5.2. 웹 브라우저-FireFox

 웹 브라우저가 기본 ‘웹’소프트웨어를 이용하도록 되어있네요. 본인이 사용하고 싶은 웹 브라우저가 파이어폭스, 혹은 구글-크롬이라면 어떻게 해야 할까요?

 파이어폭스라면 설치해주면 됩니다!

$sudo pacman -S firefox

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

#구글-크롬의 경우에는 조금 복잡합니다. 팩맨을 활용해서 설치할 수 있는 소프트웨어의 경우는 아치의 공식 레파지토리에 올라와 있는 것들입니다. 구글-크롬의 경우에는 공식 레파지토리에는 chromium 이라는 이름의 오픈소스 버전이 올라와 있습니다. 사실 둘의 차이점은 크지 않아요!(chromium 설치 : $sudo pacman -S chromium)하지만 나는 꼭 구글-크롬 을 사용하고 싶다 하시면 아치의 자랑인 AUR을 사용해 보겠습니다!

목차로 이동

5.3. AUR-Google-Chrome

 AUR 이란 Arch User Repository로 아치 사용자들이 관리하고 업로드하는 패키지들의 모음입니다. AUR을 이용해 패키지를 빌드하는 방법은 확실히 알아두셔야 합니다. 나중에 부록에서 찾으실 수 있는 AUR-Wrapper(yaourt 등)를 사용하시더라도 오류는 언제든지 발생할 수 있습니다. 그 때는 부득이하게 수동으로 설치하셔야 합니다. 아치리눅스 위키페이지에 따르더라도, AUR wrapper는 언제나 도움을 주는 소프트웨어일 뿐, 공식적으로 지원을 받는 프로그램이 아닙니다.

 기본 개념은 “”에 접속해서 내가 설치하려고 하는 패키지의 “snapshot”을 다운로드 받습니다. 다운로드 받은 스냅샷의 압축을 해제하면 “PKGBUILD”파일이 있는데, “MAKEPKG”라는 명령어를 통해 컴퓨터가 “PKGBUILD”의 내용대로 설치를 하는 것입니다.자세한 내용은 아래를 통해 설명드리겠습니다.

지금은 ‘웹’소프트웨어 밖에 없으니 그것을 이용해서

aur.archlinux.org를 접속한 후에 
우측의 검색 창에 'google-chrome’을 입력하시면 
구글-크롬에 해당하는 AUR페이지가 뜹니다. 

우측의 작은 대화상자(Package Actions)에서 
Download Snapshot 을 이용해 Downloads/폴더로 가져옵니다.

 터미널을 실행합니다.

$cd Down(tab)

#(tab)은 키보드의 tab키를 의미합니다. bash 는 키보드의 tab키로 자동 완성 기능을 제공합니다.


#ls(list)를 통해서 어떤 것들이 들어가 있는지 확인합니다. google-chrome.tar.gz를 확인할 수 있습니다.

#name.tar.gz – gzip으로 압축되고 tar로 패키지된 파일 이라는 뜻입니다. 해제는 tar 명령어를 이용하면 됩니다.

$tar -xvzf goog(tab)

#tar 는 파일 압축 해제 프로그램이라고 생각하셔도 됩니다. (옵션은 각각 x : extract(압축해제)/v:verbose(과정 출력)/z:gzip 으로 압축된 파일/f:압축 파일을 사용) 탭키를 이용해 나머지 이름은 자동완성해보았습니다.


#완료되고 나서 다시 ls를 해보면 google-chrome 폴더가 생겼습니다!

$cd goog(tab)

#구글-크롬 폴더로 이동

$makepkg -sic

#makepkg 는 pkgbuild라는 파일을 읽고 컴퓨터가 그 파일의 내용대로 빌드하고 팩맨으로 설치합니다. (각각의 옵션은 s:설치할 소프트웨어가 의존하고 있는 다른 소프트웨어를 자동으로 설치합니다. i:빌드가 성공하면 설치하겠다. c:설치 중에 발생한 불필요 파일들은 빌드가 완성된 후 삭제합니다.)

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

google-chrome 설치가 완료되었습니다!

상단 패널의 Activities>All을 통해서 확인하실 수 있습니다!

##Downloads 폴더의 압축파일과 폴더는 삭제하셔도 좋습니다!

목차로 이동

5.4. 한글 폰트

인터넷을 하다 보니 한글이 표시될 곳에 네모난 박스가 표시됩니다!

AUR을 이용해 한글 폰트를 설치해볼까요?

aur.archlinux.org에 접속/ttf-nanum검색/snapshot 다운로드

$cd Down(tab)

$tar -xvzf ttf(tab)

$cd ttf(tab)

$makepkg -sic

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

목차로 이동

5.5. 한글 입력

$sudo pacman -S ibus ibus-hangul

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

설치된 어플리케이션 중에 'ibus-preferences'를 선택합니다.
//상단 패널에서 Activities>All 을 통해서 가진 모든 소프트웨어를 확인할 수 있습니다.

앱의 네가지 탭 중'input-method'를 클릭합니다.
그리고 'ADD'를 클릭 후 'others/korean/hangul'을 찾습니다.
(한/영 전환을 'Shift+Space'로 변환하겠습니다.)
해당 앱의 상단 탭에서 'General' 항목으로 이동합니다. 

'Keyboard Shortcut/Next Input method'를 찾으라고 장황하게 적었지만 
General 항목으로 이동하면 첫 번째로 있습니다;; 

우측의 버튼을 클릭 후 'modifier' 를 'shift'로 체크 변경하고 'apply'로 적용합니다.
기본 앱인 '설정' 어플리케이션(Settings)을 실행합니다.

'Region & Language'를 눌러보면 
'Input Sources'가 있습니다. 이게 입력 수단입니다.

'+'버튼을 클릭해서 'others' 에서 'korean' 중에 
'Korean(hangul)'을 추가합니다.

모니터 우측 상단에 A가 생긴것을 보실 수 있습니다. 
A를 클릭한 후 korean(hangul)로 변경해 줍니다. 그럼 '한'으로 변경되었습니다.

하지만, 다시 한번 '한'을 클릭해 줍니다.

가운데 있는 hangul mode를 켜줍니다.

유투브에서 shift+space를 이용해 한/영 변환을 해봅니다. 작동하는군요!

이제 한글 입력을 할 수 있습니다!

목차로 이동

부록A-권장 사항

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

다만 몇 가지의 추가 사항만 소개하고 글을 마치도록 하겠습니다.

1.microcode – 추천도 : 5/5

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

(intel cpu라고 가정하고 설치하겠습니다.)

목차로 이동

1.1. Systemd-boot 사용자

$sudo pacman -S intel-ucode
$sudo nano /boot/loader/entries/arch.conf

#밑줄은 설치 과정에 본인이 사용하셨던 이름으로 대체하셔야 합니다.

initrd /intel-ucode.img

#initrd /initramfs-linux.img 위에 작성해 주시면 됩니다.

$sudo bootctl update
목차로 이동

1.2. grub 사용자

##’intel-ucode’설치를 하고 나면 grub은 알아서 잘 찾아줍니다.다만, config파일은 업데이트를 해야겠지요?

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

(-참조페이지: 아치리눅스위키_microcode)

목차로 이동

2. video driver – 추천도 : 3/5

VGA 드라이버를 잡아주셔야 합니다.

$lspci | grep -e VGA -e 3D

#제 노트북의 경우에는 VGA compatible controller : 로 Intel Corporation HD Graphics 520 이라고 나옵니다.

#그리고 아래의 참조페이지를 보시고 본인에게 해당하는 드라이버를 설치해주시면 됩니다. 저의 경우에는 “xf86-video-intel” 이므로

$sudo pacman -S xf86-video-intel

(-참조페이지: 아치리눅스위키_드라이버)

xf86-video-intel 드라이버는 더 이상 기본으로 추천하지 않습니다. modesetting으로 폴백하는 것이 낫습니다. 참고 링크를 추가해드립니다.

목차로 이동

3. 시스템 체크 – 추천도 : 5/5

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

$sudo journalctl -p 3 -xb

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

목차로 이동

3.2. systemd 실행 중 실패한 파일 확인

$sudo systemctl --failed

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

목차로 이동

4. pci bus error – 추천도:필요한 분들만.

<부팅 중 pci bus error가 발생하지 않는 분들은 필요가 없는 과정입니다!>

부팅 중 pci bus error로 시작하는 긴 문장이 계속 뜨면서 부팅이 안되는 경우에


전원 버튼으로 재부팅을 하시고, 부트 로더 화면(부팅할 OS선택 화면)에서 부팅할 OS를 가리킨 채로 ‘e’키로 편집 화면으로 넘어갑니다. 여기서부터는 본인이 사용하는 부트로더의 종류에 따라 나뉩니다.

목차로 이동

4.1. systemd-boot 사용자의 경우

"[공통]에 이어서"
(options 부분으로 이동 후)

rw quiet 뒤에 pci=nomsi 를 적어줍니다.

(pci=nomsi 로 해결이 안될 경우 pci=noaer를 입력)

정상적으로 부팅이 되고 나면

$sudo nano /boot/loader/entries/arch.conf
(밑줄은 본인이 사용했던 이름으로 대체)

options ~생략~ rw quiet pci=nomsi

$sudo bootctl update

테스트를 위해 재부팅을 해봅니다.
목차로 이동

4.2. grub 사용자의 경우

"[공통]에 이어서"
(default 부분으로 이동 후)

quiet 뒤에 pci=nomsi를 적어줍니다.

(pci=nomsi로 해결이 안될 경우 pci=noaer로 입력)

정상적으로 부팅이 되고 나면

$sudo nano /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT=” ~생략~ quiet pci=nomsi$grub-mkconfig -o /boot/grub/grub.cfg
목차로 이동

5. ccache, makeflags -추천도:3/5 (시스템 이해가 되고 나서 하세요)

ccache 설치

ccache는 자주 컴파일 되는 것들을 캐싱해 둠으로써 빌드 시간을 단축시키는데 목적이 있습니다.

$sudo pacman -S ccache

프로세서 개수 확인


결과로 나온 숫자를 기억해두시면 됩니다.

makepkg.conf 파일 수정

$sudo nano /etc/makepkg.conf

중간에 BUILD ENVIRONMENT 부분에서 아래로 몇 줄 내려가보면

BUILDENV=(!distcc color ccache check !sign)

으로 ccache 부분 앞의 ‘!’를 제거해줍니다.

아까 BUILD ENVIRONMENT 제목으로 돌아간 후 위로 4줄정도를 보시면


위 처럼 ‘#’을 지우신 후 아까 외운 숫자를 j뒤에 붙이시면 됩니다.

이제 bashrc파일을 수정하겠습니다.

$nano ~/.bashrc

맨 아래에 두 줄을 추가해줍니다.

export PATH="/usr/lib/ccache/bin/:$PATH"
export MAKEFLAGS="-j4"
목차로 이동

부록B-추천 패키지 목록

#text editor

  1. nano
  2. vim
  3. emacs
  4. ?lime?
  5. ?atom?

#AUR Wrapper

AUR를 통해 설치한 패키지들의 업데이트 내역이나 설치를 도와주는 소프트웨어들입니다. ‘yaourt’가 디폴트 수준으로 많이 사용되고 있어서 가장 앞에 두었습니다. 추천을 원하신다면 ‘cower’를 추천합니다.

  1. yaourt
    1. $sudo nano /etc/pacman.conf
    2. 맨 아래로 내려가서 3번,4번,5번을 적어줍니다.
    3. [archlinuxfr]
    4. SigLevel = Never
    5. Server =$arch
    6. $sudo pacman -Sy yaourt
    7. [사용법] 검색 : $yaourt -Ss
    8. [사용법] 설치 : $yaourt -S package-name
    9. [사용법] 업데이트 : $yaourt -Syu
  2. pacaur – cower를 기반으로 yaourt처럼 자동 설치까지 지원해줍니다.
  3. cower
    1. > cower > Download Snapshot
    2. $gpg –recv-keys –keyserver hkp:// 1EB2638FF56C0C53
    3. $cd Downloads
    4. $tar -xvzf cower(tab)
    5. $cd cower
    6. $makepkg -sic
    7. [사용법] 업데이트 확인 : $cower -u
    8. [사용법] 업데이트 다운 : $cower -ud




 추가 소프트웨어 설치하지 않고, 기본 Gnome ‘Video’앱으로 비디오 시청하려는데 간혹, 검정색 화면만 나오는 경우가 있는데 그 때는 ‘gst-libav’가 설치되어 있는지 확인. 방법 : $pacman -Ss gst-libav 이 결과 값이 ‘[installed]’로 뜨지 않을 경우 설치하시면 됩니다.

#(취향)prompt 세팅 예제([시간][유저@호스트네임][디렉토리]>)

(배경화면을 설정하면 히스토리 브라우징하거나, 긴 커맨드 입력후 깨짐/연구중)

  1. $nano ~/.bashrc
  2. PS1=”[\t][\u@\h][\w]>”

#(취향)’screenfetch’ 설치 방법

  1. $sudo pacman -S screenfetch
  2. $nano ~/.bashrc
  3. if [ -f /usr/bin/screenfetch ]; then screenfetch; fi
  4. Edit>Profile Preferences 수정


목차로 이동

부록C-커맨드 리스트

  •  cfdisk/gdisk 내부는 생략합니다.
  •  grub/systemd-boot 병행 주의
  •  >은 커맨드가 아니란 뜻입니다. 커맨드는 그냥 아무 표시 없이 적었습니다.
  • 반드시 본문의 내용을 이해하고 나서 진행하시기 바랍니다.
  • ‘preformatted’ 형식이 아니기 때문에 ‘-‘가 두개 있는 경우도 ‘-‘한개 처럼 표시됩니다. 주의하시기 바랍니다. (해당 명령어 뒤에 ‘##두개##’라고 붙여두겠습니다.)
  1. 설치 준비
    1. sudo dd bs=4M if=~/Downloads/archlin(tab) of=/dev/sdX status=progress && sync
  2. BASE 설치
    1. ls /sys/firmware/efi
    2. ping -c 3
    3. lsblk
    4. >partition (1)cfdisk/(2)gdisk
      1. cfdisk /dev/sda
      2. gdisk /dev/sda
    5. mkfs.fat -F32 /dev/sda1
    6. mkfs.ext4 /dev/sda3
    7. mkswap /dev/sda2
    8. swapon /dev/sda2
    9. mount /dev/sda3 /mnt
    10. mkdir /mnt/boot
    11. mount /dev/sda1 /mnt/boot
    12. nano /etc/pacman.d/mirrorlist
    13. >Server =$repo/os/$arch
    14. >Server =$repo/os/$arch
    15. pacstrap /mnt base base-devel
    16. genfstab -U /mnt >> /mnt/etc/fstab
  3. 시스템 세팅
    1. arch-chroot /mnt
    2. ping -c 3
    3. passwd
    4. nano /etc/locale.gen
    5. >en_US.UTF-8
    6. locale-gen
    7. echo LANG=en_US.UTF-8 > /etc/locale.conf
    8. export LANG=en_US.UTF-8
    9. echo pcname > /etc/hostname
    10. ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
    11. hwclock –systohc –utc ##두개##
    12. useradd -m -G users,wheel -s /bin/bash yourname
    13. passwd yourname
    14. EDITOR=nano visudo
    15. >(uncommnet)%wheel ALL~
    16. >bootloader (1)grub/(2)systemd-boot
      1. grub
        1. pacman -S grub efibootmgr
        2. grub-install –target=x86_64-efi –efi-directory=/boot –bootloader-id=arch –recheck ##두개##(terget 앞, efi-directory 앞, bootloader-id 앞, recheck 앞)
        3. grub-mkconfig -o /boot/grub/grub.cfg
      2. systemd-boot
        1. bootctl –path=/boot install ##두개##
        2. nano /boot/loader/loader.conf
        3. >default arch
        4. >editor 0
        5. >timeout 0
        6. nano /boot/loader/entries/arch.conf
        7. >title archlinux
        8. >linux /vmlinuz-linux
        9. >initrd /initramfs-linux.img
        10. echo “options root=PARTUUID=$(blkid -s PARTUUID -o value /dev/sda3) rw” >> /boot/loader/entries/arch.conf
        11. nano /boot/loader/entries/arch.conf
    17. exit
    18. umount -R /mnt
    19. reboot
  4. 데스크탑 환경 설치
    1. login
    2. sudo systemctl start dhcpcd
    3. ping -c 3
    4. sudo pacman -Syu
    5. sudo pacman -S xorg-server gnome
    6. sudo systemctl enable gdm
    7. reboot
  5. 데스크탑 환경 설정
    1. sudo systemctl enable NetworkManager
    2. sudo systemctl start NetworkManager
    3. >
    4. >google-chrome
    5. >Download Snapshot
    6. cd Down(tab)
    7. tar -xvzf goog(tab)
    8. cd goog(tab)
    9. makepkg -sic
    10. >
    11. >ttf-nanum
    12. >Download Snapshot
    13. cd Down(tab)
    14. tar -xvzf ttf(tab)
    15. cd ttf(tab)
    16. makepkg -sic
    17. sudo pacman -S ibus ibus-hangul
    18. >ibus-preferences
    19. >input-method>ADD>others/korean/hangul
    20. >General>modifier : shift / apply
    21. >Settings>Region&Language : Input Source
    22. >’+’ >others>Korean>Korean(hangul)
    23. >click ‘A’ on the panel
    24. >change to ‘korean(hangul)’
    25. >click ‘한’on the panel
    26. >turn on ‘hangul mode’
  6. 권장사항
    1. microcode
      1. systemd-boot
        1. sudo pacman -S intel-ucode
        2. sudo nano /boot/loader/entries/arch.conf
        3. >initrd /intel-ucode.img
        4. sudo bootctl update
        5. reboot
      2. grub
        1. sudo pacman -S intel-ucode
        2. grub-mkconfig -o /boot/grub/grub.cfg
    2. video driver
      1. lspci | grep -e VGA -e 3D
      2. sudo pacman -S xf86-video-intel
    3. System Check
      1. sudo journalctl -p 3 -xb
      2. sudo systemctl –failed ##두개##
    4. PCIe bus error
      1. systemd-boot
        1. sudo nano /boot/loader/entries/arch.conf
        2. >(add at options)pci=nomsi  (or  pci=noaer)
        3. sudo bootctl update
        4. reboot
      2. grub
        1. sudo nano /etc/default/grub
        2. >(add at “GRUB_CMDLINE_LINUX_DEFAULT”)pci=nomsi  (or  pci=noaer)
        3. grub-mkconfig -o /boot/grub/grub.cfg
    5.  ccache,makeflags
      1. sudo pacman -S ccache
      2. nproc
      3. sudo nano /etc/makepkg.conf
      4. >BUILDENV=(!distcc color ccache check !sign)
      5. >MAKEFLAGS=”-j4″
      6. nano ~/.bashrc
      7. >export PATH=”/usr/lib/ccache/bin/:$PATH”
      8. >export MAKEFLAGS=”-j4″
  7. 부록B-추천 패키지 목록
    1. text editor – vim
      1. sudo pacman -S vim
    2. AUR Wrapper
      1. yaourt
        1. sudo nano /etc/pacman.conf
        2. >[archlinuxfr]
        3. >SigLevel=Never
        4. >Server =$arch
        5. sudo pacman -Sy yaourt
      2. cower
        1. >>cower>Download Snapshot
        2. gpg -recv-keys -keyserver hkp:// 1EB2638FF56C0C53
        3. cd Downloads
        4. tar -xvzf cower
        5. cd cower
        6. makepkg -sic
    3. libreoffice
      1. sudo pacman -S libreoffice-fresh
    4. qbittorrent
      1. sudo pacman -S qbittorrent
    5. for video app
      1. sudo pacman -S gst-libav
    6. prompt setting
      1. nano ~/.bashrc
      2. >PS1='[\t][\t@\h][\w]>’
    7. screenfetch
      1. sudo pacman -S screenfetch
      2. nano ~/.bashrc
      3. >if [-f /usr/bin/screenfetch ]; then screenfetch; fi
      4. Edit>Profile Preferences 수정
    8. gimp
      1. sudo pacman -S gimp
목차로 이동