如何打造屬於你的作業系統
Arch Linux 秉持極簡主義,讓使用者能自由打造所需的任何功能。以下以實機部署為例,簡單介紹如何構建屬於你的 Arch Linux。
準備工作
需要準備:電腦、USB 隨身碟(或任何可移動儲存媒介)、網路連線、基本的資訊檢索能力
- 不論使用何種安裝映像檔方案,即使是離線版映像檔,建議準備好網路環境,以確保核心和工具的更新。若你非常熟悉 Arch Linux,也可自行決定是否需要網路。
- 如果使用無線網路,請確保 Wi-Fi 名稱使用英文,因為在 tty 環境下無法顯示中文,中文名稱會顯示為無法辨識的方塊字元。
- 如果計劃在同一顆硬碟上安裝雙系統,請為 Arch Linux 預留足夠的硬碟空間,建議至少 100GB 以便安裝其他軟體;並確保 EFI 分區容量不少於 256MB,或新增額外的掛載點。
- 檢查 Windows 10 分區是否啟用 BitLocker 加密,務必提前取得恢復金鑰,並關閉電源選項中的「快速啟動」功能!
在操作前,請務必仔細閱讀並針對不理解的部分進行搜尋學習,謹慎操作,及時備份,資料無價。
安裝媒介的製作
- 建議僅從 Arch Linux 官方映像檔來源 下載,請注意,Arch Linux 是滾動更新發行版。
- 若要自行編譯核心,請參考「核心/傳統編譯」。
- 若使用官方提供的安裝映像檔,建議使用 Ventoy 燒錄。
基礎安裝
1. 使用 Arch Linux 引導碟
關機,插入 USB 隨身碟後開機,進入 BIOS 選擇從 USB 啟動,選取第一個選項並按 Enter,進入 Arch Linux 安裝環境。
2. UEFI 檢查
systemctl stop reflector.service
# 禁用自動更新軟體來源,因為地理因素可能影響網路環境,建議關閉。ls /sys/firmware/efi/efivars
# 若顯示一串 EFI 變數,表示已使用 UEFI 模式啟動。2025 年的大多數機器皆為 UEFI 引導。3. 連線網路
Arch Linux 安裝需要網路環境,離線安裝步驟較為繁瑣,可參考社群的 離線安裝指南。
有線網路連線無需多述,接上網路線後檢查介面指示燈是否閃爍,等待數秒後即可完成連線。
若在校園網路環境中,需由上層路由器完成認證,可參考 nbtverify 專案。
無線網路則使用
iwctl進行連線。
lspci -k | grep Network
# 檢查無線網卡是否正常運作,若確認無問題可跳過此步。檢查核心是否載入無線網卡驅動程式。
通常會顯示類似:
00:14.3 Network controller: Intel Corporation Wi-Fi 6 AX201 (rev 20)。若無顯示,檢查無線連線是否被禁用(blocked: yes)。
rfkill list
# 無線網卡通常命名為 wlan0。ip link set wlan0 up
# 若出現類似「Operation not possible due to RF-kill」錯誤,則執行:
rfkill unblock wifi# 使用 iwctl 連線網路
iwctl # 進入互動式命令列
device list # 列出無線網卡設備名稱,例如 wlan0
station wlan0 scan # 掃描網路
station wlan0 get-networks # 列出所有 Wi-Fi 網路
station wlan0 connect wifi-name # 連線至指定網路,注意無法輸入中文名稱。輸入密碼後按 Enter
exit # 連線成功後退出
ping www.google.com # 測試網路連通性若網路設定遇到問題,可參考 [網路設定.wpi
System: 設定/無線網路設定](https://wiki.archlinux.org/title/Network_configuration/Wireless)。
5. 同步系統時間
timedatectl set-ntp true # 將系統時間與網路時間同步
timedatectl status # 檢查服務狀態6. 更換台灣或國際軟體來源(若在國際網路環境可忽略)
vim /etc/pacman.d/mirrorlist # 準備更換軟體來源,若已透過代理連線國際網路可忽略
Server = https://free.nchc.org.tw/archlinux/$repo/os/$arch # 國家高速網路與計算中心
Server = https://archlinux.cs.nctu.edu.tw/$repo/os/$arch # 國立交通大學
Server = https://mirror.liquidtelecom.com/archlinux/$repo/os/$arch # Liquid Telecom7. 建立 Btrfs 分區
查看磁碟資訊
lsblk顯示當前分區情況。請仔細檢查你要安裝 Arch Linux 的目標硬碟名稱。
硬碟命名規則:
- SATA 協議:
sda、sdb、sdc…… 分區為sda1、sda2等 - NVMe 協議:
nvme0n1、nvme1n1…… 分區為nvme0n1p1、nvme0n1p2等
示例以 SATA 硬碟為例,請根據實際情況替換
/dev/sdx。
cfdisk /dev/sdx是否看到一個友好的 TUI 分區介面?😄
分區操作步驟
1. 建立 Swap 分區
- 使用方向鍵選中 Free space。
- 按下
[New]並按 Enter,輸入大小(建議為記憶體大小的 60%~100%)。 - 按
[Type],選擇 Linux swap。
2. 建立根分區(用於 Btrfs)
- 選中剩餘的 Free space,按
[New]並按 Enter。 - 輸入大小(預設使用全部剩餘空間)。
- 保持類型為預設的 Linux filesystem。
3. 寫入分區表
- 選中
[Write],輸入yes並按 Enter。⚠️ 注意:若未寫入,之前的操作不會生效!
格式化分區
再次檢查磁碟
fdisk -l格式化 EFI 分區(若需新建)
mkfs.fat -F32 /dev/sdxn💡 若為雙系統使用者,可共用 Windows 的 EFI 分區,無需格式化,但需確保空間足夠,詳見 與 Windows 雙系統。
格式化 Swap 分區
mkswap /dev/sdxn格式化 Btrfs 分區
mkfs.btrfs -L myArch /dev/sdxn建立並掛載 Btrfs 子卷
mount -t btrfs -o compress=zstd /dev/sdxn /mnt
# 建立子卷
btrfs subvolume create /mnt/@ # 根目錄子卷
btrfs subvolume create /mnt/@home # /home 子卷
umount /mnt⚠️ 最後提醒
- 請再次檢查命令和操作的正確性!
- 誤操作可能導致資料遺失,尤其是誤刪 Windows 分區 😥
8. 掛載,從根目錄依序掛載
mount -t btrfs -o subvol=/@,compress=zstd /dev/sdxn /mnt # 掛載 / 目錄
mkdir /mnt/home # 建立 /home 目錄
mount -t btrfs -o subvol=/@home,compress=zstd /dev/sdxn /mnt/home # 掛載 /home 目錄
mkdir -p /mnt/boot # 建立 /boot 目錄
mount /dev/sdxn /mnt/boot # 掛載 /boot 目錄
swapon /dev/sdxn # 掛載交換分區df -h # 檢查掛載
free -h # 檢查 Swap 分區掛載9. 安裝系統
pacstrap /mnt base base-devel linux linux-firmware btrfs-progs
# 若使用 Btrfs 檔案系統,需額外安裝 btrfs-progs 套件pacman -S archlinux-keyring
# 若提示 GPG 證書錯誤,可能是因為使用的不是最新映像檔,可透過更新 archlinux-keyring 解決pacstrap /mnt networkmanager vim sudo zsh zsh-completions
# 使用 pacstrap 指令碼安裝必要的功能性軟體10. 生成 fstab 檔案
生成 fstab 以定義磁碟分區,會受到當前掛載情況影響。
genfstab -U /mnt > /mnt/etc/fstab11. 進入新系統
arch-chroot /mnt
# 程式碼高亮消失了?別擔心,這表示你已成功切換到新系統!12. 設定主機名稱與時區
vim /etc/hostname
# 為你的電腦取個名字吧 XD(避免使用特殊字元和空格,否則可能出問題;不設定主機名稱也可能導致某些 GUI 程式異常終止,建議務必設定)vim /etc/hosts
# 編輯主機 hosts 檔案填入以下內容(將 myarch 替換為你設定的主機名稱,注意中間間隔使用 Tab 對齊):
127.0.0.1 localhost
::1 localhost
127.0.1.1 myarch.localdomain myarchln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime
# 在台北時區建立符號連結ls /usr/share/zoneinfo/
# 檢查可用時區,必要時更換上述命令中的時區路徑13. 硬體時間設定
hwclock --systohc
# 將系統時間同步至硬體時間14. 設定語系
vim /etc/locale.gen
# 編輯 /etc/locale.gen,移除 en_US.UTF-8 UTF-8 和 zh_TW.UTF-8 UTF-8 行前的註解符號(#)
# 此步驟決定軟體使用的語言和字元集locale-gen
# 生成語系echo 'LANG=en_US.UTF-8' > /etc/locale.conf
# 設定 locale.conf,不建議使用中文語系,否則 tty 可能出現亂碼15. 設定 root 密碼
passwd root
# 輸入密碼時不會顯示,屬正常現象,非鍵盤故障 XD16. 安裝微碼
pacman -S intel-ucode # Intel 處理器
Джpacman -S amd-ucode # AMD 處理器17. 安裝 Grub 引導程式
pacman -S grub efibootmgr os-prober
# grub 為啟動引導程式,efibootmgr 用於向 NVRAM 寫入啟動項,os-prober 用於引導 Windows 10grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH
# 將 grub 安裝至 EFI 分區vim /etc/default/grub
# 編輯啟動參數# 將 "loglevel=3 quiet" 修改為 "loglevel=5 nowatchdog"
# 在檔案末尾新增一行:GRUB_DISABLE_OS_PROBER=false- 移除 GRUB_CMDLINE_LINUX_DEFAULT 行中的 quiet 參數。
- 將 loglevel 的數值從 3 改為 5,以便在系統錯誤時方便排錯。
- 加入 nowatchdog 參數,可顯著提升開關機速度。
- 加入 os-prober 參數,用於引導 Windows 10。
grub-mkconfig -o /boot/grub/grub.cfg
# 生成 grub 所需的設定檔
# 若檢測到 Windows 10,會顯示一行類似「Found Windows Boot Manager on /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi done」的回顯
# 若 Windows 10 位於另一顆硬碟,可能不會顯示,進入系統後重新掛載並再次執行即可有關全部參數的說明,可參考 Arch Wiki。
18. 完成安裝
exit # 返回安裝環境
umount -R /mnt # 卸載新分區
reboot # 重新啟動重新啟動後使用 root 帳戶登入。
systemctl enable --now NetworkManager # 設定開機自啟並立即啟動 NetworkManager 服務
ping www.google.com # 測試網路連通性若使用無線網路:
nmcli dev wifi list # 顯示附近的 Wi-Fi 網路
nmcli dev wifi connect "Wi-Fi 名稱(SSID)" password "網路密碼" # 連線至指定的無線網路nmtui
# 個人較推薦 nmtui,介面較為友好 XDpacman -S fastfetch
fastfetch
# 安裝 fastfetch,檢查系統資訊
# 喜聞樂見的 neofetch 時刻 XDshutdown 0
shutdown -h now
poweroff
# 以上三個命令皆為關機,🤣 記得關機,因為電源策略尚未設定恭喜 🎉
至此,你已完成一個基礎的無圖形介面的 Arch Linux 安裝!
圖形化介面的安裝指南將在下次更新發布,還是那句老話:多閱讀官方手冊!
本文旨在拋磚引玉,希望吸引更多同好加入技術交流的行列!
友情連結:NBTCA
- 📧 NBTCA 電子郵件:contact@nbtca.com
- 🌐 NBTCA GitHub:https://github.com/nbtca