ArchLinux 安裝小記

狗敦子發表於2024-09-14

筆者出於學習(折騰)原因想要改換 Linux 發行版,於是將目光投向大名鼎鼎的 ArchLinux。

ArchLinux 的安裝過程漫長且複雜,遂彙總成小記,以備日後參考。

小記中筆者共使用兩塊硬碟,一塊已含有 Windows10 分割槽,另一塊作為雙系統資料共享盤。


LiveCD

本小記略過燒錄映象的過程,筆者使用了 Rufus 將映象燒率進 U 盤,一個更流行的方法是使用 Ventoy 映象管理工具。

本段簡單列出將核心和軟體包寫入磁碟的步驟。

網路

這裡只給出使用無線網路的情況,如果目標機使用乙太網則略去 iwd 的步驟。但無論哪種情況,都請配置 NTP 時間。

iwctl

  • device list
  • station ANY_DEVICE scan
  • station ANY_DEVICE get-networks
  • station ANY_DEVICE connect ANY_SSID

timedatectl set-ntp true

分割槽

Windows 更新將會覆寫 EFI 分割槽導致 Linux 無法啟動,筆者這裡額外建立一個。

然後,建立 swap 分割槽,以便正常使用睡眠和休眠功能。

以 EFI 分割槽為 FAT32 格式,Linux 主分割槽為 ext4 格式初始化 fstab。

fdisk /dev/nvme0n1
mkfs.ext4 /dev/nvme0n1p5
mkfs.fat -F32 /dev/nvme0n1p4
mkswap /dev/nvme0n1p6

mount /dev/nvme0n1p5 /mnt
mkdir /mnt/efi
mount /dev/nvme0n1p4 /mnt/efi
genfstab -L /mnt >> /mnt/etc/fstab

軟體包

這一步配置軟體倉庫。

LiveCD 在 /etc/pacman.d/mirrorlist 自動測速並選擇映象源,稍後 mirrorlist 將會自動複製到待裝系統中。

筆者希望手動覆蓋該檔案從而採用南大的映象源,你也可以使用自己喜歡的映象源。

Server = https://mirrors.nju.edu.cn/archlinux/$repo/os/$arch

接下來向剛剛掛載的新檔案系統中匯入基礎軟體包與 fstab,ArchLinux 就安裝好了。

pacstrap /mnt base linux linux-firmware


ArchLinux

本段主要為新系統的配置。

arch-chroot /mnt

工具

網路支援 (如 NetworkManager) 是必須的,否則在稍後重啟系統時配置網路非常困難。

ntfs-3g 和 exfat-utils 提供掛載支援,便於我們建立雙系統共享盤。

pacman -S networkmanager
pacman -S ntfs-3g exfat-utils
pacman -S sudo vim

本地化

國內使用者一般使用上海時區。

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

筆者選擇自動生成語言配置:取消 /etc/locale.gen 中所有需要的語言的註釋,然後編輯新生成的語言配置 /etc/locale.conf,設定語言為你想要的語言,例子中為英語。

en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8

locale-gen

LANG=en_US.UTF-8

主機名

host 的配置在 /etc/hostname 和 /etc/hosts。

myhostname
127.0.0.1    localhost
::1          localhost
127.0.1.1    myhostname.localdomain    myhostname

引導

筆者採用 grub 進行引導。選擇 grub 的另一個目的是聯動另一個分割槽的 Windows Boot Manager,這樣便於我們在 grub 介面中自行選擇雙系統中的一個啟動。

如果你想要實現優雅的休眠/睡眠,需要對 grub 進行額外配置。具體的操作方法如下:

pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=ArchLinux

調整位於 /etc/grub.d/40_custom 的配置,將下面的 FS_UUID 替換為 Windows10 主分割槽的 UUID。如果你不知道分割槽的 UUID,可以使用 blkid 檢視。

if [ "${grub_platform}" == "efi" ]; then
    menuentry "Windows Boot Manager" {
        insmod part_gpt
        insmod fat
        insmod chain
        search --no-floppy --fs-uuid --set=root ANY_FS_UUID
        chainloader /EFI/Microsoft/Boot/bootmgfw.efi
    }
fi

