Note-Notice

❖|OS 구축

ARCH LINUX 설치 기본 사항

➽|Platform 구성

VirtualBox 이용 가상화 구성 방안

↘ Product Download

ARCH LINUX - ISO 파일 다운로드

  • ARCH LINUX에서 요구하는 ISO 파일 다운로드

↘ 가상환경 구성 - VirtualBox

OVM 이용 가상환경 구성 수행

  • 필수 체크 사항
    • CPU Core 2 / Memory 10GB >= / Disk 최소 64G 구성 확인
      • Boot 옵션 EFI 활성화 X
    • 디스플레이 설정 상 3차원 엑셀레이터 옵션 필수 활성화
    • IDE 이미지 archlinux 구성 확인

  • Boot 확인
    • Arch Linux Install medium 옵션 선택
    • Boot 후 archiso - VirtualConsole 수행되는지 확인

↘ VirtualConsole - Script 구성

archinstall scripts 이용 시스템 구성

≫ 설치 스크립트 최신화 및 실행
  • archinstall 패키지 최신화 수행
# PACMAN 최신/최적화
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup
reflector -c "South Korea" -a 12 --sort rate --save /etc/pacman.d/mirrorlist
pacman -Syy
 
# 패키지 최신화 및 실행
pacman -S archinstall
archinstall

≫ 설치 옵션 구성
  • arch linux 설치를 위한 구성 수행
# Archinstall Language / Locales => en_US.UTF-8 맞춰서 구성
# mirror => Mirror region == South Korea
# Disk Configuration => Partitioning == besst-effort default 옵션
# Disk Encryption => X
# Swap => Enabled
# BootLoader => Grub
# Hostname / Root password / User Account => 맞춰서 구성
# Profile => Type == Desktop == hyprland == polkit 
#            Graphics driver(All OpenSource) == Greeter(sddm)
# Audio => pipewire
# Kernel => linux
# Network Configure => Copy ISO network 옵션
# Add Package => waybar man-db otf-font-awesome hyprpaper firefox flatpak foot
# Timezone => Asia/Seoul
# NTP => Enabled
 
# Save Configuration & Install
# chroot 옵션 실행 여부 화면 확인 시 NO 선택 + REBOOT
 
 
  • Partition 구성 참고
    • 이외 구성의 파티션경우 스크립트 설치가 불가능해보임 (버그??)
    • 별도 구성 필요시 아래 Manual 구성 수행 (GUI 환경 별도 설치 필요)

  • 최초 구성시 터미널(Kitty) 동작하지 않음 W/A foot 통한 수정 작업 수행
# BOOT 후 hyprland 옵션으로 로그인
# SUPER+Q 미동작 확인 후 SUPER+R 수행
  foot  # 선택 실행
 
# hyprland 구성 파일 변경
vim .config/hypr/hyprland.conf
 
 autogenerated 줄 주석처리
 monitor 옵션 수정
   monitor=Virtual-1,2560x1440@60,0x0,1  # 16:10 전체화면
   monitor=Virtual-1,1920x1080@60,0x0,1  # 일반용
 $terminal 옵션 수정
   $terminal = foot
 exec-once 옵션 변경
   exec-once=waybar & hyprpaper
 env 옵션 변경
   env = XCURSOR_SIZE,16
   env = HYPRCURSOR_SIZE,16
 animations 옵션 변경
   enbaled = false
 
# SUPER+M 으로 로그아웃 후 재 접속
 
