Server

Arch linux 설치 방법 (우분투 탈출)

HoodieJun 2021. 4. 18. 13:24

리눅스를 처음 우분투로 접해서 우분투 계열의 distros만 쓰다 보니 질려서 새로운 distros를 찾게 되었습니다.
아치는 다른 리눅스와 다르게 아무것도 깔려있지 않고 처음부터 끝까지 자신이 필요한 것만 설치하면 되는 구조였습니다. 대신 설치할 때도 파티션 설정 로케일 설정 네트워크 설정 등등 모든 걸 직접 해줘야 해서 걱정도 많이 했습니다. 실제로도 제가 비전공자에 취미로 리눅스를 사용하다 보니 어려움이 많았습니다ㅠㅠ
또 좋은 점은 리눅스 커널이 롤링 업데이트돼서 따로 버전이 나올 때마다 우분투처럼 6개월씩 안 기다리고 바로바로 업데이트할 수 있다는 점이 좋았습니다.
제 마음대로 컴퓨터를 온전히 컨트롤한다는 느낌에 매력을 느껴 도전해봤고 설치에 성공했습니다. 깔끔하게 사용하고 싶으신 분들은 추천드릴게요! 그럼 설치 과정을 소개하겠습니다.

  • 설치 준비

저는 요즘 컴퓨터에서 많이 사용하는 UEFI 부팅 시스템을 기준으로 작성했습니다. MBR 방식을 사용하시는 분은 다른 방법으로 설치해주세요.
1. 부팅 usb 준비
먼저 usb부팅 디스크를 만드셔야 하는데요. arch linux image는 archlinux.org/download/ 여기서 받으시면 될 것 같아요. 체감상 토렌트로 받는 게 가장 빠르고 밑에 내려보시면 한국 미러 서버에서 받아도 충분히 빠르게 받을 수 있었습니다.
부팅 USB 만드는 방법입니다.

  • 리눅스: balena etcher를 이용해서 만들어주세요.
  • 윈도우: rufus를 이용해서 만들어주세요. 시작 눌러서 나오는 팝업창에 dd 모드로 쓰기를 선택해주세요.

2. 인터넷 연결
만든 usb로 부팅을 시작하면 제일 먼저 인터넷을 연결해야 합니다. 윈도우나 우분투는 일단 설치하고 나중에 인터넷 연결해서 업데이트하면 되지만 arch는 꼭 연결돼있어야 합니다. 유선 연결이 가능하신 분은 유선 연결하시고 wifi로 연결하시고자 하는 분만 밑에 과정을 따라 해 주세요.

ping archlinux.org

iwctl

[iwd]$ device list

[iwd]$ station wlp2s0 scan

[iwd]$ station wlp2s0 get-networks

[iwd]$ station wlp2s0 connect iptime_5G

유선 연결하시는 분은 ping 만 확인하고 넘어가세요.
iwctl을 입력하면 iwd 모드로 진입합니다.
device list로 무선랜카드 장치 이름을 확인합니다.
station [확인한 무선랜 장치 이름] scan을 통해 와이파이를 스캔합니다.
station [확인한 무선랜 장치 이름] get-networks를 통해 와이파이 이름을 가져옵니다.
station [확인한 무선랜 장치 이름] connect [연결할 와이파이 이름]을 입력하시면 와이파이 연결이 됩니다.

3. 시스템 시간 업데이트

timedatectl set-ntp true

연결된 인터넷으로 시간을 자동으로 가져옵니다.
timedatectl status로 시간이 맞는지 확인해주세요.

4.  디스크를 분할
여기서부터 #은 코멘트 처리로 부연설명입니다.

# 현재 디스크 상황을 확인합니다.
lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 111.8G  0 disk
├─sda1   8:1    0   512M  0 part /boot/efi
└─sda2   8:2    0 111.3G  0 part /

# 보통 하드를 쓰시면 /dev/sda 를 ssd를 쓰시면 /dev/nvme/ 가 나옵니다. 
# 쓰시던 하드를 삭제하는 과정입니다. 내용이 지워지니 주의하세요.
gdisk /dev/sda
Command (? for help): d
(hit the partition number you want to delete)
Command (? for help): w

# efi 파티션을 만듭니다.
Command (? for help): n
default value is 1 so hit enter
value of first sector -> enter
value of second sector -> +200M
partition system code -> ef00

# 주 파티션을 생성합니다.
Command (? for help): n
default value is 2 so hit enter
value of first sector -> enter
value of second sector -> enter
partiton system code (default is linux file system) -> enter
Command (? for help): w

파티션을 생성했으니 파일 시스템에 맞게 포맷하겠습니다.

# 부팅시스템은 fat32 로 포맷하겠습니다.
mkfs.fat -F32 /dev/sda1

# Linux File System 은 ext4 로 포맷하겠습니다.
mkfs.ext4 /dev/sda2

5. 마운트
포맷한 파티션을 컴퓨터에 마운트 시키겠습니다.

