Re:從零開始的 Arch Linux 生活

2020-08-04

以下內容是寫給有希看的安裝筆記。

確認啓動模式

ls /sys/firmware/efi/efivars 有結果就是 UEFI,反之是 BIOS 或者 CSM。其實 tab 不能補全就能斷定不是 UEFI。

連結網絡

如果是有網線連結路由,輸入 dhcpcd 來獲取 IP 地址。看萌狼的博客得知,原來 netctl 在 2020 年 7 月被 iwctl 取代了,wifi-menu 無法使用。iwd 的操作照搬狼寫的(做了簡繁轉換):


# iwctl 命令來進入 iwd 的 shell。
root@archiso ~ # iwctl
# 以下的操作都在 iwctl 的 shell 中,輸入 help 來獲得可用的命令。
[iwd]# help
# 列出無線網絡設備
[iwd]# device list
# 用所指定的設備掃描網絡(用上一步的設備名稱替換 device)
[iwd]# station device scan
# 或者列出所有的網絡
[iwd]# station device get-networks
# 連接到網絡, SSID 就是汝要連接的網絡的 SSID 啦
[iwd]# station device connect SSID
# 如果所連接的網絡需要密碼,則接下來會提示輸入,汝當然也可以直接在 iwctl 命令中輸入
root@archiso ~ # iwctl --passphrase passphrase station device connect SSID

ping archlinux.org

更新系統時間


timedatectl set-ntp true
timedatectl status

分割硬盤

用過 fdisk -l 查看要安裝系統是哪個硬盤。如,/dev/sda, /dev/nvme0n1/dev/mmcblk0fdisk /dev/nvme0n1 進入到硬盤裡操作。

EFI/GPT 方式引導需要創建引導分區。如果是全新的硬盤,需要先傳教一個 gpt 的分區表。n 創建一個新分區(512M)後,更改分區類型爲 EFI。保存分區表。

再輸入 mkfs.fat -F32 /dev/nvme0n1p1

BIOS/MBR 方式引導,同樣輸入 fdisk /dev/nvme0n1 進入,o 創建 MBR 分區表。創建根分區……格式化剛才創建的根分區 mkfs.ext4 /dev/nvme0n1p2

如果需要使用 LUKS 對硬盤進行加密,則先劃出一塊 /boot 分區,硬盤剩下的空間則將會被加密。參考 LUKS on a partition 的分區參考佈局


+-----------------------+------------------------+-----------------------+
| Boot partition        | LUKS2 encrypted system | Optional free space   |
|                       | partition              | for additional        |
|                       |                        | partitions to be set  |
| /boot                 | /                      | up later              |
|                       |                        |                       |
|                       | /dev/mapper/cryptroot  |                       |
|                       |------------------------|                       |
| /dev/nvme0n1p1        | /dev/nvme0n1p2         |                       |
+-----------------------+------------------------+-----------------------+

給需要加密的分區進行加密操作和掛載,爲了保證 passphrase 的有足夠,參考 EFF 在 2016 年給出的 random passphrases,通過投擲骰子 5 次取得一個單詞,根據個人需求進行多組投擲,得到的一組單詞作爲加密密碼。


cryptsetup -y -v luksFormat /dev/nvme0n1p2
cryptsetup open /dev/nvme0n1p2 cryptroot
mkfs.ext4 /dev/mapper/cryptroot
mkfs.ext4 /dev/nvme0n1p1

mount /dev/mapper/cryptroot /mnt
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot

掛載分區


mount /dev/nvme0n1p2 /mnt
# 如果是 EFI/GPT 方式引導,額外需要進行下面操作
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot

更換鏡像源


vim /etc/pacman.d/mirrorlist
#保存退出後順便更新一下
pacman -Syu

安裝基本系統

如果通過無線連結網絡,需要安裝 iwd


pacstrap /mnt base base-devel linux linux-firmware vim e2fsprogs iwd

配置 fstab


genfstab -U /mnt >> /mnt/etc/fstab
cat /mnt/etc/fstab

如果是 EFI/GPT 方式引導,要注意引導分區是否掛載到 boot 目錄。

Chroot 進入系統


arch-chroot /mnt

設置時區、本地化、網絡等等……


ln -sf /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime
hwclock --systohc

vim /etc/locale.gen
#取消以下註釋
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8 
zh_HK.UTF-8 UTF-8 
zh_TW.UTF-8 UTF-8

#後,輸入
locale-gen

#本地化選項
echo LANG=en_US.UTF-8 > /etc/locale.conf

#主機名
echo myhostname > /etc/hostname

vim /etc/hosts
127.0.0.1 localhost
::1       localhost
127.0.1.1 myhostname.localdomain  myhostname

#root密碼
passwd

安裝 grub


#os-prober在雙系統是才選擇安裝
pacman -S grub os-prober

#爲加密的分區修改 grub
## /etc/default/grub
GRUB_CMDLINE_LINUX="cryptdevice=/dev/nvme0n1p2:cryptroot"
## /etc/mkinitcpio.conf
HOOKS=(base udev autodetect modconf block encrypt filesystems keyboard fsck)
mkinitcpio -p linux

#BIOS/MBR
grub-install --target=i386-pc /dev/nvme0n1

#EFI/GPT
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub --recheck

#生成必要的配置文件
grub-mkconfig -o /boot/grub/grub.cfg

新建用戶


useradd -m -G wheel yuki
passwd yuki

#讓 yuki 可以 sudo
EDITOR=nano visudo
#取消註釋
%wheel ALL=(ALL) ALL

安裝桌面環境等


pacman -S xorg plasma sddm kde-applications networkmanager

systemctl enable sddm.service
systemctl enable NetworkManager.service

配置字體

安裝完 ttf-roboto noto-fonts noto-fonts-cjk adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts ttf-dejavu 字體後,修改 /etc/fonts/local.conf 文件(參考文檔):

配置 Touchpad

sudo vim /etc/X11/xorg.conf.d/30-touchpad.conf


Section "InputClass"
    Identifier "touchpad"
    Driver "libinput"
    MatchIsTouchpad "on"
    Option "Tapping" "on"
    Option "NaturalScrolling" "true"
EndSection

安裝輸入法

安裝 ibus-rime 和 rime-cantonese。給 ~/.xprofile 寫入


export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
ibus-daemon -x -d

添加 Arch Linux 中文社區倉庫


#在 /etc/pacman.conf 文件末尾添加以下兩行
[archlinuxcn]
Server = https://repo.archlinuxcn.org/$arch

#同步更新,安裝…
sudo pacman -Syy
sudo pacman -S archlinuxcn-keyring archlinuxcn-mirrorlist-git

參考來源:

  1. Arch Linux Installation Guide
  2. 给 GNU/Linux 萌新的 Arch Linux 安装指南 rev.B
  3. 以官方 Wiki 的方式安装 Arch Linux
  4. dm-crypt/Encrypting an entire system