以下內容是寫給有希看的安裝筆記。
確認啓動模式
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/mmcblk0
。fdisk /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
參考來源: