리눅스

아치 리눅스 설치하기 - arch~sway install (1/2)

autostar 2022. 8. 18.
반응형

 

아치리눅스 설치부터 스웨이(swaywm) 설치까지 적어보고자 한다.

글이 난잡해지고 분량이 커지는걸 방지해서 알아보기 쉽게 만들기 위해 챕터를 나누고자 한다.

어쩌다 나는 리눅스 스웨이(sway install)를 설치하게 되었나?
아치 리눅스 설치하기
EndeavourOS 에서 스웨이 설치하기
아치 리눅스에서 스웨이 설치하기 https://everyauto.tistory.com/21

스샷은 준비되지 않았다. 나중에 준비가 되면 첨부를 해보자.

리눅스 배포판이란?

리눅스 배포판
시작하기 앞서서 배포판의 차이를 알고 있다면 선택하는데 좀 더 수월 할 수 있다.

본격 리눅스 입문하는 노래
알고리즘의 선택을 받은 리눅스 노래
업로드 일자가 무려 2011년인데도 꽤나 잘 만들었다는 생각이 든다. 최근에 자막이 추가 된거 같다.

우분투

  • 우리나라에서 가장 많이 쓰이고 있는? 배포판이라고 생각된다. 데비안 계열 이고 윈도우가 아닌 OS에 보라색의 고양이를 본적 있다면 이것이다. 가장 많은 레퍼런스가 있어서 접근하기 쉽다. 서버 설치판도 있는데 서버는 GUI 환경은 지원하지 않고 텍스트만 존재하기 때문에 데스크탑 버전에 비해 훨씬 가볍다. 일반적인 사용자라면 데스크탑을 설치하면 되고, 라이브CD(USB드라이버) 의 가이드대로 설치 진행하면 쉽게 설치 가능하다. 웬만한 필수 패키지는 설치되어 있고, 기본적으로 데스크탑 환경(Desktop Environment) 세팅이어서 윈도우와 다르긴 하더라도 크게 다르지 않아 적응하는데 어렵지 않다.
    서버설치할때도 인스톨러에서 순서대로 진행하면 된다.

그 외 우분투 계열들

  • 민트
  • 쿠분투
  • elementary OS
  • Zorin OS
    등 이 있고, 기본적인 사용법은 동일하지만 준비되어 있는 패키지가 달라서 마주하게 될 디스플레이가 좀 다르다. Zorin OS 배포자가 같은 경우 맥과 비슷한 사용자 경험을 내기 위해 노력한 흔적이 보이는.. 하지만 리눅스다.

데비안 계열

  • 크롬 OS
  • Deepin
    등 있고, 우분투도 데비안 계열이지만 큰 종파같은 거라고 보면 된다. 데비안 계열의 패키지형식은 주로 .deb 이고, 패키지 관리자는 apt를 사용한다.

레드햇 계열

  • 센트OS
  • Amazon Linux 등..

레드햇 엔터프라이즈에서 배포하는 센트OS와 아마존 리눅스 등이 있고, 주로 서버에 사용된다. 페도라 계열도 잇다. 패키지 형식은 .rpm 이며, 패키지 관리자는 yum 을 사용

아치 계열

  • Manjaro Linux
  • EndeavourOS
  • ArchBang Linux
    등이 있고, 가벼움 미니멀리즘을 중시하는 계열이다. 그중에 만자로는 한때 인기가 좋았었고 훌륭하지만, 현재는 EndeavourOS 가 더 순위가 높다. (DistroWatch)
    만자로는 좀 더 우분투 스러운 맛이 있고, 엔데버 OS(EOS) 는 정말 최소한의 것만 있고 텅텅 빈 느낌. 만자로가 한국에선 좀 더 인지도가 있는것같다(한국 커뮤니티 존재). EOS 도 커뮤니티가 있고, EOS Forum 에 가보면 가이드 문서들이 잘 되어있다.(사용함)

아치리눅스는 아무것도 안깔린 상태이고 드라이버 데스크탑 환경 or 윈도우 환경 등 패키지 관리자를 통해 설치해야하는.. 한마디로 손이 좀 더 많이 가는 거라고 보면 된다. 다른 아치계열 배포판들은 아치리눅스에 좀 더 살이 붙여진 거라고 보면된다. ArchBang 은 굉장히 가벼운 배포판이다. 성능이 낮은 사양에도 설치가능한 것으로 알고 있다.

  • 만자로 vs EndeavourOS
    만자로는 설치부터 방화벽 세팅까지 모든걸 한큐에 끝내는 프리패키지 라고 할 수 있겟고, EndeavourOS 는 하나하나 커스터마이징 한다는 느낌의 os이다.

