筆者的筆電是一台很舊型的破電腦
由於沒有錢換 Macbook
所以暫時只能拿這個頂著用
因此會希望把自己的電腦環境調教好
再加上筆者超級討厭 windows 的工作環境
所以大約在兩年前就將電腦灌成 Archlinux 了
由於前陣子筆者的 EFI 分區壞掉了
因此整個系統被迫重灌
剛好就來分享一下筆者在安裝時遇到的一些問題

聽聽八爺前幾個月的歌

# 前言

宮語出品 必是毒品

本篇將分享筆者在安裝 Archlinux 時遇到的一些問題
將注重於經驗分享 而非以教學為主
雖然還是會帶一點安裝步驟
但請先有預期 本文並不會手把手教你安裝

# 為什麼是 Archlinux

Arch 是一個以輕量化著名的 Linux 發行版
筆者在使用過各種不同的 Linux 系統後
覺得在安裝過 GUI 之後
Arch 是其中最輕且最好用的

# 為什麼不是 Ubuntu

我討厭它

# 為什麼不是 Manjaro

幹 Manjaro 是 Arch 的衍生版
它就是 Base on Arch 的

# 注意事項

俗話說 Arch 裝三次才會成功
雖然不是每個人都會踩到這麼多坑
但最好還是要有不一定能夠一次成功的心理準備

# 前置作業

# 本文預設前提

  • 有一台可以開機的電腦
  • 有一個可以使用的網路環境
  • 有一個可以使用的 USB
  • 你會用電腦 (不然你在看這篇幹嘛)
  • 最好是看到 cli 介面不會感到頭痛

# 環境準備

# 系統安裝檔

在開始前 我們可以去 Archlinux 官網下載最新的 ISO 檔
並且寫入到 USB (或其他隨身可攜裝置) 中

# 網路

在開始設定前最好接上有線網路
使用無線網路可能會有一些問題
後面會提到無線網路的一些設定和問題

# 讀取 USB

透過 UEFI 或 BIOS 進入 USB
應該就可以讀到 Archiso 了
它本身就是一個迷你的系統
進入後就可以使用 cli 介面開始安裝了

# 其他

剩下應該就跟普通裝系統差不多
如果不會裝系統的話建議先嘗試裝裝看 windows
或者先用虛擬機玩玩看
再來嘗試玩 Linux 系統

# 安裝

# 網路設定

首先最好測試網路連線
使用 ping 測試

ping archlinux.org

如果是 無線網路 的話可能會需要手動設定

iwctl station <device> connect <SSID>
  • :無線網卡名稱(可透過 iwctl device list 查詢)
  • :欲連線的無線網路名稱

要密碼的話應該會提示你
照著輸入就好了

# 磁碟分割

接下來就是分割你的磁碟分區
基本上一個可以開機的系統需要兩個分區

  • EFI 分區:用來放置系統開機所需的檔案
  • 作業系統分區:用來放置系統本身的檔案

後者又可以進行更進一步的分割
不過不在我們討論的範圍內

# 分割磁碟

# 查看磁碟
$ fdisk -l
/dev/sda1:EFI System
/dev/sda2:Linux(root)
/dev/sda3:Linux(home)
/dev/sda4:Swap

這邊我們可以看到我的磁碟分成四個分區
其中

  • sda1:EFI 分區
    • 建議大小:256MB (雙甚至多系統建議 512MB 甚至更高)
    • 類型為 EFI System
    • 這是系統開機所需的分區
  • sda2 和 sd3:作業系統分區
    • 建議大小:各自隨意
    • 類型為 Linux filesystem
    • 這是系統本身所需的分區
    • sda2:root 分區 系統會安裝在這裡 類似 C 槽
    • sda3:home 分區 用來放置個人資料 類似 D 槽
  • sda4:Swap 分區
    • 大小隨意 建議 2G 以上
    • 類型為 Linux swap
    • 非必要 基本上只有在系統記憶體不足時才會使用到

如果你的磁碟剛買 只有空空的一個分區
那就需要先分割磁碟

cfdisk /dev/sda

這邊我們使用 cfdisk 來分割磁碟

  • 選擇要分割的磁碟
  • 選擇要分割的分區
  • 選擇要分割的方式
    • New:新增分區
    • Delete:刪除分區
    • Edit:編輯分區
    • Write:寫入分區
    • Quit:離開分割磁碟介面

分割方式就如果上面所述的自己取捨大小即可
完成後就可以格式化分區了

# 磁碟格式化

接著就是格式化分區了
這邊我們使用 ext4 格式化作業系統分區

注意!!!如果你電腦是想裝多系統
而電腦裡本來就有 EFI 磁區 請不要格式化它
否則可能會導致電腦無法開機

# 格式化系統磁區
$ mkfs.ext4 /dev/sda2
$ mkfs.ext4 /dev/sda3
$ mkswap /dev/sda4
# 格式化 EFI 磁區
$ mkfs.fat -F32 /dev/sda1
# 掛載分區
$ mount /dev/sda2 /mnt
$ mount /dev/sda3 /mnt/home
$ swapon /dev/sda4

# 基本系統安裝及設定

# 安裝系統本體

我們使用 pacstrap 來安裝系統本體
還有一些基本的套件

$ pacstrap /mnt base base-devel linux linux-firmware

# 切換到新系統

接著就可以進到新系統裡面進行設定和安裝了
chroot 可以讓你切換根目錄
而 arch-chroot 除了有 chroot 的功能之外
還可以將一些前置設定帶入

$ arch-chroot /mnt