# Waybar Setup 변경
mkdir -p ~/.config/waybar
ls -d /etc/xdg/waybar
cp /etc/xdg/waybar/* ~/.config/waybar/.
 
vim ~/.config/waybar/config.jsonc
 
 "modules-left" 옵션 변경
   sway/workspaces -> hyprland/worksapces
   sway/mode -> hyprland/mode
   sway/scratchpad -> hyprland/scratchpad
 "module-center" 옵션 변경
   sway/window -> hyprland/window
 "modules-right" 옵션 변경
   sway/language -> hyprland/language
   
 CLASS 이름  옵션 변경
   -> "sway/mode" -> "hyprland/mode"
   -> "sway/scratchpad" -> "hyprland/scratchpad"
  
≫ 설치 완료 후 사후처리
  • arch linux 구성 후 추가 설정
# 지역 및 언어 설정
vim /etc/locale.gen  # 사용할 캐릭터셋 주석해제 후 저장 - en_US.UTF-8 / ko_KR 관련
locale-gen
vim /etc/locale.conf # 사용할 캐릭터셋 작성 후 저장 - 예제) LANG=en_US.UTF-8
 
# 네트워크 파일 작성 - /etc/hosts
vim /etc/hosts  # 아래 내용 및 추가 알리아스 작성
 
  127.0.0.1    localhost
  ::1          localhost
  # + SERVER_ALIAS
 
# 추가 패키지 작업 수행
pacman -S networkmanage network-manger-applet net-tools virt-manager sshd git ibus-hangul
 
ln -s /usr/bin/vim /bin/vi
sudo systemctl enable sshd
sudo systemctl start sshd
 
# 한글 입력 추가
 
# REBOOT

↘ VirtualConsole - Manual 구성

일반 리눅스와 다르게 CONSOLE SETUP으로 시스템 구성 수행

≫ 부트 방식 확인
  • efivars 확인 수행 > 파일 존재하지 않아야 정상 (BIOS 부팅), EFI/UEFI 부팅 사용 X
ls /sys/firmware/efi/efivars
≫ 이더넷 장치 확인
  • 연결한 이더넷 장치 및 정상여부 확인 - 인터넷 연결 필수
ip link  # 장치 정상여부 확인
ping archlinux.org  # 인터넷 정상 여부 확인
≫ 시스템 시간 설정
  • 현재 시점 시간 동기화 및 확인
timedatectl set-ntp true
timedatectl  # 시간동기화/NTP 정상 여부 확인
≫ 디스크 파티션 구성
  • fdisk를 이용한 GPT 파티션 구성
    • /boot + SWAP + /(ROOT) 3개 구성 (Standard Partition 1 + LVM 2)
    • 구성한 디스크 환경에 맞춰서 수행
# 디스크 파티션 작업
fdisk /dev/sda
 
 command (m for help): g    # GPT 파티션라벨 지정
 command (m for help): n    # 신규 파티션 생성으로 2개 구성
 
 # 파티션 생성 옵션
 # >> /boot 옵션 PN : 1 | FS : Enter | LS : +1G   | t + Enter + 1
 # >>  root 옵션 PN : 2 | FS : Enter | LS : Enter | t + 2 + Enter + 44 (LVM)
 
 command (m for help): w    # 파티션 저장 필수
blkid && lsblk # 디스크 정보 확인
 
# LVM 작업
pvcreate /dev/sda2
vgcreate rootvg /dev/sda2
lvcreate -n lvswap --size +10G rootvg
lvcreate -n lvroot --size +53G rootvg  # extent 13567
≫ 파티션 디스크포맷 구성
  • 구성된 3개의 파티션 대상 포맷 수행 (FAT 1 + SWAP 1 + EXT4 1)
# FAT BOOT 구성
mkfs.fat -F32 /dev/sda1
mkswap /dev/rootvg/lvswap
mkfs.ext4 /dev/rootvg/lvroot
blkid  # 구성된 파티션 정보 확인
≫ 파일시스템 마운트 수행
  • 구성 파티션 OS 구성을 위한 임시 마운트 수행
# 임시 MOUNT 수행
mount /dev/rootvg/lvroot /mnt
mount --mkdir /dev/sda1 /mnt/boot
swapon /dev/rootvg/lvswap
 
df -kh && free -m
 
# 기본 FSTAB 구성 수행
genfstab -U /mnt >> /mnt/etc/fstab && cat /mnt/etc/fstab
≫ 필수 패키지 선택 구성 (PACMAN)
  • 패키지매니저(pacman) 최신화 및 필수 패키지 설치
# PACMAN 최신/최적화
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup
reflector -c "South Korea" -a 12 --sort rate --save /etc/pacman.d/mirrorlist
pacman -Syy
 
# Linux 필수 패키지 설치 수행 (/mnt)
pacstrap -K /mnt base linux linux-firmware sof-firmware base-devel \
  grub efibootmgr vim man-db man-pages texinfo intel-ucode
≫ OS 시스템 설정
  • /mnt 시스템으로 전환하여 OS 기동에 필요한 시스템 설정 작업 진행
# 시스템 전환 - 명령수행후 /mnt를 root로 하는 시스템에서 실행
arch-chroot /mnt
 
# OS 시간 설정
ln -sf /usr/share/zoneinfo/Asis/Seoul /etc/localtime
hwclock --systohc
date  # KST 시간 동기화 여부 확인
 
# 지역 및 언어 설정
vim /etc/locale.gen  # 사용할 캐릭터셋 주석해제 후 저장 - en_US.UTF-8 / ko_KR 관련
locale-gen
vim /etc/locale.conf # 사용할 캐릭터셋 작성 후 저장 - 예제) LANG=en_US.UTF-8
 
# 네트워크 파일 작성 - /etc/hosts
vim /etc/hosts  # 아래 내용 및 추가 알리아스 작성
 
  127.0.0.1    localhost
  ::1          localhost
 
# 호스트네임 파일 작성
vim /etc/hostname  # 서버 이름 작성 후 저장
 
# ROOT 유저 패스워드 지정
passwd
≫ 추가 패키지 구성 (PACMAN) 및 필수 서비스 구성
  • OS 셋업에 필요한 추가 패키지 구성
# 필수 추가 패키지
pacman -S base base-devel grub efibootmgr networkmanager network-manager-applet \
  dialog mtools dosfstools linux-headers cups git reflector xdg-utils xdg-user-dirs dhcpcd
 
# 옵션 추가 패키지
pacman -S lvm2
 
# 필수 서비스 구성 및 실행
systemctl enable NetworkManager
systemctl enable dhcpcd
≫ 부트로더 구성
  • 부트 이미지 및 커널부트 설정
# 사전 체크 - LVM 이용시
vim /etc/mkinitcpio.conf  
 # 옵션 변경 HOOKS= 상 block filesystems 사이에 lvm2 추가
 
 
grub-mkconfig -o /boot/grub/grub.cfg
mkinitcpio -P
mkinitcpio -p linux
≫ 시스템 재기동
  • 재기동 후 부트로더로 OS 동작 수행
# /mnt OS 종료
exit
 
# UMOUNT 수행
umount /mnt/boot
umount /mnt
swapoff /dev/rootvg/lvswap
 
# 시스템 REBOOT - BOOT 옵션 확인
reboot
  • 정상 기동 시 부트로더