Archlinux 설치
이 문서는 개인 백업 성격이 강한 문서로, laptop에 아치 리눅스를 설치하는 과정 및 개인적으로 설치한 패키지들의 리스트를 정리해 둔 문서이다.
설치 환경
- ASUS UX390UAK
- Intel Core i7-7500U
- DDR3 16GB
- NVME 512GB
- Intel HD Graphics 620
- Windows 10 과 병용
- UEFI secure boot OFF
설치 준비
인터넷 연결
# CLI 창에서 AP를 선택해 접속
wifi-menu
파티션
# 옛날엔 fdisk만 주구장창 썼는데 써보니 cfdisk가 편함
cfdisk /dev/nvme0n1
설치 환경에서의 파티션 테이블은 다음과 같이 두었다.
장치 | 타입 | 크기 | 포맷 | 리눅스에서 사용 |
---|---|---|---|---|
/dev/nvme0n1p1 |
Windows 복원 환경 | 499 MB | NTFS | X |
/dev/nvme0n1p2 |
EFI 시스템 | 100 MB | FAT32 | /boot |
/dev/nvme0n1p3 |
Windows 예약 | 16 MB | X | |
/dev/nvme0n1p4 |
Windows | 127.4 GB | NTFS | X |
/dev/nvme0n1p5 |
Linux Data | 325 GB | Btrfs | / |
/dev/nvme0n1p6 |
Linux Swap | 24 GB | swap | swap |
포맷
# 주 파일 시스템은 Btrfs
mkfs.btrfs /dev/nvme0n1p5
# Swap 파티션 생성
mkswap /dev/nvme0n1p6
# Swap 파티션 사용
swapon /dev/nvme0n1p6
마운트
# 주 파일 시스템을 먼저 마운트
mount /dev/nvme0n1p5 /mnt
# /boot 디렉토리를 생성하고
mkdir /mnt/boot
# EFI system 파티션을 /boot에 마운트
mount /dev/nvme0n1p2 /mnt/boot
미러 리스트 수정
# Pacman의 미러 리스트를 직접 수정한다.
vim /etc/pacman.d/mirrorlist
한국 서버를 맨 위로 옮긴다. 단, KAIST FTP 서버는 403 error가 발생하므로 옮길 필요 없다.
기본 패키지 설치
# Arch linux 설치
pacstrap /mnt base base-devel
설치 후 환경 설정
마운트 테이블 생성
# 현재 마운트 정보를 /etc/fstab에 저장
genfstab -U /mnt >> /mnt/etc/fstab
루트 변경
arch-chroot /mnt
호스트 네임 설정
# 네트워크 상 다른 컴퓨터에 보여질 이름
echo JGAHN-UX390UAK > /etc/hostname
로케일 설정
/etc/locale.gen
파일의 en_US.UTF-8
과 ko_KR.UTF-8
을 주석 해제한다.
vim /etc/locale.gen
locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf
시간 설정
echo Asia/Seoul > /etc/timezone
hwclock --systohc --local
ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
루트 패스워드 설정
passwd
사용자 추가
useradd -m -G users,wheel -s /bin/bash dubhe
passwd dubhe
visudo
visudo
실행해 sudoers
파일의 %wheel ALL=ALL
항목을 주석 해제
부트로더 설치
GRUB
pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch --recheck
grub-mkconfig -o /boot/grub/grub.cfg
bootctl --path=/boot install
부트 로더 설정 파일 생성
vim /boot/loader/loader.conf
파일 내용
default Arch editor 1 timeout 3
엔트리 파일 생성
vim /boot/loader/entries/arch.conf
파일 내용
title Archlinux linux /vmlinuz-linux initrd /initramfs-linux.img
마지막
option
은 따로 추가한다.echo "options root=PARTUUID=$(blkid -s PARTUUID -o value /dev/nvme0n1p5) rw" >> /boot/loader/entries/Arch.conf
네트워크 프로그램 설치
pacman -S networkmanager dialog
위 둘을 설치해 두면 재부팅 후 wifi-menu
명령으로 인터넷 연결 가능
정리 후 종료
# chroot 종료
exit
# /mnt의 모든 마운트 해제
umount -R /mnt
# 재시작
reboot
GUI 설치
wayland 설치
sudo pacman -S wayland wayland-protocols
GNOME 설치
sudo pacman -S gdm gedit gnome-calculator gnome-calendar gnome-characters gnome-clocks gnome-color-manager gnome-contacts gnome-control-center gnome-disk-utility gnome-font-viewer gnome-keyring gnome-menus gnome-session gnome-settings-daemon gnome-shell gnome-shell-extensions gnome-system-monitor gnome-terminal gnome-weather mousetweaks mutter nautilus accerciser dconf-editor gnome-code-assistance gnome-nettool gnome-tweaks gnome-usage nautilus-sendto sysprof network-manager-applet gnome-bluetooth
sudo systemctl enable gdm
sudo systemctl enable NetworkManager
sudo reboot
여기서 gnome-terminal
패키지는 추후에 gnome-terminal-transparency
패키지를 설치하며 삭제하였다.
AUR helper
yay
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
장치 설정
인텔 마이크로 코드
sudo pacman -S intel-ucode
sudo grub-mkconfig -o /boot/grub/grub.cfg
부트로더 엔트리 파일에 마이크로 코드를 initrd로 추가해 주어야 정상적으로 로드 된다.
sudo vim /boot/loader/entries/arch.conf
파일 내용
...상략 linux /vmlinuz-linux initrd /intel-ucode.img initrd /initramfs-linux.img 하략...
블루투스
sudo pacman -S bluez bluez-utils
sudo systemctl enable bluetooth
그래픽카드
sudo pacman -S mesa xf86-video-intel vulkan-intel
사운드
sudo vim /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common
위 파일에서 [Element PCM]
항목을 찾아 앞뒤로 각각 [Element Master]
와 [Element LFE]
항목을 다음과 같이 추가해 준다. 이는 UX390의 surround sound 하드웨어 때문에 필요한 설정이다.
[Element Master]
switch = mute
volume = ignore
[Element PCM]
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right
[Element LFE]
switch = mute
volume = ignore
지문 인식
sudo pacman -S fprintd
GDM
을 사용하므로 별도 다른 설정은 필요하지 않다. 지문 등록도 fprintd-enroll
을 실행해도 되지만, 그냥 GNOME의 설정 창의 사용자 계정 패널에서 등록 가능하다. 단, 윈도우즈 10과는 다르게 그냥 손가락을 대고 있는 것이 아니라, 센서에 지문을 문질러야 인식 된다.
전원 관리
sudo pacman -S tlp tlp-rdw
yay -S tlpui-git
sudo systemctl enable NetworkManager-dispatcher
sudo systemctl enable tlp
sudo systemctl enable tlp-sleep
Appendix
전체 설치 패키지 설치 목록
패키지 이름 | 설명 | 비고 |
---|---|---|
grub | GNU GRand Unified Bootloader 2 | |
efibootmgr | Tool to modify UEFI Firmware Boot Manager Variables | |
networkmanager | Network connection manager and user applications | |
dialog | A tool to display dialog boxes from shell scripts | |
wayland | A computer display server protocol | |
wayland-protocols | Specifications of extended Wayland protocols | |
gdm | Display manager and login screen | |
gedit | GNOME Text Editor | |
gnome-calculator | GNOME Scientific calculator | |
gnome-calendar | Simple and beautiful calendar application designed to perfectly fit the GNOME desktop | |
gnome-characters | A character map application | |
gnome-clocks | Clocks applications for GNOME | |
gnome-color-manager | GNOME Color Profile Tools | |
gnome-contacts | Contacts Manager for GNOME | |
gnome-control-center | GNOME’s main interface to configure various aspects of the desktop | |
gnome-disk-utility | Disk Management Utility for GNOME | |
gnome-font-viewer | A font viewer utility for GNOME | |
gnome-keyring | Stores passwords and encryption keys | |
gnome-menus | GNOME menu specifications | |
gnome-session | The GNOME Session Handler | |
gnome-settings-daemon | GNOME Settings Daemon | |
gnome-shell | Next generation desktop shell | |
gnome-shell-extensions | Extensions for GNOME shell, including classic mode | |
gnome-system-monitor | View current processes and monitor system state | |
gnome-weather | Access current weather conditions and forecasts | |
mousetweaks | Mouse accessibility enhancements | |
mutter | A window manager for GNOME | |
nautilus | Default file manager for GNOME | |
accerciser | Interactive Python accessibility explorer for the GNOME desktop | |
dconf-editor | dconf Editor | |
gnome-code-assistance | Code assistance services for GNOME | |
gnome-nettool | Graphical interface for various networking tools | |
gnome-tweaks | Graphical interface for advanced GNOME 3 settings (Tweak Tool) | |
gnome-usage | GNOME application to view information about use of system resources | |
nautilus-sendto | Easily send files via mail | |
sysprof | Kernel based performance profiler | |
network-manager-applet | Applet for managing network connections | |
gnome-bluetooth | The GNOME Bluetooth Subsystem | |
firefox | Standalone web browser from mozilla.org | |
firefox-i18n-ko | Korean language pack for Firefox | |
thunderbird | Standalone mail and news reader from mozilla.org | |
thunderbird-i18n-ko | Korean language pack for Thunderbird | |
bluez | Daemons for the bluetooth protocol stack | |
git | the fast distributed version control system | |
ttf-d2coding | D2Coding Fixed Width TrueType fonts | AUR |
ttf-nanum | Nanum series TrueType fonts | AUR |
ibus | Next Generation Input Bus for Linux | |
ibus-hangul | Korean input engine for IBus | |
google-chrome | The popular and trusted web browser by Google (Stable Channel) | AUR |
code | The Open Source build of Visual Studio Code (vscode) editor | |
enpass-bin | A multiplatform password manager | AUR |
mesa | An open-source implementation of the OpenGL specification | |
xf86-video-intel | X.org Intel i810/i830/i915/945G/G965+ video drivers | |
vulkan-intel | Intel’s Vulkan mesa driver | |
gvfs-google | Virtual filesystem implementation for GIO (Google Drive backend) | |
tumbler | D-Bus service for applications to request thumbnails | |
totem | Movie player for the GNOME desktop based on GStreamer | |
gimp | GNU Image Manipulation Program | |
gthumb | Image browser and viewer for the GNOME Desktop | |
gnome-backgrounds | Background images and data for GNOME | |
tlp | Linux Advanced Power Management | |
tlp-rdw | Linux Advanced Power Management - Radio Device Wizard | |
tlpui-git | A GTK-UI to change TLP configuration files easily. It has the aim to protect users from setting bad configuration and to deliver a basic overview of all the valid configuration values. | AUR |
gnome-terminal-transparency | The GNOME Terminal Emulator, with background transparency | AUR |
chrome-gnome-shell | Native browser connector for integration with extensions.gnome.org | |
qogir-gtk-theme-git | Qogir is a flat Design theme for GTK | AUR |
intel-ucode | Microcode update files for Intel CPUs | |
ms-office-online | Microsoft Office Suite Online | AUR |
evolution | Manage your email, contacts and schedule | for test |
xdg-user-dirs-gtk | Creates user dirs and asks to relocalize them | |
gtk-theme-adwaita-tweaks | Tweaks to improve the default GNOME experience. | AUR |
minicom | A serial communication program | |
alsa-utils | An alternative implementation of Linux sound support | |
fprintd | D-Bus service to access fingerprint readers |
Gnome extensions
- Appfolders Management extension: 앱 화면에 폴더 사용
- Removable Drive Menu: USB 장치 메뉴
- Remove Dropdown Arrows: 상단 바의 세모 표시 없앰
- User Themes: 유저 영역에서 테마 설치
Thunderbird extensions
- Lightning: 달력과 할 일 목록 제공. 기본으로 깔려 있지만 언어가 안 바뀐다. 따로 설치하면 된다.
- Provider for Google Calendar: 구글 캘린더와 연동
Google Chrome 바로가기
Google Chrome에서 바로가기를 생성할 수 있다. 크롬 메뉴(우상단 점 3개)에서 *도구 더보기 → 바로가기 만들기···*를 선택하면 해당 페이지에 대한 링크가 아이콘과 함께 생성된다. 웹 앱들이 발전하면서 이런 식으로 링크를 걸어 사용할 일이 더욱 많아질 것 같아 이 문서에 남겨둔다. 생성된 링크 파일은 ~/.local/share/applications/
아래에 chrome-<app-id>-<profile-dir>.desktop
형태로 저장된다. 이렇게 생성한 앱들은 크롬의 앱 창에도 등록이 되어 있다.
삭제는 크롬 앱 창에서 해당 앱을 삭제하면 추가로 물어보는 창이 있다. 같이 삭제 해 주면 GNOME의 앱 메뉴에서도 삭제된다.
기타 개인 설정
Bash 설정
vim ~/.bashrc
파일 내용 수정
# # ~/.bashrc # # If not running interactively, don't do anything [[ $- != *i* ]] && return # Prompt PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\>[\033[00m\]\$ ' if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" fi # Alias alias ls='ls --color=auto' alias ll='ls -alF' alias la='ls -A' alias l='ls -CF' alias vi='vim' alias grep='grep --color=auto' if [ -d "$HOME/.local/bin" ]; then export PATH=$HOME/.local/bin:$PATH fi if [ -d "$HOME/bin" ]; then export PATH=$HOME/bin:$PATH fi
Vim 설정
vim ~/.vimrc
파일 내용
set tabstop=4 set shiftwidth=4 set visualbell set nobackup set cindent set autoindent set smartindent set incsearch set ruler set number syntax on filetype on set backspace=eol,start,indent
Git 설정
vim ~/.gitconfig
파일 내용
[user] name = <이름> email = <이메일> [core] editor = vim autocrlf = input [merge] tool = vimdiff
댓글 없음:
댓글 쓰기