本文以 UEFI + GPT + 单硬盘 + 非加密 + Btrfs + GRUB 为例。若使用 Legacy BIOS、LUKS 加密、多硬盘、Secure Boot 或其他文件系统,需要按对应 ArchWiki 页面调整分区、initramfs 和引导配置。
设置live环境字体(可选)
1 | setfont ter-132b |
启动ssh服务(可选)
1 | passwd |
网络设置
有线连接
1
ping www.archlinux.org
无线连接
通过iwctl连接无线网1
2
3
4
5
6iwctl
device list
station wlan0 scan
station wlan0 get-networks
station wlan0 connect SSID
quit检查系统时间
1
timedatectl
磁盘分区
利用cfdisk给磁盘分区
本文示例分区如下,实际安装前需要确认自己的磁盘名称和容量。
挂载点 分区 大小建议 类型 /efi/dev/nvme0n1p1256MiB EFI System //dev/nvme0n1p2剩余空间 Linux filesystem 1
2
3lsblk -f # 查看逻辑驱动器详情
cfdisk /dev/nvme0n1 # 修改磁盘分区布局
fdisk -l /dev/nvme0n1 # 查看修改后的分区格式化相关分区
1
2
3
4
5
6
7
8
9
10
11
12
13
14# EFI 全新安装则格式化 EFI 分区;如果是和 Windows 共用已有 EFI 分区则只挂载不格式化
mkfs.vfat -F 32 /dev/nvme0n1p1
fatlabel /dev/nvme0n1p1 EFI
# system
mkfs.btrfs -f -L ARCH /dev/nvme0n1p2 # 格式化
mount -t btrfs /dev/nvme0n1p2 /tmp
btrfs subvolume create /tmp/@ # 挂载状态下创建子卷
btrfs subvolume create /tmp/@home # 挂载状态下创建子卷
btrfs subvolume create /tmp/@var_log
btrfs subvolume create /tmp/@var_cache
btrfs subvolume create /tmp/@tmp
btrfs subvolume create /tmp/@swap
umount /tmp挂载相关分区
1
2
3
4
5
6
7
8
9
10
11
12
13
14mount -o subvol=@,compress=zstd:3 /dev/nvme0n1p2 /mnt
mkdir /mnt/home
mount -o subvol=@home,compress=zstd:3 /dev/nvme0n1p2 /mnt/home
mkdir -p /mnt/var/log
mount -o subvol=@var_log,compress=zstd:3 /dev/nvme0n1p2 /mnt/var/log
mkdir -p /mnt/var/cache
mount -o subvol=@var_cache,compress=zstd:3 /dev/nvme0n1p2 /mnt/var/cache
mkdir /mnt/tmp
mount -o subvol=@tmp,compress=zstd:3 /dev/nvme0n1p2 /mnt/tmp
chmod 1777 /mnt/tmp
mkdir /mnt/efi
mount /dev/nvme0n1p1 /mnt/efi
mkdir /mnt/swap
mount -o subvol=@swap /dev/nvme0n1p2 /mnt/swap
安装系统
换源
1
nvim /etc/pacman.d/mirrorlist
1
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
安装基础包
1
pacstrap -K /mnt base linux linux-firmware-intel base-devel neovim btrfs-progs dosfstools networkmanager sudo man-db man-pages texinfo sof-firmware
生成分区表
1
2genfstab -U /mnt >> /mnt/etc/fstab
cat /mnt/etc/fstab进入新系统
1
arch-chroot /mnt
设置时区
1 | ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime |
windows和linux时间同步,将windows时间同步为UTC,并手动禁用自动更新时间
1 reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f
设置语言
1 | nvim /etc/locale.gen # 取消注释 en_US.UTF-8 UTF-8 zh_CN.UTF-8 UTF-8 |
设置主机名
1 | echo laptop-arch > /etc/hostname |
设置hosts
1 | nvim /etc/hosts |
1 | 127.0.0.1 localhost |
生成initramfs
普通睡眠 suspend 通常无需额外配置;若需要休眠 hibernate 或混合睡眠,则需要配置 swap 的恢复位置。使用 busybox-based initramfs 时,在 /etc/mkinitcpio.conf 的 HOOKS 中添加 resume 并放在 udev 之后;使用 systemd-based initramfs 时,通常不需要额外添加 resume hook。
安装微码后,确认 HOOKS 中包含 microcode,然后重新生成 initramfs。
1 | pacman -S intel-ucode efibootmgr |
创建swap file
1 | btrfs filesystem mkswapfile --size 4g --uuid clear /swap/swapfile |
若需要休眠,记录 Btrfs 分区的 UUID 和 swapfile 的恢复偏移量,后面写入 GRUB 内核参数。
1 | findmnt -no UUID -T /swap/swapfile |
设置root用户密码
1 | passwd |
安装引导程序
设备开机需利用引导程序来进行加载,可选 grub2(需自行安装) 或systemd-boot(systemd自带)
1 | pacman -S grub os-prober # os-prober 可检测已安装的win系统 |
新建用户
1 | useradd -mG wheel mnsd |
取消挂载分区
1 | systemctl enable NetworkManager.service |
重新启用网络
如果安装时没有启用 NetworkManager.service,启动网络服务
1 | sudo systemctl enable --now NetworkManager.service |
连接wi-fi
1 | nmtui |
测试网络连通
1 | ping www.archlinux.org |
添加快照支持
安装 snapper
1 | sudo pacman -S snapper |
创建配置文件
1 | sudo snapper -c root create-config / |
新建快照
1 | sudo snapper -c root create --description "install done!" |
安装必要软件
添加
archlinuxcn源1
sudo nvim /etc/pacman.conf # 去掉color注释,添加archlinuxcn源
1
2[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch1
2sudo pacman -Sy archlinuxcn-keyring
sudo pacman -Syu签名密钥失败
新系统若无法安装
archlinuxcn-keyring,优先手动信任 archlinuxcn 的 key,再重新安装 keyring。1
2sudo pacman-key --lsign-key "farseerfc@archlinux.org"
sudo pacman -Sy archlinuxcn-keyringPGP签名错误
这个错误表明
archlinuxcn-keyring包的PGP签名受到了信任级别的限制。在Arch Linux系统上,为了确保软件包的完整性和安全性,软件包管理器(例如Pacman)使用PGP签名进行验证。在这种情况下,签名的信任级别被认为是边缘信任(marginal trust)。解决方法:
- 手动信任 archlinuxcn key
1
sudo pacman-key --lsign-key "farseerfc@archlinux.org"
- 重新安装 keyring 并更新系统
1
2sudo pacman -Sy archlinuxcn-keyring
sudo pacman -Syu - 仍失败时再手动导入对应密钥
1
gpg --recv-keys <密钥ID>
- 手动信任 archlinuxcn key
安装桌面环境
下面三种方案任选其一即可,不要同时启用多个显示管理器。
GNOME
1
2sudo pacman -S gnome kitty
sudo systemctl enable --now gdmKDE Plasma
1
2sudo pacman -S plasma-meta kde-applications-meta sddm konsole dolphin
sudo systemctl enable --now sddmniri
niri是 Wayland 合成器,不是完整桌面环境。这里使用dms-shell-niri提供一套相对完整的桌面 shell。1
2
3
4
5
6sudo pacman -S niri xwayland-satellite alacritty xdg-desktop-portal-gnome xdg-desktop-portal-gtk
sudo pacman -S paru
paru -S dms-shell-niri
sudo pacman -S xwayland-satellite xdg-desktop-portal-gtk xdg-desktop-portal-gnome
sudo pacman -S dgop matugen i2c-tools cava qt6-multimedia-ffmpeg
systemctl --user add-wants niri.service dms安装
display manager1
2
3paru -S greetd-dms-greeter-git
dms greeter enable
dms greeter syncdsearch1
2paru -S dsearch-bin
dsearch index generateenvironment variables1
nvim ~/.config/niri/config.kdl
1
2
3
4
5environment {
QT_QPA_PLATFORM "wayland"
QT_QPA_PLATFORMTHEME "gtk3"
ELECTRON_OZONE_PLATFORM_HINT "auto"
}安装必要软件及驱动
官方仓库:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16sudo pacman -S adobe-source-han-serif-otc-fonts # 思源宋体
sudo pacman -S noto-fonts-emoji # emoji表情
sudo pacman -S bluez bluez-utils # 蓝牙
sudo pacman -S zsh # shell
sudo pacman -S proxychains-ng
sudo pacman -S ffmpeg vlc
sudo pacman -S flameshot # 截屏
sudo pacman -S obs-studio # 录屏
sudo pacman -S ffmpegthumbnailer # 视频缩略图依赖
sudo pacman -S fcitx5 fcitx5-chinese-addons fcitx5-configtool
sudo pacman -S yazi tree
sudo pacman -S drawio-desktop # 流程图archlinuxcn 或 AUR:
1
2
3
4
5sudo pacman -S paru # AUR助手
paru -S clash-for-windows
paru -S typora
paru -S google-chrome-stable
paru -S drawio-desktop-bin
备份与恢复
1 | sudo pacman -Qqen > packages-repository.txt # 备份官方仓库安装的包 |