오랫동안 글이 없다가 갑자기 아치리눅스 삽질을 한다고 글을 적고 있다.
그렇다고 서버 작업을 포기하거나 한 것은 아니고, 서버를 관리하는 작업용 노트북에 아치리눅스를 설치하고 설정하는 과정을 정리해 두려고 한다.
아치리눅스를 노트북용 OS로 고려한 것은 몇가지 이유가 있다.
미니멀한 설계 - 아치리눅스는 설치를 해보면 알겠지만 미니멀한 설계로 설치하는 방향에 따라 리소스를 적게 사용할 수 있다.
방대한 Wiki - 엔간한 설정에 관한 건 다 포함하고 있을 정도로 Wiki가 방대하다. 잘 찾아보면 필요한 설정을 할 수 있다.
수동 설정 - 세부 설정을 수동으로 하게 됨으로써 시스템 구조를 이해하는데 도움을 준다.
롤링 릴리즈 - 어차피 애플리케이션이 버그가 없을 수는 없으니 차라리 잦은 업데이트로 빠르게 버그를 없앨 수 있다.
물론 위의 이유는 장점이 될 수도 있고 단점이 될 수도 있는데, 미니멀한 설계로 시스템 설치에도 필요한 애플리케이션을 "직접" 깔아야 하고 "수동"으로 설정을 해줘야 하는 것은 꽤 피곤한 일이다.
하지만 그럼에도 불구하고 한번 설정을 잘 해서 이해하게 되면 그만큼 편한 OS가 없는 것도 사실이다.
물론 설치를 쉽게 도와주는 몇몇 아치변형배포판(Manjaro / EndeavourOS 등등)이 있지만, 어차피 삽질을 할 것이니 조금이라도 배울 것이 많은 아치리눅스를 설치하려고 한다.
설치 진행은 Installation Guide를 참고하여 직접 진행하면서 작성하였다.
USB에 Ventoy를 설치하고 아치리눅스 이미지를 USB에 넣는다.
아치리눅스 이미지는 아치리눅스 에서 받을 수 있다.
08/11 기준 archlinux-2023.08.01-x86_64.iso 이미지 사용
Ventoy는 iso나 wim을 그대로 이용하여 부팅을 할 수 있는 도구로, Ventoy 에서 받을 수 있다.
유선이 연결된 상황이라면 DHCP 서버가 있다면 별도의 설정없이 바로 사용 가능하다.
# iwctl --passphrase 'passphrase' station 'device' connect "SSID"
옵션 | 설명 |
---|---|
'passphrase' | Wi-fi 암호 |
'device' | 무선 랜카드 장치명 |
"SSID" | Wi-fi SSID |
# iwctl
[iwd]# device list // 무선 랜카드 검색
[iwd]# device 'device' set-property Powered on // 무선 랜카드 켜기
[iwd]# station 'device' scan // 무선 인터넷 검색
[iwd]# station 'device' get-network // 사용 가능한 무선 인터넷 확인
[iwd]# station 'device' connect 'SSID' // 무선인터넷 연결
특수한 환경이라 IP설정을 수동으로 할 필요가 있을 경우가 있다.
# ip address add "IP"/"prefix_len" dev "interface" // 수동으로 IP할당
# ip route add "Destination" via "Default-Gateway" dev "interface" // 게이트웨이 설정
핑으로 간단하게 연결 확인 해본다
# ping 8.8.8.8
리눅스는 MBR일경우 /, swap의 두개의 파티션, UEFI일 경우에는 /, ESP, swap의 세개의 파티션만 있으면 일단 설치하고 운영하는 데는 문제가 없다.
물론 웹서버를 구동한다던가 할 경우 보안이나 백업 등의 문제로 하위 파티션을 분리할 필요성은 있지만 지금 사용 환경은 서버로 사용하는 것이 아니라 유지보수용으로 사용할 목적이므로 다른 파티션은 크게 필요하지 않다.
RAM용량/사용환경 | 서버 | 데스크탑(Hibernate X) | 데스크탑(Hibernate O) |
---|---|---|---|
위 표는 아래 사이트를 참고하여 만들었다.
https://itsfoss.com/swap-size/
# fdisk -l // 디스크 확인
# fdisk /dev/nvme0n1 // nvme 파티셔닝
fdisk Command | 설명 |
---|---|
m | 매뉴얼 |
n | 파티션 생성 |
d | 파티션 삭제 |
p | 현재 파티션 확인 |
t | 파티션 종류 변경 |
w | 변경내용 저장 및 종료 |
q | 변경내용 저장없이 종료 |
파티션 | 종류 | 크기 |
---|---|---|
/dev/nvme0n1p1 | EFI System(1) | 300MiB |
/dev/nvme0n1p2 | Linux Swap(19) | 11GiB |
/dev/nvme0n1p3 | Linux filesystem(20) | 454.5GiB |
mkfs, mkswap 사용
/dev/nvme0n1p1 : FAT32
# mkfs.fat -F 32 /dev/nvme0n1p1
# mkswap /dev/nvme0n1p2
# mkfs.ext4 /dev/nvme0n1p3
# mount /dev/nvme0n1p3 /mnt // /마운트
# mount --mkdir /dev/nvme0n1p1 /mnt/boot // /boot 디렉토리 생성 및 마운트
# swapon /dev/nvme0n1p2 // swap 활성화
# reflector -c KR --sort rate
# pacstrap -K /mnt base base-devel linux-zen linux-zen-headers linux-firmware amd-ucode neovim dhcpcd iwd man-db man-pages texinfo
# genfstab -U /mnt >> /mnt/etc/fstab
# genfstab -L /mnt >> /mnt/etc/fstab
# arch-chroot /mnt
# ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime // 타임존 설정
# hwclock --systohc // 하드웨어 시간 동기화
# nvim /etc/locale.gen // locale.gen 수정
# locale-gen // 필요 언어 설정
# echo "LANG=en_US.UTF-8" >> /etc/locale.conf
# echo "hostname" >> /etc/hostname
# systemctl enable dhcpcd
# systemctl enable iwd
# mkinitcpio -P
# bootctl install
# /boot/loader/loader.conf
default arch.conf # 부팅에서 사용할 기본 설정 지정
timeout 3 # 메뉴 자동 선택 시간 지정
console-mode keep # 모듈 탑재되는 과정 생략
editor yes # 메뉴에서 편집모드 사용 가능
# /boot/loader/entries/arch.conf
title Arch linux # 메뉴에 보여질 이름
linux /vmlinuz-linux-zen # 사용할 커널 지정
initrd /amd-ucode.img # HOOK 탑재
initrd /initramfs-linux-zen.img # HOOK 탑재
options root="UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" rw quiet splash # / 파티션 지정, fstab을 Label로 저장했을 경우 root="Label=/dev/xxxx" 형태로 작성 가능
# passwd // root 계정 암호 설정
# useradd -m -G wheel 'user'
# passwd 'user'
# exit
# umount -R /mnt
# reboot
오늘은 초보자가 설치하기 비교적 어려운 아치리눅스를 기본설치하는 과정을 정리하였다. 비록 설치가 끝난 후 칙칙한(?) CUI가 반겨주지만 시스템을 정상적으로 설치할 수 있게 정리해두는 과정도 중요하다고 생각한다.
다음에는 CUI를 벗어나 GUI에 한글 입력을 사용하는 과정을 정리해 보려고 한다.
글 잘 봤습니다.