아치 계열 또다른 특징은 업데이트 주기가 빠르다는 것. 우분투 같은경우 버전이 정말 많지만 아치계열은 그런거 신경쓸 필요 없이 항상 같은 버전이라고 생각해도 된다. 패키지 관리자를 사용할때 **업데이트를 강제하기 때문에 추가로 설치하려고 할때 버전이 맞지 않으면 설치가 안된다. **
종속성(디펜던시) 문제는 이로 해결된다.

아치리눅스 검색해서 위키에 들어가서 보면 보다 상세한 내용들이 있다.

처음 입문하는데는 엔데버OS나 만자로 같은 배포판이 추천이 되지만 자신이 여유시간이 있고 커스터마이징하는걸 좋아하는 편이라면 아치리눅스로 하나하나 설치하면서 배우는게 가장 빠른길인거 같다. 정말 아무것도 모른다면 만자로, 문서 찾는거 + 영어 에 어느정도 자신이 있다 하면 EndeavourOS 사용하면 좋을 거 같다. 어차피 설치되는 패키지에 따라 커스터마이징 할 수 있는건 비슷하고, 손이 더가냐 덜가냐의 차이

기타 다른 배포판들은 생략한다

아치 리눅스 배포판 ISO 만들기

아치 리눅스 위키 참조

생각보다 설치하는게 쉽다. 가이드가 다 나와있고 한글이다.

하지만 무작정 설치하다보면 중간에 에러를 마주할 수도 있는데 경험했던 에러들과 해결방안들을 적어두어 설치할때의 시간을 절약할 수 있도록 해보겠다.

먼저 ISO 를 준비하는데 필요한 것

  • Ventoy
    • 다른 소프트웨어(Rufus)도 있는데 이게 편리하고 가볍고 빠르다.
  • ISO 사이즈는 786.3MB 이므로 최소 1기가 이상의 usb

그래픽카드가 3090같은 최신드라이버는 잘 지원되지 않을 수 있다. 문서를 찾아봐야 하므로 주의

배포판을 다운 받았다면 Ventoy 를 이용해서 ISO 파일을 생성한다.
ventoy
https://www.ventoy.net/en/download.html
여기서 링크를 깃허브의 주소로 연결된다. 위 링크가 깨졌다면 이쪽을 타고 들어가서 다운 받자.

** 출처 https://kimsungjin.tistory.com/398 **

)

)

)

파티션 스타일은 아주 낡은 EUFI 를 지원하지 않는 컴퓨터라면 MBR를 선택해야하지만 왠만하면 GPT로 설치해도 호환이 되므로 GPT 권장.

설치를 눌러서 ventoy 디스크를 만들어주자. 옵션을 선택하면 드라이브에 공간을 만들수 있는데 공간이 많이 남는다면 여러가지 ISO를 넣어서 다니던가 별도의 파티션을 만들어서 필요 유틸이나 자료등을 가지고 다녀도 좋다.

처음 설치를 한다면 포멧을 해야한다.
설치 후 디스크 드라이브에 ISO를 넣고 업데이트를 눌러주면 ISO 가 준비 완료된다.
중요 MBR인것을 GPT로 변경한다
참 간단하지 않은가?

이제 USB로 부팅해야하는데 컴퓨터 별로 bios 모드가 조금씩 다르기에 검색해서 맞는 걸로 찾아봐야 하고, 기본적으로는 booting 순서를 usb 로 놓고 재부팅하면
ventoy 화면이 보인다.

아치리눅스 선택후 아치에서 선택된 기본으로 진행


아치리눅스 본격 설치

준비가 되면 처음 보게 되는 화면은 콘솔인데 root@archiso 를 보고 있다면 이제부터 본격적인 설치를 진행하면 된다.

본격적인 설치를 하기 전에 그대로 진행하기에는 눈이 피로하기 때문에 setfont ter132n 로 폰트사이즈를 키우고 진행, 혹은 ssh 로 다른 컴퓨터에서 진행하는것을 추천합니다. ssh 로 연결한 상태로 진행한다면 필요없습니다. 

