這篇文章是前陣子,因為一直被 Window 搞,一下要我升級 Window 11、一下把我系統的 Ubuntu GRUB 蓋掉,後來實在受不了,乾脆安裝 Arch Linux 一勞永逸(欸?),所作的筆記。
1 開機過程
- 主機板上有一個關鍵硬體:SPI Flash Memory(取代 EEROM),裡面存著 UEFI(Unified Extensible Firmware Interface)韌體界面(取代 BIOS) 跟 NVRAM(Non-volatile random-access memory)。
- 如果是首次開機,UEFI 韌體會去翻 NVRAM 會找不到資料,然後就會掃描所有硬碟 GPT(GUID Partition Table, i.e. LBA 0-33),找找看有沒有分區是 GUID 為
C12A7328-F81F-11D2-BA4B-00A0C93EC93B固定值的,這代表該分區是 EFI 分區(i.e. ESP),格式通常為 FAT16/32(微軟遺產之一),然後 UEFI 韌體會掛載這個分區,接下來去找固定位置/EFI/BOOT/BOOTX64.efi檔案(PE 格式的可執行檔,微軟遺產之二)。 .efi檔案負責接手後面的事情:也就是把作業系統喚醒。- 當然,若 NVRAM 已經有紀錄的話,就可以直接找到具體
.efi檔案的位置:
1 | efibootmgr -v |
- 如果硬碟很多、很大,然後 CR2032 電池(即水銀電池)又失效的話,有可能 UEFI 就每次開機都找不到啟動目錄(因為 NVRAM 找不到的關係)。水銀電池負責給 NVRAM 供電的。
2 系統安裝
以 USB 開機後,依序處理下面事項:
1 | # 檢查開機模式是 UEFI: 看看有沒有檔案 |
現代硬碟分割大致上只要兩個區域:
接下來,操作格式化:
1 | # 格式化 |
把東西塞進去(安裝):
1 | pacstrap -K /mnt base linux linux-firmware base-devel vim git networkmanager |
設定開機掛載硬碟(配置 UUID, Universally unique identifier):
1 | genfstab -U /mnt >> /mnt/etc/fstab # 配置 |
至於 /mnt/etc/fstab 裡面應該長這樣:
1 | # /dev/nvme0n1p2 |
目前狀態:開機能找到硬碟,但「無法啟動系統」(未處理 GRUB 的 EFI 檔案)
用指令進入 Arch 中:
1 | arch-chroot /mnt |
現在開始,我們就已經是在用 Arch 系統了。
然後進行一系列基本處理:
1 | # 設定 Root 密碼 |
創一個預設 sudo 使用者(通常不用 Root 活動):
1 | # 安裝 sudo |
接下來處理 GRUB 開機引導程式:
1 | # 安裝開機微碼(CPU 指令的補丁) |
所有配置都已經完成,現在可以重新啟動(記得最後一步要拔掉 USB):
1 | exit # 離開系統,回到 USB 開機碟 |
3 客製化
接下來就比較客製化的內容了,不太影響系統穩定度,只影響好不好用。
3.1 更新 Pacman 庫
1 | pacman -Syyu |
3.2 安裝顯卡驅動
1 | # 安裝 Nvidia 顯卡 |
可能遭遇的問題,如果找不到 Nvidia 的話:
1 | # 直接翻庫表,看看哪些可用 |
3.3 音效驅動
這個比較簡單:
1 | # 安裝驅動 |
3.4 中文輸入法
中文輸入法在 Arch 裡面,還有字型的問題。
1 | # 安裝中文輸入法 |
3.5 安裝字型
Arch 什麼都不提供,建議至少思源+文泉譯:
1 | sudo pacman -S noto-fonts-cjk adobe-source-han-sans-otc-fonts adobe-source-han-serif-otc-fonts |
3.6 安裝 Chrome 與 Chromium
不推薦 Chromium 的原因是不支援自動同步。
由於 Arch 官方沒收錄官方版 Google Chrome,所以最好自己編譯:
1 | # 下載並編譯 |
關閉 KWallet 密碼管理(導致啟動很慢):
1 | # 設定檔加入一行 |
3.7 螢幕截圖設定
- 設定 Spectacle 讓行為跟 Window 相同使用(
Window+Shift+S來直接螢幕截圖到 Clipboard) - 配置:儲存 + 複製圖片到 Clipboard
- 然後快捷建:Reassign
Meta+Shift+S到 Capture Rectangular Region 而不是 Launch Spectacle。


3.8 WebApp 的 D-Bus 延遲問題
所有的 WebApp 啟動的時候,都會去調用 KWallet (KDE) 來想要保存密碼(這是源自於瀏覽器的習慣。)
但是安裝的時候預設是不啟用 Kwallet 的,直接補裝進去就好,我建議就用 KWallet 來保存,其實 Windows 也是這麼做的(只是方法有些不同。)
1 | # 啟用 Kwallet |