# 주 파티션 마운트하기
mount /dev/sda2 /mnt

# efi system 을 위한 디렉토리 생성
mkdir -p /mnt/boot/efi

mount /dev/sda1 /mnt/boot/efi

여기까지 설치 준비가 끝났습니다. 이제 설치를 시작하겠습니다.

  • 설치

1. 빠른 미러서버로 선택

# 가장 빠른 미러서버 찾아서 저장하기
reflector -c "South Korea" -a 12 --sort rate --save /etc/pacman.d/mirrorlist

# 패키지 매니저 업데이트
pacman -Syy

2. 필수 패키지 설치
우선 최소한으로 필요한 패키지만 설치하고 부가적인 것은 나중에 설치하겠습니다.

pacstrap /mnt base linux linux-firmware vim man-db man-pages texinfo intel-ucode

 

  • 시스템 설정

1. fstab
fstab 파일을 생성하겠습니다.

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

# 잘 생성됐나 확인
cat /mnt/etc/fstab

2. chroot
root 유저로 설치한 리눅스에 접속하겠습니다.

arch-chroot /mnt

3. 스왑 파일 생성
요즘 컴퓨터는 메모리가 충분하므로 스왑 파일을 zero로 생성하겠습니다.

dd if=/dev/zero of=/swapfile bs=1M count=1024 status=progress

# 권한설정
chmod 600 /swapfile

# swap 파티션 활성화
mkswap /swapfile
swapon /swapfile

# fstab 적용하기
vim /etc/fstab

# 마지막 줄에 추가하기
/swapfile none swap defaults 0 0

#:wq 로 저장하고 빠져나오기

4. 시간 설정

# 서울의 시간을 찾아서 링크 만들기
ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

# 하드웨어 시간도 동기화 시키기
hwclock --systohc

5. 지역 및 언어 설정
/etc/locale.gen 파일을 수정하여 locale 설정 파일을 만들겠습니다.

vim /etc/locale.gen
# vim 찾기 기능으로 /en_US.UTF-8
# 원하는 locale을 찾아 주석처리된 #을 없애주세요.
	#en_US.UTF-8 -> en_US.UTF-8
	#ko_KR.UTF-8 -> ko_KR.UTF-8

locale-gen

# locale.conf 를 만들고 아래에 문구를 추가하세요.
vim /etc/locale.conf

LANG=en_US.UTF-8

저는 일단 영어로 사용하고 나중에 한글을 추가하는 게 편해서 일단 locale-gen 만 해놓고 언어는 영어로 설정했습니다.

6. 네트워크 설정
hostname 파일을 만들겠습니다. 저의 경우에는 archlinux로 정했습니다.

vim /etc/hostname

archlinux

hosts 파일도 위에서 설정한 이름에 맞춰서 추가해주세요.

vim /etc/hosts

127.0.0.1	localhost
::1		localhost
127.0.1.1	archlinux.localdomain	archlinux

7. root 계정 비밀번호 설정
원하는 비밀번호를 입력하세요.

passwd
New password:
Retype new password:

8. 원하는 패키지 설치
여기서 아까 못다 한 설치를 진행하겠습니다. 자주 사용하시는 패키지를 설치해주세요. 부가적으로 네트워크 매니저나 블루투스, 오디오 등등 필요한 소프트웨어를 설치하겠습니다.

pacman -S grub efibootmgr networkmanager network-manager-applet dialog mtools dosfstools base-devel linux-headers bluez bluez-utils cups alsa-utils alsa pulseaudio pulseaudio-bluetooth git reflector xdg-utils xdg-user-dirs

9. grub 세팅
부팅 시 사용할 grub을 세팅하겠습니다.

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB

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

10. 서비스 실행
기본적으로 항상 사용하는 서비스를 활성화시키겠습니다. (필요하신대로 실행시키면 됩니다.)

# 네트워크 매니저 활성화
systemctl enable NetworkManager
# 블루투스 활성화
systemctl enable bluetooth
# 프린트 시스템 활성화
systemctl enable org.cups.cupsd

11. 계정 생성
root 계정 외에 제가 사용할 계정을 생성하겠습니다. (계정 생성 -> 비밀번호 설정 -> 권한 부여)까지 해주세요.

useradd -mG wheel user

passwd user
New password:
Retype new password:

EDITOR=vim visudo

# /wheel 로 wheel 을 찾아주세요.
# wheel 그룹 주석처리를 해제하세요.
#wheel All=(All) All -> wheel All=(All) All

usermod -aG video,input,audio user

12. 끝!
드디어 끝났습니다.

exit

umount -R /mnt

만약에 위의 명령어로 마운트 해제했는데 'target is busy'라고 나오는 경우 아래와 같이 실행하세요.

fusermount -uz /mnt

설치가 잘 끝났습니다~!! 수고하셨어요. 하지만 지금은 아무것도 없는 cli 환경의 arch 리눅스입니다. 다음에는 데스크톱 환경을 설치하는 글로 찾아오도록 하겠습니다. 감사합니다!!