ssh 로 진행하려면 passwd 커맨드로 라이브iso 의 비밀번호를 정한다.(휘발성) 재부팅하면 바뀌므로 간략하게 지정.

ip a 로 아이피 주소 확인한다.

ssh 로 연결하기 위해 비밀번호 설정
ip 확인

현재 ssh 환경에서 접속해서 진행중입니다.

 

 

 

무선환경은 별도의 포스팅을 준비해야겠다.

다른 컴퓨터에서 ssh를 통해 접속

ssh root@192.168.x.xxx <- 자신의 아이피  

efi 시스템인지 확인하기

ls /sys/firmware/efi/efivars/ 

뭔가가 쭉 나온다면 efi 시스템이므로 진행해도 좋다.
스웨이를 설치하려면 efi 시스템인게 좋으니 꼭 efi 로 설정하고 안되어있다면
바이오스, ventoy 에서 GPT를 지원하는지와 체크되어잇는지 확인하고 변경하도록 한다.

명령어 실행했을때 화면.

현재 컴퓨터는 인텔 4세대 씨피유입니다. = 왠만하면 gpt 환경 지원

시스템 시간 설정

timedatectl status 

현재 설정된 타임존을 볼 수 있다.

timedatectl list-timezones 

모든 대륙과 도시이름이 표시됨.

timedatectl set-timezone Asia/Seoul 

서울 시간으로 설정

timedatectl set-ntp true 

만약 윈도우와 듀얼부팅 시스템을 구축한다면
두 OS의 시간은 각각 다르게 돌아서 부팅할때마다 실제시간과 차이가 날 수 있다.
이것은 아치 리눅스 설치가 완료 된 후 설정해보도록한다.

timedatectl set-local-rtc 1 --adjust-system-clock 

리눅스 시간을 로컬타임으로 세팅해서 윈도우와 시간차이 없애기 (재부팅을 하면 다시 설정해야 할 수 있다.)

timedatectl status 

로 설정이 잘 되었는지 확인.

파티션

듀얼부팅 시스템을 준비한다면.. 듀얼부팅(준비중)

EFI System <-- 여기에 /boot/efi 혹은 /boot 플래그를 넣어야 한다.
Linux filesystem <--- 여기에 리눅스 시스템(/root) 마운트

lsblkfdisk -l 로 진행한다.

  • 스크롤이 안되서 정보를 다 확인하기 어렵다면
  • fdisk -l >> fidsk.txt vim fidsk.txt
fdisk /dev/sda 

저장장치가 nvme라면 sda 대신 nvme 이다.

메뉴얼을 보면서 진행하면 되는데 m 은 메뉴얼을 선택

cfdisk /dev/nvme 

좀 더 알아보기 편하다.

  • 파티션 새로 생성 n
  • 설정된 내용 디스크에 저장 w
  • 메뉴 호출 m
  • 파티션 지우기 d
  • 나가기 q

fdisk 출력화면
cfdisk 화면

lsblk 로 파티션정보 확인
제대로 자신이 한 설정이 되어있는지 확인한다.

파티션을 새로만들면 sda1 이런식으로 만들어지고 다른 파티션이 있다면 번호가 다를 것이다.

++ 파티션이란 하나의 디스크에 구역을 나눈것

/mnt 와 /boot 플래그는 꼭 필요하다. 파티션이 최소 2개는 있어야 하다. /boot/efi 시스템은 듀얼부팅일때 최소 300메가 이상 권장된다. 스왑 파티션은 선택사항이다.

현재 우분투로 쓰던 파일이 그대로 남아있어서 진행이 안되네요.

제가 쓸 디스크는 sdb와 sdc 입니다. 포멧이 제대로 진행되지 않았네요

usb를 선택하지 않게 조심해서 합니다

포멧하기

포멧이 안되고 진행을 한다면 에러를 마주 하게 될 수 있다. 그냥 막 진행하다보면 놓치게 되는 부분으로 가이드대로만 한다면 얼마 안걸리니 차분히 하자.

mkfs.ext4 /dev/포멧할 파티션 

위의 이미지 처럼 에러가 날경우 해결방법

저의 경우는 lvm 설정이 되어있는게 남아있어서 생긴 문제인데 그걸 dmsetup 커맨드를 통해 해결했습니다.

