這篇教學文章供想安裝Arch Linux的人當參考,您將會得到一個正體中文,帶有中文注音輸入法,以KDE Plasma作桌面環境的Arch Linux。
為什麼要選擇Arch Linux當桌面系統?Ivon覺得它的優點在於:一、Arch Linux的系統安裝具備高自訂性,要簡潔要複雜隨你所願。二、軟體和Linux核心版本非常新,亦有大量第三方軟體庫作為補充。三、系統是滾動更新,升級沒有大版本之分,這點我很尬意。四、社群撰寫的Arch Wiki包山包海,大部分問題都能找到解答。
然而Arch Linux不是新手友善的Linux發行版,建議至少用過Linux系統一年以上,懂得使用終端機指令,再嘗試裝Arch Linux。儘管大部分時候Arch Linux還算穩定,但若是更新後有東西出錯,需要有自己動手除錯的能力。
Arch Linux是完全純文字畫面打指令安裝的,下面的每個步驟我會盡量解釋我在做什麼,並簡介pacman和AUR的用法,還有使用Arch Linux的基本觀念。我不會使用任何圖形安裝器或 archinstall之類的快速安裝指令稿。
遇到問題時請多看 Arch Wiki和閱讀手冊,或是到 臺灣Arch Linux社群或 中國Arch Linux社群求助。
電腦規格:
主機板 | ASUS K31CD-K |
CPU | Intel I5-7400 |
GPU | Nvidia GTX1050Ti |
RAM | 16GB DDR4 |
SSD | Micron 500GB |
Wifi網路卡 | Qualcomm Atheros QCA9377 |
1. 製作Arch Linux開機隨身碟#
至 Arch Linux官網,找到臺灣的鏡像站。
下載Arch Linux的ISO。
安裝 balenaEtcher,插入隨身碟,按照螢幕指示製作開機隨身碟。隨身碟的資料會被清空。
2. 開始安裝Arch Linux#
安裝系統請使用有線網路,用手機USB分享網路也可以,免得Wifi還要另外裝驅動。
2.1. 開機進入安裝媒體#
隨身碟插著電腦,開機按Delete進入BIOS,關閉Secure Boot。
調整BIOS開機順序,以UEFI模式隨身碟開機,進入Arch Linux,用鍵盤選第一個選項,按Enter進入安裝媒體。
載入Arch Linux系統後會進入終端機(顯示
root@archiso
),系統應該會自動連上網路。ping看看Arch Linux檢查網路是否正常:
ping -c 3 archlinux.org
- 檢查是否為UEFI模式開機,應會回傳「64」。若顯示
No such file or directory
的話,輸入poweroff
關機,退回BIOS啟用UEFI再重新來過。
cat /sys/firmware/efi/fw_platform_size
2.2. 修改鏡像站#
Arch Linux安裝媒體預設是從官方伺服器下載套件,有些地區的網速可能會很慢。為此您可以先將Arch Linux的套件庫改成離您較近的鏡像站。
各國的鏡像站網址可用 Pacman Mirrorlist Generator取得,像臺灣國內目前就有5個Arch Linux的鏡像站。
- 編輯
/etc/pacman.d/mirrorlist
vim /etc/pacman.d/mirrorlist
- 在第一行將
#
取消註解,並在Server
的後面改為臺灣國網中心的Arch鏡像站網址。這樣Arch就會優先使用此套件庫。
Server = https://free.nchc.org.tw/arch/$repo/os/$arch
- 嘗試同步套件庫,能連線的話就不會輸出任何錯誤訊息。
pacman -Syy
2.3. 分割硬碟#
我將使用fdisk
指令進行硬碟分割,這裡只有一個硬碟,將原本的分割表刪除,全用於安裝Arch Linux。
- 首先查看目前的硬碟分區
fdisk -l
- 應會看到
/dev/sda
這樣的裝置代號。SSD或HDD通常是顯示為/dev/sda
,NVME為/dev/nvme0n1
。fdisk的列表會包含硬碟和開機隨身碟,請用容量判斷何者為目標硬碟。
/dev/sda1 EFI System
/dev/sda2 Linux filesystem
- 選取要安裝系統的硬碟
fdisk /dev/sda
- 輸入
g
刪除全部分區,建立GPT分割表。
g
- 新增用於UEFI開機的第一個硬碟分區。輸入
n
,再輸入1
,First Sector使用預設,Last Sector輸入+512M
將該分區設為512MB。
n
1
First Sector: (Enter)
Last Sector: +512M
# 遇到Do you want to remove the signature?的問題就輸入yes
- 輸入
t
再輸入uefi
,將該分區類型切換為EFI:
t
uefi
- 接著新增SWAP分區(交換分區,又稱虛擬記憶體),建議為RAM的二倍大小。之後按t,切換分區類型為swap
n
2
Fisrt sector: Enter
Last Sector: +32GB
t
swap
- 硬碟剩下的空間都給Linux的根目錄。新增第三個硬碟分區:
n
3
First Sector: (Enter)
Last Sector: (Enter)
- 最後輸入
w
確認將變更寫入硬碟:
w
- 用指令
fdisk -l
看目前硬碟分區,應該會是以下情況:
/dev/sda1 512MB EFI
/dev/sda2 32GB SWAP
/dev/sda3 450GB Linux
- 將硬碟格式化並建立檔案系統,EFI分區是FAT32,根目錄分區採用EXT4,再啟用SWAP。
mkfs.fat -F32 /dev/sda1
mkfs.ext4 /dev/sda3
mkswap /dev/sda2
swapon /dev/sda2
- 將根目錄分區掛載至
/mnt
:
mount /dev/sda3 /mnt
2.4. 安裝Linux核心和最小系統#
- 掛載EFI分區
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
- 用
pacstrap
安裝基本Linux檔案系統base
、核心linux
、專有韌體linux-firmware
pacstrap -K /mnt base linux linux-firmware
- 用genfstab工具設定開機後硬碟掛載的規則:
genfstab -U /mnt >> /mnt/etc/fstab
- 檢視掛載狀況
cat /mnt/etc/fstab
- chroot到系統。
arch-chroot /mnt
2.5. 安裝驅動程式#
2.5.1. 顯示卡驅動#
Intel顯示卡的驅動含在開源mesa
套件,開箱即用,通常不需要特別安裝。下面是包含Vulkan驅動的套件:
pacman -S intel-media-driver vulkan-intel
AMD顯示卡的驅動跟Intel一樣,含在mesa
套件。有需要Vulkan再額外安裝:
pacman -S vulkan-radeon libva-mesa-driver mesa-vdpau
至於Nvidia顯示卡,Arch的儲存庫有提供Nvidia顯示卡的專有驅動,不需要額外加套件庫。安裝後nouveau會自動被停用。
pacman -S linux-headers nvidia-dkms nvidia-settings
Nvidia顯示卡(驅動版本 > 545)的用戶建議編輯Nvdiia核心模組參數,啟用DRM框架,KDE Wayland才會有畫面。
mkdir /etc/modprobe.d
echo "options nvidia_drm modeset=1 fbdev=1" >> /etc/modprobe.d/nvidia.conf
2.5.2. Wifi與藍芽驅動#
用lsci
查看硬體裝置的型號
lspci | egrep -i 'wifi|wireless|intel|broadcom|realtek'
如果網卡是用USB外接的,使用lsusb
指令檢查
pacman -S usbutils
lsusb
它應該會印出一組英數:英數
的代碼,到
Linux Wireless wiki查詢該裝置有無驅動可用。
如果你運氣好,裝好linux-firmware
套件,有含在主線Linux核心的專有驅動就會在開機後自動載入。
pacman -S linux-firmware
運氣不好,裝驅動得用到AUR甚至DKMS編譯,那請後面開機再處理吧。
2.6. 安裝KDE桌面環境#
- 接著要來安裝桌面環境和一些常用工具。下面是我事先安裝這些軟體的理由:
套件名稱 | 用途 |
---|---|
sudo | 管理root權限 |
networkmanager | 網路管理員,會自動處理網路連線變更。 |
xorg, xorg-server | X視窗系統 |
pipewire, wireplumber, pipewire-pulse | 音訊伺服器,相容PulseAudio。 |
nvtop | 查看顯示卡使用率的純文字工具 |
intel-ucode | Intel CPU微碼修補程式 |
sddm | 顯示管理器,也就是開機登入畫面 |
plasma-meta, kde-applications, packagekit-qt6 | KDE桌面環境、KDE應用程式、KDE Wayland工作階段。 |
vim | 文字編輯器 |
firefox | Firefox網路瀏覽器 |
noto-fonts-cjk, noto-fonts-emoji | 中文和Emoji字體 |
fcitx5-im, fcitx5-chewing, fcitx5-qt, fcitx5-gtk, fcitx5-chinese-addons | 中文輸入法框架,含注音輸入法新酷音 |
git, openssh, fakeroot, base-devel | 開發工具 |
- 用pacman套件管理員安裝KDE桌面環境和常用軟體,全部Enter同意,大約會下載5GB資料。為避免指令太長我有分段裝,您要一次打完也可以。
pacman -S sudo networkmanager vim firefox noto-fonts-cjk noto-fonts-emoji
pacman -S xorg xorg-server pipewire wireplumber pipewire-pulse intel-ucode nvtop
pacman -S sddm plasma-meta kde-applications packagekit-qt6
pacman -S fcitx5-im fcitx5-chewing fcitx5-qt fcitx5-gtk fcitx5-chinese-addons
pacman -S git openssh fakeroot base-devel
2.7. 設定一般使用者與開機服務#
- 設定時區為台灣台北。設定硬體時鐘。
ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime
hwclock --systohc
- 使用VIM編輯語言檔案
vim /etc/locale.gen
- 把正體中文
zh_TW.UTF-8
取消註解(前面去掉#字號)如下:
# 使用上下左右鍵移動,按i輸入文字,改好後按Esc,再輸入「:wq」退出VIM
zh_TW.UTF-8 UTF-8
- 生成語言,設定系統語言成正體中文
locale-gen
echo "LANG=zh_TW.UTF-8" >> /etc/locale.conf
- 給自己的主機取名為
ArchLinux
:
echo "ArchLinux" >> /etc/hostname
- 建立host檔案。最後一行為主機名稱。
echo "127.0.0.1 localhost" >> /etc/hosts
echo "::1 localhost" >> /etc/hosts
echo "127.0.1.1 ArchLinux" >> /etc/hosts
- 設定開機自動啟動SDDM顯示管理器、Network Manager、SSH的服務
systemctl enable sddm.service
systemctl enable NetworkManager.service
systemctl enable sshd.service
- 更改root的密碼:
passwd
#輸入二次新密碼
- 建立一般使用者帳戶"user"(名字可自取),將其加入users、wheel、audio、video、storage群組,並修改密碼
useradd -m -g users -G wheel,audio,video,storage -s /bin/bash user
passwd user
- 用指令編輯sudoers:
vim /etc/sudoers
,賦予一般使用者帳戶sudo權限
#在"root ALL=(ALL:ALL) ALL"的下一行加入以下內容:
user ALL=(ALL:ALL) ALL
2.8. 安裝GRUB開機引導#
- 安裝GRUB和efibootmgr套件
pacman -S grub efibootmgr
- 將EFI分區掛載到
/boot
目錄
mount /dev/sda1 /boot
- 接著安裝GRUB至EFI分區
grub-install --target=x86_64-efi --bootloader-id=GRUB --efi-directory=/boot
grub-mkconfig -o /boot/grub/grub.cfg
- 檢查
/boot
目錄下是否有成功安裝GRUB和Linux核心,應會列出grub
目錄和initramfs-linux.img
。
ls /boot
- 系統安裝完成。退出chroot,取消掛載,關機。
exit
umount /mnt/boot
umount /mnt
shutdown now
- 拔掉開機隨身碟後重開機。
3. 系統後續安裝優化#
如果Arch Linux開機後沒畫面,按CTRL+ALT+F2切換至tty,登入root帳號後再除錯。或是用開機隨身碟chroot到系統進行修復(重複上文2.4的步驟)。
一切順利的話,應該會看到登入畫面,輸入密碼後就能登入KDE桌面,下面是一些小優化。
3.1. KDE Plasma桌面入門#
KDE Plasma桌面布局跟Windows 10十分類似,您可以任意調整桌面元件的擺放方式。
點一下桌面左下角可找到所有應用程式列表,包含「系統設定」和終端機「Konsole」。
右下角則是開關Wifi/藍芽、電池、輸入法、顯示時間的面板。
開機後如果系統介面還是英文,點選左下角的系統設定 → Regional Settings,將Language調成正體中文並重開機。
在Arch Linux上,KDE的軟體商店「Discover」除了管理pacman的軟體外,還可以配合 Flatpak或 Snap使用。
KDE Plasma最新版預設會採用Wayland作為顯示協定,若有需要可在SDDM的登入畫面左上角切換為X11。
3.2. pacman套件管理員使用方式#
此節列出Arch Linux的套件管理員pacman的常用指令。
Arch Linu安裝套件不會像其他Linux發行版事先為使用者設定與啟動服務,因此即使是像Firefox這樣受歡迎的軟體,仍建議在安裝套件後到Arch Wiki → 關於Firefox的頁面,查看有無其他需要調整的設定檔。
用此指令搜尋線上套件
sudo pacman -Ss <套件名稱>
用此指令安裝套件。Arch Linux不支援部份更新,不可以用pacman -Sy <套件名稱>
來安裝套件。
sudo pacman -S <套件名稱>
移除套件
sudo pacman -R <套件名稱>
以下指令會更新整個系統的套件。因為Arch Linux是滾動發行版,建議每個月進行一次全系統更新。更新前建議看 Arch Linux官網新聞有無嚴重bug再更新。
sudo pacman -Syu
強制同步套件庫。某個套件無法下載的時候才執行此指令。
sudo pacman -Syy
刪除本機套件快取
sudo pacman -Sc
3.3. 安裝AUR套件管理員#
AUR (Arch User Repository) 是Arch Linux官方套件庫以外的主要套件來源。AUR沒有收錄套件檔案,只有編譯套件的設定檔。AUR套件最直接的裝法是手動git clone
儲存庫,然後檢查依賴項目,再用makepkg
指令打包安裝。
但是這樣太麻煩了,所以我們通常會安裝一個 AUR Helper來自動化處理,我使用yay,語法跟pacman很像。
- 安裝yay
sudo pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
編輯:
sudo vim /etc/makepkg.conf
,找到MAKEFLAGS="-j2"
這行,取消註解,再將後面改成"-j$(nproc)"
。這樣在編譯AUR套件時即會使用全部CPU。編輯:
sudo vim /etc/pacman.conf
,取消註解Color
和ParallelDownloads
,開啟顏色和平行下載套件。再自行新增ILoveCandy
參數開啟pacman的彩蛋。
因為AUR是先編譯後打包,執行時yay
指令的時候不需要加sudo,只有打包後要安裝套件時需要密碼。
yay能用類似pacman的語法來安裝AUR上的套件,例如Arch Linux官方套件庫沒收的google-chrome
:
yay -S google-chrome
# 按下Enter同意安裝,並按照螢幕提示輸入密碼
要刪除AUR的套件也是類似的語法:
yay -R google-chrome
更新所有AUR套件,並順便更新整個系統的套件:
yay -Syu
3.4. 安裝Flatpak套件管理員#
用Flatpak安裝軟體可以在各Linux發行版享有一致的軟體版本,不會太新也不會太舊,例如LibreOffice、GIMP、Steam,並且安裝軟體不需要root權限。
- 安裝Flatpak,並加入Flathub套件庫
sudo pacman -S flatpak
flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
- 到 Flathub查看APP列表,例如安裝Steam:
flatpak install flathub com.valvesoftware.Steam
Flatpak指令的詳細用法請看 這篇。
3.5. 設定Fcitx5中文輸入法#
Fcitx5是Arch Linux最新的中文輸入法框架,支援注音、拼音、倉頡等輸入方案,對Wayland支援度較好。
- 確認已安裝必要的Fcitx5套件
sudo pacman -S fcitx5-im fcitx5-chewing fcitx5-qt fcitx5-gtk fcitx5-chinese-addons
在KDE左下角的應用程式列表搜尋「Fcitx5設定程式」,加入「新酷音」注音輸入法。
針對Fcitx5,編輯環境變數:
sudo vim /etc/environment
,加入以下內容重開機。
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=fcitx
- 輸入文字時用CTRL+空白鍵來切換應該就會叫出新酷音。Fcitx5還有對系統匣圖示按右鍵切換簡體輸出的功能。
3.6. 設定UFW防火牆#
Arch Linux預設的防火牆是iptables,通常我們會裝一個前端方便管理防火牆規則。
- 安裝UFW,並設定開機自動啟動UFW服務
sudo pacman -S ufw
sudo ufw enable
sudo systemctl enable ufw
sudo systemctl start ufw
- 設定防火牆基本規則:允許所有對外連線,阻擋所有連入連線,僅開放SSH的通訊埠。
sudo ufw default allow outgoing
sudo ufw default deny incoming
sudo ufw allow ssh
sudo ufw reload
3.7. 補齊缺少的驅動程式#
最簡單的方式是重裝Linux核心:
sudo pacman -S linux linux-headers
Arch Linux預設會在安裝核心時重建initramfs,過程會顯示possible missing firmware:
字樣,代表缺少驅動(核心模組未載入)。把那些驅動名稱拿去Google,將其安裝補齊。
通常AUR都會有收這些驅動,例如mkinitcpio-firmware
套件就足以補齊許多驅動:
yay -S mkinitcpio-firmware
3.8. 尋找更多實用的Linux應用程式#
老樣子,請先看Arch Wiki: List of applications了解有哪些實用的應用程式。
我有另外整理一個中文列表: 我的Linux必裝軟體,裡面有許多實用的Linux軟體。
4. Arch Linux安裝後記#
這篇教學文章兼筆記最初寫於2022年7月,後多次修訂至今。
那時說Distro hopping的終點來到了Arch Linux。
標題之所以說主力,是因為主要用途是用於文書、剪輯、開發、遊戲。
資質駑鈍,安裝Arch Linux是一年下來玩各種Linux(不論是手機還電腦)累積下來的成果,現在體驗到了掌控自己電腦的感覺。
PTT文章也給我很大幫助。
2021年第一次嘗試安裝Arch Linux時,GNOME的APP怎麼開怎麼崩,不會設定中文和輸入法,之後開機便卡在終端機,果斷放棄回去用Ubuntu和Windows 11。幾個月後玩FreeBSD才想到應該是沒裝Nvidia驅動的問題。
有了各種Linux基礎概念後,2022年Arch Linux一小時就安裝完成。
玩手機Termux Proot distro、實機操作過PinePhone、在Android上刷postmarketOS、嘗試編譯Android的docker kernel、在各種桌面系統的distro hopping經驗,讓我掌握了設定語言和時間等基本知識。
大致上主流發行版都體驗過了一次: Ubuntu → Manjaro → Debian → Fedora → openSUSE Tumbleweed → GUIX → Arch Linux
KDE介面很細心,GNOME操作邏輯很炫,XFCE是測試桌面的第一穩定選擇,所以到現在我還是選了KDE。
安裝時是有線網路…不過裝完linux-firmware開機後我的高通網卡就自動抓到驅動了 :P 還以為要像Realtek的自己編譯。
原本擔心AUR會不會套件比較難安裝,但其實也沒那麼難用。Fedora、openSUSE某些軟體會不受開發者支援,所以才會去用Flatpak,但AUR似乎是包山包海。
Arch Linux玩熟後,就前進到Gentoo了,幾個月後還是跳回Arch Linux了。