編輯 /etc/default/grub,將下面的 SWAP_UUID 替換為 swap 分割槽的 UUID。這一步指引 ArchLinux 將休眠映象儲存至 swap 分割槽。

GRUB_CMDLINE_LINUX_DEFAULT - quiet
GRUB_CMDLINE_LINUX + acpi_backlight=vendor
GRUB_CMDLINE_LINUX + resume=UUID=ANY_SWAP_UUID

生成 grub.cfg。

grub-mkconfig -o /boot/grub/grub.cfg

在 /etc/fstab 中設定共享盤並開啟 swap 分割槽。

/dev/sda1       /home/goudunzii/data ntfs-3g defaults 0 0
/dev/nvme0n1p6  none             swap    defaults 0 0

swapon /dev/nvme0n1p6

啟動休眠功能的最後一步,我們需要編輯 /etc/mkinitcpio.conf,加入 resume 鉤子。這裡需要將 resume 欄位至少加在 udev 欄位之後。修改 root 密碼,然後重啟。

HOOK=(base udev ... resume)

mkinitcpio -P
passwd root
exit
umount -R /mnt
reboot

字型

重啟之後的一些工作需要在終端中進行,筆者希望替換一個對眼睛更加友好的 tty 字型。該配置位於 /etc/vconsole.conf。如果你的螢幕很大,也可以不進行這一步。

pacman -S terminus-font

FONT="ter-118b"

建立賬戶

下面的指令為例建立自己的賬戶並新增 sudoers。

useradd -m -s /bin/bash goudunz1
pacman -S sudo
passwd goudunz1

goudunz1 ALL=(ALL) ALL

多媒體

新系統的網路配置可以轉用 NetworkManager。

為了聲音和藍芽的正常工作,這裡還需要其它幾個軟體包。

systemctl enable NetworkManager
systemctl start NetworkManager
device wifi connect ANY_SSID password ANY_PASSWD

pacman -S alsa-utils alsa-plugins

pacman -S bluez bluez-utils
systemctl enable bluetooth

桌面

筆者建議在安裝桌面之前先自查顯示卡驅動。

  • OPENGL mesa
  • vega6(AMD) xf86-video-amdgpu
  • Intel xf86-video-intel
  • Nvidia xf86-video-nouveau

以基於 X Server 的 KDE 為例:

在安裝完需要的軟體包後,你可以透過 Desktop Manager (如 sddm),聯動 KDE 啟動,也可以採用如下操作手動配置 X Server 和 KDE。

pacman -S xorg xorg-xinit
pacman -S plasma-meta kde-utilities dolphin

goudunz1$ cp /etc/X11/xinit/xinitrc ~/.xinitrc

將 ~/.xinitrc 最後一大塊測試用的程式碼去掉,換成下面的程式碼。然後編輯 ~/.bash_profile,這將使得 tty1 登陸時啟動 X Server,再由 X Server 聯動KDE。

export DESKTOP_SESSION=plasma
exec startplasma-x11
if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
  exec startx
fi

當然筆者也嘗試過使用 sddm,只需一條指令。

systemctl enable sddm

在 KDE 上啟動藍芽還需以下兩個額外的軟體包。

pacman -S pulseaudio-bluetooth pulseaudio-alsa

電源管理

可以使用 tlp 最佳化 ArchLinux 對電源的管理。

pacman -S tlp tlp-rdw
systemctl enable tlp
systemctl start tlp
systemctl mask systemd-rfkill
systemctl mask systemd-rfkill.socket

輸入法

以 fcitx5-rime 為例:

安裝軟體包後,還需要配置 fcitx5 的自啟動和環境變數 (在 ~/.xprofile 中)。

pacman -S fcitx5-im fcitx5-rime wqy-microhei

export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS=@im=fcitx5

goudunz1$ mkdir ~/.config/autostart
goudunz1$ cp /usr/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart/

在 ~/.local/share/fcitx5/rime/default.custom.yaml 中對 rime 配置新增 patch 以實現首選明月拼音簡化字。

patch:
  schema_list:
    - schema: luna_pinyin_simp
    - schema: luna_pinyin

參考

  • https://wiki.archlinux.org/title/Installation_guide
  • https://mirrors.nju.edu.cn/help/archlinux
  • https://github.com/fcitx/fcitx-rime

24年9月 於清水灣

相關文章