dmsetup status 로 확인

dmsetup remove 명령어로 지우기

dmsetup status 로 확인

 

디스크 두개 다 포멧진행

엔터를 눌러 진행했습니다. 그런데 이상한 점이 있죠. 디스크가 MBR이라는 문구가 있습니다.

다시한번 cfdisk 시도

 

파티션 타입 지정하기 게임화면 같네요 배경덕분에

cfdisk /dev/sdb 로 진입합니다. 

 

다시 진행하니 mbr문구가 안뜹니다.

lsblk 명령어로 상태 확인

깨끗하게 포멧된 상태

sdb와 sdc를 쓰려고 하는데 잘 포멧이 되어있죠.

빼먹었는데 파티션 부트 파티션을 따로 만들어야 합니다.

부트 파티션도 잘 만들어 놓습니다.

마운트하기

mount /dev/루트 파티션 

 

마운트진행후 확인

현재 lost+found 란 파일만 있습니다. 빈파일이니 무시합니다.

인터넷 확인

ping archlinux.org 

timeout 되는게 없다면 인터넷이 되는것으로...

아치리눅스로 핑테스트

CTRL + C 로 중단합니다.

 

 

팩맨 데이터베이스 업데이트

pacman -Sy 

패키지매니저를 통해서 설치할때 간혹 에러가 있을수 있다. 설치된 팩맨 이랑 버전이 안맞아서 나는 오류가 있는데 업데이트 해서 간단하게 해결 가능하다.

미러 설정하기(안해도됨)

cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak 

pacman -S pacman-contrib
<툴 다운>

rankmirrors -n 10 /etc/pacman.d/mirrorlist.bak > /etc/pacman.d/mirrorlist

패키지 미러리스트

미러리스트 설정하는게 시간이 좀 걸립니다. 느긋하게 기다리세요.

필수 유틸 커널 펌웨어 설치

pacstrap -i /mnt base base-devel linux linux-lts linux-headers linux-firmware intel-ucode sudo neovim  neofetch networkmanager dhcpcd pulseaudio noto-fonts-cjk git

설치하는 동안 질문에만 답하고 컴퓨터를 건드리지 않고 릴랙스하게 있는다.
은근히 리소스를 잡아먹는 일이고 뭔가 하나 틀어지면 흔히 꼬인다는 증상이 발생할 수도 있기 때문입니다.

엔터 엔터 엔터

키링 에러가 나왔습니다.

PGP 키를 임포트 할거냐고 물어봐서 진행했는데 에러가 나오죠. 

 

 

키링 문제

요런 에러메세지가 보인다면
키링 설치해서 해결하라고 가이드에는 되어있지만 나같은 경우 몇번을 해도 timedatectl ntp=true 설정을 해도 에러가 계속 나왔다.
- 키링 설치 pacman -S archlinux-keyring
vim /etc/pacman.conf
에서

이것을
이렇게

sigLevel 있는 부분을 Never로 고쳐주고 밑에 sig관련 부분을 주석처리한다.

41번줄

다시 pacstrap 명령어로 설치 진행합니다. 에러없이 잘 되었습니다.

 

다시 확인한 mnt 디렉토리

 

설치확인 및 마운트 확인

ls /mnt 

포멧했던 드라이브에 폴더가 생성되어있으니 뭔가(pacstrap으로 입력한) 설치가 된것이다.

마운트도 잘 되었고 설치도 되었으니

 

 

드라이브 세팅 fstab

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

마운트 지점이 설정된게 나온다.

genfstab 명령으로 마운트 된 정보를 저장하고
기록된 정보를 cat 명령어로 확인
uuid 와 리눅스 파일시스템이 나온다면 정상

실제 드라이브로 이동(라이브iso -> 디스크드라이브)

arch-chroot /mnt 

프롬프트 부분이 변경된것을 확인 할 수 있습니다. 

 

루트 비번 지정

passwd 

루트의 비밀번호를 지정하는 것이다. 후에 있을 sudo pacman 할때나 루트 권한 필요할때 사용해야 하니 잘 기억해 둬야 한다.

유저 만들기

useradd 

 passwd 유저아이디
usermod -aG wheel,storage,power 유저아이디 

wheel,storage,power는 콤마뒤에 빈공간이 없어야 한다.

휠 그룹에 사용자를 추가해서 무엇이든 실행하고 루트권한을 제공, 스토리지, 전원 그룹에도 추가

sudo 그룹에 유저 넣기

EDITOR=nvim visudo

vim 이 익숙하지 않다면 nano 로 (기본은 nano 로 설정되어 있을것이다)

주석 해제 하고
Default timestamp_timeout=0
입력한다.
맨 밑에
아이디 ALL=(ALL) NOPASSWD: ALL 추가
<패스워드 없이 실행하는 것 필요한 것만 지정해서 권한 줄수도 있다.

문서의 끝부분

이 작업을 하면 매번 sudo 입력할때마다 비밀번호를 입력해야 하는 번거로움이 줍니다. 혼자 사용하는 환경이라면 이렇게 작업ㅎ ㅐ놓으면 편하지만 보안적인 측면을 생각하면 설정하지 않는게 좋습니다. 특히 서버

vim /etc/locale.gen

en_US.UTF-8

ko_KR.UTF-8

vim 사용한다면 / 로 검색해서 en 과 ko 를 찾아서 주석 해제 해줍니다.

vim /etc/default/console-setup

CHARMAP="UTF-8"

CODESET="Lat7"

FONTFACE="NotoSansCJK-Regular.ttc"

FONTSIZE="28X14"


#커맨드 입력
locale-gen

locale-gen 을 입력하면 생성해줍니다.

 

vim /etc/locale.conf

export LANG=en_US.UTF-8
vim /etc/hostname

자신의 호스트 이름을 정하고 저장
vim /etc/hosts

127.0.0.1                           localhost

::1                                      localhost

127.0.1.1                          myHostname.localdomain        myHostname

myHostname 을 지정한 호스트 이름으로 입력

타임존 설정

ln -sf /usr/share/zoneinfo/Asia/Seoul 
/etc/localtime hwclock --systohc

아까 설정했던건 라이브iso 에서 진행한것이고 지금은 우리가 쓸 리눅스의 하드웨어 시간으로 맞춘다.

듀얼 부팅 시스템이라면

timedatectl set-local-rtc 1 --adjust-system-clock 

부트로더 설치

lsblk 

마운트 확인

mkdir /boot/efi 

부트 폴더 만들기

mount /dev/nvme0n1p1 /boot/efi 

중간에 드라이브는 자신이 설정한 파티션으로 변경

lsblk 

잘 되었는지 확인

그럽 패키지들 설치하기

pacman -S grub efibootmgr dosfstools mtools os-prober 

dosfstools 하고 mtools 는 사실 뭔지 잘 모른다.

그럽 설정하기 

/etc/default/grub
맨 마지막 줄에
GRUB_DISABLE_OS_PROBER=false 주석해제 해야 윈도우를 찾는 희한한 ...
듀얼시스템이 아니라면 지나간다.

grub-install --target=x86_64-efi grub-mkconfig -o /boot/grub/grub.cfg 

그럽설정에 에러가 있다면 

https://bbs.archlinux.org/viewtopic.php?id=267763 를 참조하자.

 

grub-mkconfig command gives error / Newbie Corner / Arch Linux Forums

While technically any posix shell should™ do, it's in practical reality a bad idea to not have it link bash. You'll run into this sort of situation more often and if you changed /bin/sh because you actually wanted to use "man chsh", it's also wrong.

bbs.archlinux.org

네트워크 설정

systemctl enable dhcpcd.service

dhcpcd 등록하기

 

동적 서비스 시스템에 등록하기

dhcpcd 를 설치 안했다면 에러가 나는데
pacman -S dhcpcd 로 설치한다.

++ chroot 상태에서는 pacstrap 이 안된다.

서비스가 등록되면 심링크가 생성된다.

systemctl enable NetworkManager.service 

네트워크 매니저 대문자에 주의

모든 설정 완료 chroot 나가기

exit 
umount -lR /mnt  
reboot

소문자 엘이다 . 마운트를 해제한 후 리부팅
리부트 할때 usb를 꺼낸다.

로그인 후

콘솔에서 로그인을 하고 사용할 데스크탑 매니저 혹은 윈도우 매니저를 설치해서 사용하면 된다.

여기까지 기본적인 아치 리눅스 설치를 마치고 다음편에서 스웨이(타일링 윈도우 매니저) 를 설치하는 방법을 알아본다.

good luck!

반응형

댓글