補充一些可能有人有疑問的點
我們本來在 usb 的 archiso 裡面 但系統是安裝在電腦的硬碟上的 所以需要切換
現在只是暫時從 usb 的 archiso 切換到電腦的硬碟上的 archlinux 而已
之後系統安裝完成後就不需要這樣進入了

# 設定時區

設定時區到台北

$ timedatectl set-timezone Asia/Taipei

讓系統自動調整時間

$ timedatectl set-ntp true

# 設定語言

/etc/locale.gen 裡面的 en_US.UTF-8 UTF-8zh_TW.UTF-8 UTF-8 前面的 # 去掉
這樣系統就會支援英文和繁體中文了

echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "zh_TW.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen
localectl set-locale en_US.UTF-8

# 設定主機名稱 (不重要啦)

$ echo "<你的名字(たきくん(X))>" >> /etc/hostname

# 設定 root 密碼

記得設定 root 密碼
不然之後會沒辦法登入系統

$ passwd

# 建立一般使用者

為之後作為日常使用的使用者設定一個帳號

$ useradd -m <使用者名稱>
$ passwd <使用者名稱>
# 加入 sudo 群組 (非必要 但個人電腦建議要)
$ usermod <your-user-name> -aG <your-group-name>

# 安裝 grub

接著我們安裝 grub
grub 是用來開機的一個引導程式
大致上功能就像學校電腦會看到的那個選擇系統的畫面
讓你不用一直進入 bios 選擇開機系統

# 下載套件
$ pacman -S grub efibootmgr os-prober

os-prober 是用來偵測其他系統的 例如 windows 可以用於裝多系統

# 安裝 grub

下載後要安裝和產生設定檔
當然這個設定檔是可以魔改的
不過我們這邊就先用預設的

$ grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
$ grub-mkconfig -o /boot/grub/grub.cfg

如果有裝多系統的話
輸入下面這行可以解鎖其他系統的引導

$ echo "GRUB_DISABLE_OS_PROBER=false" >> /etc/default/grub

設定完後再重新產生設定檔應該就可以讀到其他系統了

# 安裝網路管理套件

這邊我們安裝網路管理套件
我用的是 networkmanager

$ pacman -S networkmanager

# 退出 chroot

打上 exit 就可以退出 chroot 了
如果順利的話就可以關機了
之後重新開機並切換到硬碟上的 archlinux
應該就可以順利進入系統了

注意要切換到硬碟上的 archlinux 而不要一直進入 usb 上的 archiso 了

# 桌面環境設定

# 安裝桌面環境

我自己個人用的是 kde plasma
雖然我很討厭它的設計
但因為比較大眾的兩個之中
另一個更難用 所以 對 我選了 plasma
以後有能力再自己設計一個

安裝 KDE 的全家桶

$ pacman -S xorg-server plasma plasma-wayland-session kde-applications

# 安裝顯示卡驅動

這邊我們要安裝顯示卡驅動
我同時有 intel 和 nvidia 的顯示卡
所以我們要安裝兩個驅動 不然可能會出事

$ pacman -S xf86-video-intel
$ pacman -S nvidia nvidia-utils

# 設定啟用服務

接著我們要設定啟用的服務
之後開機時就會自動開啟這些程式

$ systemctl enable sddm
$ systemctl enable NetworkManager

# 進入圖形介面

如果上面的步驟都沒有問題的話
重開機後就可以進入圖形介面了

# 個人化設定

# 安裝字型

我個人比較喜歡 noto 字型
所以安裝一下吧

$ pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji

# 安裝輸入法

我自己是使用 rime 輸入法
可以自定義的東西很多
並且可以自己調教

$ pacman -S ibus-rime rime-bopomofo
$ ibus-daemon -drx --panel=/usr/lib/kimpanel-ibus-panel

有另一套基於 fcitx 的 rime 輸入法 那個我沒有試過 有興趣可以查一下

# 個人化

剩下就是一些比較零散的設定了
基本上就跟設定新手機或是新電腦一樣
自己去摸索吧

# 推薦套件

這邊推坑一些我自己用的軟體

# 瀏覽器

我使用 vivaldi 瀏覽器

# 編輯器

我通常使用 vscode
或者 tmux+neovim

# 套件管理器

yay 是一個非常強大的套件管理器
可以幫助你快速安裝套件

$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si

# 終端機

我自己使用的是 konsole

# 螢幕錄影

我直接用 obs 錄影 好爽喔

# 通訊軟體

discord 和 telegram 都有現成的 arch 套件可以裝
很方便吧

# 尋找適合你的套件

如果你不知道
可以去 google 搜尋 arch <套件名稱>
或者是直接到上搜尋
基本上可以搜尋到很多結果
可以幫助你找到適合你的套件
然後再自己使用
yay -S <套件名稱>pacman -S <套件名稱> 進行安裝

# 結語

這篇文章是我自己的安裝筆記
有些地方因為我早就會裝系統了
所以帶得很簡陋
我自己是從 2020 年底開始入坑 arch
一開始只是我想要一個 linux 環境做為開發環境
雖然有 server 和 nas 可以用
不過實在是受夠筆電上 windows 的體驗了
索性就入坑了 arch 神教

我自己第一次裝也是裝了 3 次才成功
第一次網路沒設定好 dhcp 抓不到
第二次沒設定好顯卡驅動
第三次雖然也有一些零碎的小問題
但因為主系統都差不多了
起碼不用整個重裝

目前也還有一些待解決問題

  • 不知道怎麼設定麥克風的輸入 收音好到一直收到雜音
  • 滑鼠的捲動超級慢 但就是找不到好的設定檔或軟體去解決
  • 想到再說

如果有什麼問題歡迎留言
有關於 dotfile 的部分在我的 github 上有一份
有問題可以發 issue 給我