Arch Linux 官方安装与完善指南
我结合自己直接阅读 Archlinux Wiki 的习惯和一些软件的使用习惯让 gpt-5.6 老师给我写了这一篇文档。我看了下总地来说没有什么问题,就是 GPT 老师太喜欢用 nano 了,然而我是一个 vim/neovim 的忠实簇拥,所以我把它们全部改成了 neovim。我最近正在研究一些其他的桌面解决方案,比如 Hyprland、Niri 以及 Quickshell,如果有成果了我也会手写几篇文档丢上来的(拖延中...)。当然我后续可能还会写一些美化方案,我自己用得非常舒服,包括 oh-my-zsh, AstroVim/LazyVim 等,以及我最喜欢的 Catppuccin 配色在个各方面的使用。
就这样,希望你读得愉快!
本文面向 x86-64 实机与虚拟机,以 ArchWiki Installation guide 为主轴,补充网络、NTP、引导器、微码、桌面环境、图形、音频、安全、维护与救援等实操环节。
这是对官方资料的中文整理,不替代实时 ArchWiki。Arch Linux 是滚动发行版;执行前请再次核对软件包、命令参数和最佳实践。
分区、格式化、加密、引导器安装和 dd 可能立即破坏数据。文中的 /dev/nvme0n1、/dev/sda、分区号、UUID、用户名、主机名和时区均为示例,必须替换为本机实际值;不要整页复制命令后直接执行。
UEFI + GPT + ext4 + systemd-boot + NetworkManager + systemd-timesyncd + PipeWire + GNOME/KDE Plasma 二选一。
GRUB、传统 BIOS、Btrfs、LUKS、systemd-networkd、dhcpcd、Xorg 和无桌面服务器均在正文提供分支说明。
1. 先理解 Arch 的安装边界#
Arch 官方安装指南的目标是建立一个可以启动的最小基础系统。它不会替你决定桌面环境、显示管理器、网络管理器、音频栈、输入法、字体、防火墙或备份方案。
因此,“安装完成”至少有三个层级:
- 最小系统完成:可以启动到 TTY,以 root 或普通用户登录。
- 可用系统完成:网络、时间同步、sudo、图形、音频、字体和输入设备可用。
- 可维护系统完成:理解完整升级、官方新闻、
.pacnew、服务、日志、备份与救援。
Arch 的核心不是“命令越少越好”,而是你知道每个组件由谁提供、由哪个服务启动、配置文件放在哪里,以及出问题时从哪里查。
1.1 本文中的命令提示符#
$ command:普通用户执行,不输入$。# command:root 执行,不输入#。<PLACEHOLDER>:必须替换。/dev/nvme0n1p1、/dev/sda1:只是示例。enp3s0、wlan0:网卡名称示例。Asia/Shanghai:时区示例;在日本可改为Asia/Tokyo。
1.2 不要混用的组件#
以下组件通常是“同类二选一或多选一”,不是装得越多越好:
| 功能 | 常见选择 | 原则 |
|---|---|---|
| 网络管理 | NetworkManager / systemd-networkd / dhcpcd | 同一接口只交给一个管理器 |
| 显示管理器 | GDM / SDDM / LightDM | 通常只启用一个 |
| 引导器 | systemd-boot / GRUB / rEFInd 等 | 根据固件与磁盘布局选择 |
| 音频服务器 | PipeWire / PulseAudio | 新桌面通常选择 PipeWire |
| 输入法框架 | Fcitx 5 / IBus | 通常只使用一个 |
| 电源管理 | power-profiles-daemon / TLP | 先检查桌面集成与冲突 |
| 防火墙前端 | firewalld / ufw / 直接 nftables | 选择一个管理入口 |
2. 安装前决策表#
安装前把下面内容写下来。纸质存档时可直接填写。
2.1 机器与固件#
- 机器型号:
____________________________ - CPU:Intel / AMD
- GPU:Intel / AMD / NVIDIA / 混合显卡
- 内存:
________ GiB - 固件启动模式:UEFI / BIOS
- Secure Boot:启用 / 已禁用 / 计划安装后配置
- 是否双系统:否 / Windows / 其他 Linux
- 目标磁盘:
____________________________ - 已完成离线备份:是 / 否
2.2 系统方案#
- 根文件系统:ext4 / Btrfs / XFS / 其他
- 是否全盘加密:否 / LUKS
- Swap:无 / 分区 / 文件 / zram
- 休眠到磁盘:需要 / 不需要
- 引导器:systemd-boot / GRUB / 其他
- 网络管理:NetworkManager / systemd-networkd / dhcpcd
- 桌面环境:GNOME / KDE Plasma / Xfce / 无
- 显示管理器:GDM / SDDM / LightDM / 无
- 音频:PipeWire
- 输入法:Fcitx 5 / IBus / 无
2.3 重要设计关系#
UEFI 与 ESP#
UEFI 机器需要 EFI System Partition(ESP),文件系统通常为 FAT32。已有 Windows 的机器通常已经存在 ESP。复用现有 ESP 时不要格式化它。
systemd-boot 与挂载点#
systemd-boot 只能从 ESP 或 XBOOTLDR 读取启动文件。最容易理解的主线是将 ESP 挂载到 /boot,让内核、initramfs 和 loader 文件都位于 ESP。
GRUB 与挂载点#
GRUB 更灵活。常见布局是:
- 根文件系统中的
/boot - ESP 挂载到
/efi或/boot/efi
加密与休眠#
LUKS、Btrfs、LVM、休眠和 Secure Boot 会共同影响 initramfs、内核参数和引导器配置。不要先按普通方案安装完,再临时拼接几个参数。需要这些功能时,先阅读对应官方页面并按一套完整方案实施。
3. 获取并验证安装镜像#
官方入口:
下载:
- ISO 镜像
- 对应的 PGP 签名
.sig - 可选:校验和文件
3.1 使用 GnuPG 验证#
在 ISO 与签名所在目录:
gpg --keyserver-options auto-key-retrieve \
--verify archlinux-<VERSION>-x86_64.iso.sig \
archlinux-<VERSION>-x86_64.iso已有 Arch 系统时可使用:
pacman-key -v archlinux-<VERSION>-x86_64.iso.sig验证的意义不是“文件能否解压”,而是确认镜像由受信任的 Arch 发布密钥签名且内容未被修改。
3.2 校验 SHA256#
sha256sum archlinux-<VERSION>-x86_64.iso把输出与下载页公布的值逐字符比较。
签名文件与镜像如果来自同一个被劫持的非官方站点,单纯“二者匹配”不等于可信。下载入口、发布密钥指纹和签名链都应来自可信的 Arch 官方渠道。
4. 制作安装介质并启动#
官方参考:
4.1 Linux 下使用 dd#
先识别 U 盘整盘设备:
lsblk -o NAME,SIZE,MODEL,TRAN,MOUNTPOINTS卸载其分区,然后写入整盘,不是某个分区:
sudo dd bs=4M \
if=archlinux-<VERSION>-x86_64.iso \
of=/dev/sdX \
conv=fsync \
status=progress完成后:
syncof=/dev/sdX 写错会覆盖其他磁盘。不要写成你猜测的盘符;每次都用 lsblk 核对型号和容量。
4.2 Windows 与 macOS#
按 ArchWiki 的 USB 安装介质页面选择官方列出的工具或原始镜像写入方式。不要把 ISO 当普通文件复制到空 U 盘后期待它自动可启动。
4.3 固件设置#
- 现代机器优先用 UEFI 模式启动。
- 如果要按 UEFI 安装,不要从兼容模式或 CSM 启动安装介质。
- 官方安装镜像本身通常不能直接在 Secure Boot 开启状态下启动;安装阶段可能需要先关闭 Secure Boot。
- SATA 模式通常使用 AHCI。已经安装 Windows 的机器不要随意切换,否则 Windows 可能无法启动。
- 关闭主板的 Fast Boot 有时有助于识别 USB 和进入固件菜单。
- Windows 双系统应区分 Windows 的“快速启动/混合关机”和主板 Fast Boot;前者可能让 NTFS 保持休眠状态。
5. Live 环境基础设置#
启动后一般直接进入 root shell。
5.1 确认启动模式#
cat /sys/firmware/efi/fw_platform_size常见输出:
64:64 位 UEFI32:32 位 UEFI- 文件不存在:可能以 BIOS/CSM 模式启动
也可检查:
ls /sys/firmware/efi/efivars如果计划安装 UEFI 引导器但这里不存在,应重启并从 UEFI 项进入安装介质。
5.2 键盘布局#
列出键盘映射:
localectl list-keymaps加载示例:
loadkeys us中文用户通常仍使用美式键盘布局;输入中文由图形环境中的输入法框架负责。
5.3 控制台字体#
列出字体:
ls /usr/share/kbd/consolefonts加载较大字体示例:
setfont ter-132n控制台字体与桌面字体是两套系统。这里的设置不会自动变成 GNOME 或 KDE 的字体。
5.4 检查硬件#
lspci -k
lsusb
lsblk -f
ip link
rfkill检查内核日志中的错误:
dmesg -T | less6. 联网、DHCP、DNS 与 NTP#
官方参考:
6.1 先理解四个层次#
联网成功至少包含:
- 链路可用:网卡已启用,网线或 Wi-Fi 已关联。
- 地址配置:通过 DHCP 或静态配置获得 IP、网关。
- 路由可用:默认路由指向正确网关。
- 名称解析可用:DNS 可以把域名解析为 IP。
所以“能 ping 网关但不能 ping 域名”通常是 DNS,不一定是网卡或 DHCP。
6.2 有线网络#
Arch ISO 通常可以自动通过 DHCP 配置有线网络。检查:
ip addr
ip route测试 IP 连通性:
ping -c 3 1.1.1.1测试 DNS:
ping -c 3 archlinux.org查看解析状态:
resolvectl status6.3 Wi-Fi:iwctl#
查看设备:
iwctl device list进入交互式界面:
iwctl在 iwctl 中:
device list
station <DEVICE> scan
station <DEVICE> get-networks
station <DEVICE> connect <SSID>
exit也可直接执行:
iwctl --passphrase '<PASSWORD>' station <DEVICE> connect '<SSID>'公共网络若有网页登录认证,连接 Wi-Fi 后仍可能不能访问互联网,需要浏览器完成 portal 登录。
6.4 射频开关#
rfkill list
rfkill unblock wifi硬件飞行模式开关处于关闭状态时,软件解锁可能无效。
6.5 检查 DHCP 结果#
ip -brief address
ip route典型默认路由形态:
default via 192.168.1.1 dev wlan0DHCP 一般提供:
- IPv4/IPv6 地址
- 前缀或子网掩码
- 默认网关
- DNS 服务器
- 租约时间
- 可选的搜索域、NTP 等信息
6.6 时间同步#
检查:
timedatectl启用网络时间同步:
timedatectl set-ntp true再次检查:
timedatectl status
timedatectl timesync-status正确时间对 TLS、软件包签名和日志排序非常重要。时间严重错误时,HTTPS 和密钥验证可能出现看似“网络故障”的错误。
7. 识别磁盘与设计分区#
官方参考:
7.1 识别设备#
lsblk -o NAME,PATH,SIZE,TYPE,FSTYPE,FSVER,LABEL,UUID,MOUNTPOINTS,MODEL
fdisk -l常见名称:
- SATA/SAS/USB:
/dev/sda - NVMe:
/dev/nvme0n1 - NVMe 分区:
/dev/nvme0n1p1 - SATA 分区:
/dev/sda1 - eMMC:
/dev/mmcblk0
不要仅凭 sda/sdb 顺序判断。拔插设备、固件和内核枚举顺序都可能改变。
7.2 推荐分区工具#
fdisk:命令式,适合 GPT/MBR。cfdisk:终端菜单,更直观。parted:脚本化与高级用途。gdisk:GPT 专用工具之一。
启动示例:
fdisk /dev/nvme0n17.3 UEFI 单系统示例#
| 分区 | 大小示例 | 类型 | 文件系统 | 挂载点 |
|---|---|---|---|---|
| ESP | 1–2 GiB | EFI System | FAT32 | /boot |
| Root | 剩余空间 | Linux filesystem | ext4 | / |
| Swap | 可选 | Linux swap | swap | 无目录挂载 |
说明:
- ESP 的具体大小取决于是否存放多个内核、fallback initramfs、UKI 和其他系统的 EFI 文件。
- 1–2 GiB 是便于长期维护的实践值,不是所有机器的唯一标准。
- 若使用现有 Windows ESP,应先确认剩余空间,不要格式化。
- 不一定需要单独
/home。单独分区方便重装,但也会带来固定容量分配问题。
7.4 Windows 双系统示例#
保留:
- Microsoft Reserved Partition
- Windows 分区
- Windows Recovery 分区
- 已有 ESP
在 Windows 中先:
- 关闭快速启动。
- 用 Windows 磁盘管理压缩 Windows 分区。
- 留出未分配空间。
- 完整关机。
在 Arch Live 中只在未分配空间创建 Linux 分区。复用 ESP 时:
# 只挂载,不执行 mkfs.fat
mount /dev/<EXISTING_ESP> /mnt/boot7.5 BIOS + GPT#
传统 BIOS 在 GPT 磁盘上使用 GRUB 时通常需要一个很小的 BIOS boot partition,并设置对应分区类型。该分区不格式化、不挂载,只给 GRUB 嵌入核心映像。
7.6 文件系统选择#
ext4#
适合希望简单、成熟、维护路径清晰的系统。本文主线使用 ext4。
Btrfs#
提供子卷、校验、压缩、发送/接收与快照能力,但需要理解:
- 子卷布局
- 挂载选项
- 快照边界
- 引导器与回滚
- Swap 文件限制
- 多设备与 RAID 模式的具体支持状态
参考:Btrfs
XFS#
适合特定大文件与服务器负载,但不能像 ext4 那样在线缩小。安装前先确认未来容量调整需求。
7.7 加密#
完整系统加密不要只执行一句 cryptsetup luksFormat 就继续普通教程。需要同时设计:
- ESP 是否未加密
- 根分区、Swap、休眠映像
- LVM 或 Btrfs 的位置
mkinitcpiohooks- 内核参数
- 密钥文件与 TPM
- Secure Boot 与 UKI
官方入口:
8. 创建文件系统、Swap 与挂载#
下列格式化命令会清除目标分区。先运行 lsblk -f,逐项核对设备、容量和现有文件系统。
假设:
- ESP:
/dev/nvme0n1p1 - Root:
/dev/nvme0n1p2 - Swap:
/dev/nvme0n1p3
8.1 格式化 ESP#
仅适用于新建 ESP:
mkfs.fat -F 32 /dev/nvme0n1p1复用 Windows ESP 时不要执行。
8.2 格式化根分区#
mkfs.ext4 /dev/nvme0n1p2可设置标签:
e2label /dev/nvme0n1p2 ArchRoot8.3 创建 Swap 分区#
mkswap /dev/nvme0n1p3
swapon /dev/nvme0n1p3确认:
swapon --show
free -h8.4 挂载#
挂载根:
mount /dev/nvme0n1p2 /mnt创建并挂载 ESP 到 /boot:
mount --mkdir /dev/nvme0n1p1 /mnt/boot检查:
findmnt /mnt
lsblk -f8.5 单独 home 分区#
mount --mkdir /dev/<HOME_PARTITION> /mnt/home8.6 Btrfs 提醒#
若使用 Btrfs 子卷,应先创建子卷,再用规划好的挂载选项把所有子卷挂到 /mnt 下。genfstab 只记录当前真实挂载结构;挂错后生成的 fstab 也会跟着错。
9. 镜像源与 pacman 基础#
官方参考:
查看当前镜像:
sed -n '1,80p' /etc/pacman.d/mirrorlist9.1 使用 reflector#
示例:筛选近期同步、支持 HTTPS 的镜像并按速率排序:
reflector \
--latest 20 \
--protocol https \
--sort rate \
--save /etc/pacman.d/mirrorlist按国家或地区筛选示例:
reflector \
--country Japan,Singapore \
--age 24 \
--protocol https \
--sort rate \
--save /etc/pacman.d/mirrorlist注意:
- 地理距离不等于实际速度。
- 只追求测速最快,可能选到同步状态不佳的镜像。
- 镜像列表顺序很重要,pacman 通常优先尝试前面的服务器。
- 校园网、运营商与跨境网络会显著影响结果。
9.2 安装阶段的更新原则#
Arch 不支持部分升级。正常维护使用:
pacman -Syu不要把以下命令当日常安装方式:
pacman -Sy <PACKAGE>它只刷新数据库后安装少数包,可能让本地系统处于“新数据库 + 旧依赖”的不一致状态。
10. 安装基础系统#
官方安装指南当前主线命令:
pacstrap -K /mnt base linux linux-firmware含义:
-K:在目标系统初始化独立 pacman keyring。base:基础用户空间。linux:标准内核,可换成其他官方内核。linux-firmware:常见硬件固件。
10.1 实用的桌面安装包集合#
pacstrap -K /mnt \
base \
linux \
linux-firmware \
base-devel \
sudo \
networkmanager \
neovim \
man-db \
man-pages \
texinfo根据 CPU 加入微码包:
Intel:
pacstrap -K /mnt intel-ucodeAMD:
pacstrap -K /mnt amd-ucode也可以在一条命令中安装。
10.2 可选内核#
linux:标准内核linux-lts:长期支持内核linux-zen:面向桌面交互与特定调度偏好的内核linux-hardened:安全加固取向
安装多个内核时,应确保引导器中每个内核都有可启动项,并保留对应 initramfs。
10.3 额外文件系统工具#
按实际文件系统安装:
pacstrap -K /mnt dosfstools e2fsprogsBtrfs:
pacstrap -K /mnt btrfs-progsXFS:
pacstrap -K /mnt xfsprogsNTFS 数据盘:
pacstrap -K /mnt ntfs-3g10.4 虚拟机#
虚拟机是否需要 linux-firmware、微码、Guest Tools,取决于虚拟化平台。微码由物理宿主机更新,虚拟机通常不负责更新宿主 CPU 微码。
11. 生成并检查 fstab#
生成:
genfstab -U /mnt >> /mnt/etc/fstab查看:
cat /mnt/etc/fstab-U 使用 UUID,通常比 /dev/sda1 这类易变化名称稳定。
11.1 必须检查#
- 根分区是否挂到
/ - ESP 是否挂到规划的
/boot、/efi或/boot/efi - 单独
/home是否存在 - Swap 是否存在
- 是否意外生成重复项
- Btrfs 子卷与挂载选项是否正确
- FAT ESP 的权限选项是否符合需求
可用:
findmnt --verify --tab-file /mnt/etc/fstab不要反复执行 genfstab ... >> 而不清空文件,否则会重复追加。
12. 进入新系统并完成基础配置#
arch-chroot /mnt从这里开始,/ 指向新系统。
12.1 时区#
列出时区:
timedatectl list-timezones设置示例:
中国大陆:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime日本:
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime生成硬件时钟基准:
hwclock --systohcLinux 通常推荐硬件时钟使用 UTC。双系统时应让各系统对 RTC 的解释保持一致。
12.2 Locale#
编辑:
nvim /etc/locale.gen至少取消注释:
en_US.UTF-8 UTF-8需要简体中文环境时可同时启用:
zh_CN.UTF-8 UTF-8需要日文环境时:
ja_JP.UTF-8 UTF-8生成:
locale-gen系统默认语言建议先设为英文,出错信息更容易检索:
echo 'LANG=en_US.UTF-8' > /etc/locale.conf需要中文桌面可改为:
echo 'LANG=zh_CN.UTF-8' > /etc/locale.conf检查:
cat /etc/locale.conf
locale -a12.3 控制台键盘#
echo 'KEYMAP=us' > /etc/vconsole.conf如需保存控制台字体:
KEYMAP=us
FONT=ter-132n12.4 主机名#
echo 'archbox' > /etc/hostname主机名应简短,避免空格和奇怪符号。
可以按需要配置 /etc/hosts:
127.0.0.1 localhost
::1 localhost
127.0.1.1 archbox.localdomain archbox现代 systemd 环境可以通过本地主机名解析机制工作,但明确配置在某些传统程序和离线环境中仍有帮助。
13. 用户、密码与 sudo#
13.1 root 密码#
passwd13.2 创建普通用户#
useradd -m -G wheel -s /bin/bash <USERNAME>
passwd <USERNAME>解释:
-m:创建家目录。-G wheel:加入 wheel 附加组。-s /bin/bash:登录 shell。
检查:
id <USERNAME>
getent group wheel13.3 配置 sudo#
安装:
pacman -S sudo用 visudo 编辑:
EDITOR=nvim visudo取消注释:
%wheel ALL=(ALL:ALL) ALLvisudo 会检查语法,优于直接编辑 /etc/sudoers。
更可维护的方式是在 /etc/sudoers.d/ 创建独立文件:
EDITOR=nvim visudo -f /etc/sudoers.d/10-wheel内容:
%wheel ALL=(ALL:ALL) ALL权限必须正确:
chmod 440 /etc/sudoers.d/10-wheel不建议给普通用户配置无条件 NOPASSWD: ALL。它会显著降低“获得用户会话”和“获得 root 权限”之间的隔离。
14. initramfs、内核与微码#
官方参考:
安装内核时通常已经生成 initramfs。检查:
ls -lh /boot典型文件:
vmlinuz-linux
initramfs-linux.img
initramfs-linux-fallback.img
intel-ucode.img 或 amd-ucode.img手动重新生成全部预设:
mkinitcpio -P14.1 何时必须重新生成#
修改以下内容后通常需要:
/etc/mkinitcpio.conf- 加密 hooks
- LVM、mdadm、特殊存储 hooks
- 需要早期加载的模块
- initramfs 中需要包含的文件
14.2 微码#
所有 Intel 或 AMD 实机用户都应按 CPU 安装微码更新:
pacman -S intel-ucode或:
pacman -S amd-ucode微码 initrd 在传统引导项中应位于主 initramfs 之前。使用 UKI 时,生成工具会把相应微码打包进统一映像。
检查启动后微码信息:
journalctl -k -b | grep -i microcode15. 安装引导器#
官方入口:
15.1 systemd-boot:UEFI 主线#
前提:
- 以 UEFI 模式启动。
- ESP 已挂载到
/boot。 /sys/firmware/efi/efivars可访问。
安装:
bootctl install查看:
bootctl statusloader.conf#
mkdir -p /boot/loader
nvim /boot/loader/loader.conf内容示例:
default arch.conf
timeout 3
console-mode keep
editor noeditor no 可阻止在菜单中临时编辑内核命令行;排错阶段也可保留编辑能力。
获取根分区 UUID#
blkid /dev/nvme0n1p2或:
ROOT_UUID=$(blkid -s UUID -o value /dev/nvme0n1p2)
echo "$ROOT_UUID"创建 Arch 启动项#
mkdir -p /boot/loader/entries
nvim /boot/loader/entries/arch.confIntel 示例:
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options root=UUID=<ROOT_UUID> rwAMD 示例:
title Arch Linux
linux /vmlinuz-linux
initrd /amd-ucode.img
initrd /initramfs-linux.img
options root=UUID=<ROOT_UUID> rwfallback 启动项#
nvim /boot/loader/entries/arch-fallback.conftitle Arch Linux fallback
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux-fallback.img
options root=UUID=<ROOT_UUID> rwAMD 机器替换微码文件。
检查:
bootctl list15.2 systemd-boot 更新#
systemd 包升级后可检查:
bootctl updateArchWiki 还提供自动更新方式。是否需要额外 hook 取决于当前 systemd 与安装布局;按实时 systemd-boot 页面配置。
15.3 GRUB:UEFI#
假设 ESP 挂载到 /efi:
pacman -S grub efibootmgr安装:
grub-install \
--target=x86_64-efi \
--efi-directory=/efi \
--bootloader-id=GRUB生成配置:
grub-mkconfig -o /boot/grub/grub.cfggrub-install 和 grub-mkconfig 是不同步骤。只安装 EFI 文件而不生成配置,或只生成配置而没有正确安装引导器,都可能无法启动。
15.4 GRUB:传统 BIOS#
安装:
pacman -S grub把 GRUB 安装到整盘设备:
grub-install --target=i386-pc /dev/sdX不要写成 /dev/sdX1。
生成配置:
grub-mkconfig -o /boot/grub/grub.cfgGPT 磁盘应事先创建 BIOS boot partition。
15.5 Windows 双系统与 GRUB#
安装:
pacman -S os-prober检查并按 GRUB 官方页面决定是否启用 os-prober:
GRUB_DISABLE_OS_PROBER=false然后:
grub-mkconfig -o /boot/grub/grub.cfgsystemd-boot 在同一 ESP 上通常可以自动发现 Windows Boot Manager。实际表现取决于固件与 ESP 布局。
15.6 UKI#
Unified Kernel Image 把内核、initrd、内核命令行、微码等组合成一个 EFI 可执行文件。它适合:
- systemd-boot 自动发现
- Secure Boot 签名
- 减少分散启动文件
- TPM 测量与更一致的启动链
但 UKI 会改变传统 loader/entries/*.conf 的配置思路。应完整阅读 UKI、mkinitcpio 和 Secure Boot 页面后统一设计。
15.7 Secure Boot#
不要把 Secure Boot 简化成“给 grubx64.efi 签名”。需要考虑:
- 固件密钥管理
- shim 或自有密钥
- 引导器、UKI、内核模块
- NVIDIA 等第三方模块
- 内核升级后的自动签名
- 密钥备份与恢复
完成普通可启动系统后,再按 ArchWiki Secure Boot 页面构建并验证信任链。
16. 安装后的网络、DHCP 与 DNS#
16.1 桌面主线:NetworkManager#
安装:
pacman -S networkmanager启用:
systemctl enable NetworkManager.serviceNetworkManager 默认可以处理:
- 有线 DHCP
- Wi-Fi
- IPv6
- DNS 集成
- VPN 插件
- 桌面网络图标
启动后查看:
nmcli device
nmcli connection show连接 Wi-Fi:
nmcli device wifi list
nmcli device wifi connect '<SSID>' password '<PASSWORD>'16.2 systemd-networkd:服务器或明确配置#
安装基础 systemd 时已包含 networkd。
有线 DHCP 示例:
mkdir -p /etc/systemd/network
nvim /etc/systemd/network/20-wired.network[Match]
Name=en*
[Network]
DHCP=yes更精确时直接写实际接口名,例如:
[Match]
Name=enp3s0
[Network]
DHCP=yes启用:
systemctl enable systemd-networkd.service
systemctl enable systemd-resolved.service让传统程序使用 systemd-resolved 的 stub:
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf检查:
networkctl
resolvectl statusWi-Fi 还需要 iwd 或 wpa_supplicant 提供无线关联;networkd 本身不是 Wi-Fi 认证客户端。
16.3 dhcpcd#
安装:
pacman -S dhcpcd对所有接口启用:
systemctl enable dhcpcd.service只对指定接口:
systemctl enable [email protected]不要同时让 NetworkManager 与 dhcpcd 服务接管同一接口。
16.4 静态地址#
静态配置必须明确:
- IP 与前缀
- 默认网关
- DNS
- IPv6 策略
- 地址是否与 DHCP 地址池冲突
systemd-networkd 示例:
[Match]
Name=enp3s0
[Network]
Address=192.168.1.50/24
Gateway=192.168.1.1
DNS=192.168.1.1
DNS=1.1.1.116.5 DNS 排错#
resolvectl status
cat /etc/resolv.conf
getent hosts archlinux.org- 能 ping IP,不能解析域名:优先查 DNS。
/etc/resolv.conf指向不存在目标:修复符号链接或网络管理器配置。- 同时启用多个管理器:可能互相覆盖 DNS 与路由。
17. 安装后的时间同步#
systemd-timesyncd 是轻量级 SNTP 客户端。
启用:
systemctl enable systemd-timesyncd.service系统启动后:
timedatectl set-ntp true查看:
timedatectl
timedatectl timesync-status
systemctl status systemd-timesyncd需要完整 NTP 服务器、高精度时钟源或复杂策略时,可研究 chrony、ntpd 等方案,但同一机器不要同时运行多个争用系统时钟的同步守护进程。
18. 首次重启与验收#
在 chroot 中确认:
systemctl is-enabled NetworkManager
bootctl status
passwd -S root
id <USERNAME>退出:
exit卸载:
umount -R /mnt如提示 busy:
findmnt -R /mnt
fuser -vm /mnt关闭 Swap:
swapoff -a重启:
reboot拔掉安装介质。
18.1 首次启动检查#
uname -r
cat /etc/os-release
timedatectl
ip addr
ip route
resolvectl status
systemctl --failed
journalctl -p 3 -b测试 sudo:
sudo -v
sudo id更新:
sudo pacman -Syu如果启动失败,不要立刻重装。先用 Live ISO 挂载并 arch-chroot,检查 fstab、引导器、UUID、initramfs 和日志。
19. 图形驱动、Wayland 与 Xorg#
官方参考:
19.1 图形栈不是只有“显卡驱动”#
典型层次:
- 内核 DRM/KMS 驱动
- Mesa 或厂商用户空间驱动
- OpenGL/Vulkan 实现
- Wayland compositor 或 Xorg server
- 桌面环境/窗口管理器
19.2 Intel 与 AMD#
常见桌面 3D 用户空间:
sudo pacman -S mesaVulkan 按硬件安装对应官方包,例如 Intel 或 AMD 的实现。具体包名与老旧硬件支持范围应在 Vulkan、Intel graphics、AMDGPU 页面核对。
多数现代 Intel/AMD GPU 使用内核自带的模式设置驱动,不需要创建传统 /etc/X11/xorg.conf。
19.3 NVIDIA#
NVIDIA 的正确包取决于:
- GPU 代际
- 使用的内核
- 开源或专有内核模块支持状态
- 混合显卡
- Wayland
- Secure Boot
- 是否需要 32 位库、CUDA 或视频编码
不要按旧教程固定安装一个包名。先运行:
lspci -k | grep -A 3 -E '(VGA|3D)'然后按实时 NVIDIA 页面选择。
19.4 Wayland#
GNOME 和 KDE Plasma 的现代会话通常优先提供 Wayland。优点包括更现代的显示模型、隔离和高 DPI 支持;实际兼容性取决于 GPU、驱动、屏幕共享、远程桌面和应用。
检查当前会话:
echo "$XDG_SESSION_TYPE"输出可能为:
wayland或:
x1119.5 Xorg#
只有明确需要 Xorg、轻量窗口管理器或兼容旧程序时再安装:
sudo pacman -S xorg-server xorg-xinit完整 xorg 组会安装更多工具,不一定全部需要。
19.6 不要先生成 xorg.conf#
自动检测通常足够。只有 ArchWiki 对特定故障明确要求时,才创建局部配置,例如 /etc/X11/xorg.conf.d/20-*.conf。
20. 桌面环境与显示管理器#
官方参考:
20.1 GNOME#
安装:
sudo pacman -S gnome启用 GDM:
sudo systemctl enable gdm.serviceGNOME 通常集成:
- Wayland/Xorg 会话
- NetworkManager 前端
- PipeWire 桌面集成
- power-profiles-daemon
- xdg-desktop-portal
- Polkit 认证代理
20.2 KDE Plasma#
安装元包:
sudo pacman -S plasma-meta按需安装 KDE 应用,或选择应用集合:
sudo pacman -S kde-applications-meta启用 SDDM:
sudo systemctl enable sddm.service只需要部分应用时,不必安装整个应用集合。
20.3 Xfce#
sudo pacman -S xfce4 xfce4-goodies
sudo pacman -S lightdm lightdm-gtk-greeter
sudo systemctl enable lightdm.service检查 LightDM greeter 配置,确保已安装一个 greeter。
20.4 不使用显示管理器#
可以从 TTY 登录后手动启动会话。Xorg 常见方式是 startx 与 ~/.xinitrc;Wayland compositor 通常可直接从 TTY 启动。具体按对应桌面或窗口管理器页面配置。
20.5 只启用一个显示管理器#
检查:
systemctl status display-manager.service切换前:
sudo systemctl disable gdm.service
sudo systemctl enable sddm.service不要同时启用 GDM、SDDM、LightDM。
21. PipeWire 音频系统#
官方参考:
安装常用组件:
sudo pacman -S \
pipewire \
pipewire-audio \
pipewire-alsa \
pipewire-pulse \
wireplumberJACK 兼容层按需:
sudo pacman -S pipewire-jack图形音量控制:
sudo pacman -S pavucontrol检查用户服务:
systemctl --user status pipewire
systemctl --user status pipewire-pulse
systemctl --user status wireplumber查看节点:
wpctl status多数情况下 PipeWire 通过用户级 socket/service 自动启动,不需要用 root 启用系统级 pipewire.service。
21.1 常见排错#
pactl info
wpctl status
journalctl --user -b -u pipewire -u wireplumber若安装了 PulseAudio 与 PipeWire 的互斥实现,pacman 会提示替换。不要强行让两个音频服务器同时占用同一接口。
22. 蓝牙#
官方参考:Bluetooth
安装:
sudo pacman -S bluez bluez-utils启用:
sudo systemctl enable --now bluetooth.service检查:
rfkill list
systemctl status bluetooth命令行配对:
bluetoothctl交互命令:
power on
agent on
default-agent
scan on
pair <MAC>
trust <MAC>
connect <MAC>蓝牙音频还依赖 PipeWire/WirePlumber 的蓝牙支持与对应 codec 包。具体按 PipeWire 和 Bluetooth 页面核对。
23. 字体、中文日文显示与输入法#
官方参考:
23.1 基础字体#
sudo pacman -S \
noto-fonts \
noto-fonts-cjk \
noto-fonts-emoji \
ttf-liberation刷新缓存:
fc-cache -fv检查匹配:
fc-match sans
fc-match monospace
fc-match 'Noto Sans CJK SC'缺少 CJK 字体时,中文和日文可能显示为方框;缺少 emoji 字体时会出现空白或单色替代。
23.2 Fcitx 5#
安装框架和配置工具:
sudo pacman -S fcitx5-im fcitx5-configtool中文常用:
sudo pacman -S fcitx5-chinese-addons日文 Mozc:
sudo pacman -S fcitx5-mozcRime:
sudo pacman -S fcitx5-rime在桌面会话中运行:
fcitx5-configtoolWayland、XWayland、GTK、Qt 和 Electron 的环境变量要求可能不同。优先按 Fcitx5 官方 ArchWiki 页面及所用桌面的 Wayland 说明配置,不要机械复制多年前的全局 GTK_IM_MODULE=fcitx 教程。
23.3 IBus#
sudo pacman -S ibus日文:
sudo pacman -S ibus-mozcRime:
sudo pacman -S ibus-rimeGNOME 对 IBus 的桌面集成通常更直接。Fcitx 5 与 IBus 二选一,避免两个框架都在会话启动时运行。
23.4 Locale 不等于输入法#
- Locale 决定界面语言、日期、排序等。
- 字体决定字符能否显示。
- 输入法决定如何输入中文、日文。
- 键盘布局决定按键映射。
它们是四个独立层次。
24. 常用桌面基础组件#
24.1 用户目录#
sudo pacman -S xdg-user-dirs
xdg-user-dirs-update检查:
cat ~/.config/user-dirs.dirs24.2 Portal#
Flatpak、文件选择器、屏幕共享与沙盒程序常依赖 xdg-desktop-portal 和桌面对应后端。GNOME、KDE、wlroots compositor 使用的后端不同,不要同时强制多个后端抢占。
24.3 Polkit#
桌面执行需要提权的图形操作时,需要 Polkit 与认证代理。完整 GNOME/KDE 通常会提供。轻量窗口管理器用户需要自行安装并启动一个认证代理。
24.4 基础应用#
按需安装:
sudo pacman -S \
git \
openssh \
curl \
wget \
unzip \
p7zip \
ripgrep \
fd \
less这不是“基础系统硬依赖”,而是常用工具集合。
25. 笔记本、电源与固件#
官方参考:
25.1 power-profiles-daemon#
GNOME/KDE 常集成:
sudo pacman -S power-profiles-daemon
sudo systemctl enable --now power-profiles-daemon.service检查:
powerprofilesctl25.2 TLP#
TLP 提供另一套笔记本电源策略。安装前查阅 TLP 页面,并检查与 power-profiles-daemon、厂商服务和桌面设置的冲突。不要简单同时启用。
25.3 固件更新#
sudo pacman -S fwupd检查:
fwupdmgr get-devices
fwupdmgr refresh
fwupdmgr get-updates是否支持取决于硬件厂商是否通过 LVFS 提供固件。
25.4 睡眠与休眠#
Suspend 主要保存在内存;Hibernate 把内存映像写入 Swap。休眠需要:
- 足够且可恢复的 Swap
- 正确 resume 配置
- initramfs hook 或 systemd 方案
- 正确内核参数
- 加密 Swap/根时的额外设计
按 Suspend and hibernate 页面完整配置并测试。不要只加一个 resume=UUID= 参数就认定完成。
26. SSD、TRIM、SMART、Swap 与 zram#
26.1 周期性 TRIM#
官方参考:Solid state drive
启用定时 TRIM:
sudo systemctl enable --now fstrim.timer查看:
systemctl status fstrim.timer
sudo fstrim -av周期性 TRIM 通常比给所有文件系统盲目添加持续 discard 更保守。具体设备与文件系统支持应核对。
26.2 SMART#
sudo pacman -S smartmontools查看 SATA 盘:
sudo smartctl -a /dev/sda查看 NVMe:
sudo smartctl -a /dev/nvme0是否启用 smartd 取决于监控需求:
sudo systemctl enable --now smartd.serviceUSB 硬盘盒可能不透传所有 SMART 命令。
26.3 Swap 文件#
ext4 示例:
sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile加入 /etc/fstab:
/swapfile none swap defaults 0 0Btrfs 的 Swap 文件有额外要求,应按 Btrfs 与 Swap 页面操作。
26.4 zram#
zram 在内存中创建压缩块设备,可作为 Swap。官方常用工具之一是 zram-generator:
sudo pacman -S zram-generator创建:
sudo mkdir -p /etc/systemd
sudo nvim /etc/systemd/zram-generator.conf示例:
[zram0]
zram-size = ram / 2
compression-algorithm = zstd应用:
sudo systemctl daemon-reload
sudo systemctl start [email protected]检查:
zramctl
swapon --show参数应结合内存容量、工作负载与是否需要休眠决定。
27. 防火墙、SSH 与基础安全#
官方参考:
27.1 firewalld 路线#
sudo pacman -S firewalld
sudo systemctl enable --now firewalld.service检查:
firewall-cmd --state
firewall-cmd --get-active-zones
firewall-cmd --list-all桌面公共网络应检查当前 zone,不要默认所有网络都是 trusted。
27.2 nftables 路线#
sudo pacman -S nftables
sudo systemctl enable nftables.service在启用前写好并检查 /etc/nftables.conf。直接操作 nftables 提供更底层、明确的规则管理,但也更容易因错误规则断网。
27.3 SSH#
安装:
sudo pacman -S openssh仅在确实需要远程登录时启用:
sudo systemctl enable --now sshd.service查看监听:
ss -lntup建议:
-
优先使用密钥认证。
-
确认普通用户可登录后,再考虑关闭 root SSH 登录。
-
修改 SSH 配置后先运行语法检查:
bash sudo sshd -t -
保留一个本地终端或现有 SSH 会话,避免把自己锁在门外。
27.4 基础安全原则#
- 只启用需要的服务。
- 定期完整升级。
- 阅读官方新闻。
- 不运行来源不明的一键脚本。
- AUR 安装前审查 PKGBUILD 与安装脚本。
- 重要数据使用离线或异地备份。
- 磁盘加密保护关机状态的数据,但不能替代备份。
- Secure Boot 保护启动链,但不能替代系统更新与账户安全。
28. 打印、扫描与局域网发现#
官方参考:
28.1 打印#
sudo pacman -S cups
sudo systemctl enable --now cups.service图形配置工具:
sudo pacman -S system-config-printer现代网络打印机常支持 driverless IPP。老型号可能需要厂商 PPD 或专用驱动,优先查看 OpenPrinting 与 ArchWiki 对应页面。
28.2 网络发现#
sudo pacman -S avahi nss-mdns
sudo systemctl enable --now avahi-daemon.service是否修改 /etc/nsswitch.conf 取决于 nss-mdns 页面当前推荐配置。
28.3 扫描#
sudo pacman -S sane检测:
scanimage -LUSB 网络复合设备可能需要 ipp-usb。具体按设备和 SANE 页面配置。
29. pacman、镜像与系统维护#
官方参考:
29.1 完整升级#
sudo pacman -Syu不要长期只升级少数核心包,也不要保持新旧仓库状态混杂。
29.2 更新前阅读官方新闻#
有时升级需要手动干预。先看:
https://archlinux.org/news/尤其在以下情况:
- 长时间未更新
- glibc、systemd、pacman、内核、引导器重大变化
- 仓库结构变化
- 密钥环故障
- 文件系统或驱动重大升级
29.3 查询包#
pacman -Ss <KEYWORD>
pacman -Si <PACKAGE>
pacman -Qi <PACKAGE>
pacman -Ql <PACKAGE>
pacman -Qo /path/to/file查显式安装包:
pacman -Qe查孤儿依赖:
pacman -Qdt删除孤儿前逐个确认:
sudo pacman -Rns $(pacman -Qdtq)如果没有孤儿,命令替换为空可能产生不期望行为。更稳妥是先查看输出,再执行删除。
29.4 包缓存#
查看:
du -sh /var/cache/pacman/pkg安装 pacman-contrib:
sudo pacman -S pacman-contrib启用定期清理:
sudo systemctl enable --now paccache.timer保留若干旧版本便于回滚,不建议直接删除全部缓存。
29.5 pacnew 与 pacsave#
升级时 pacman 可能创建:
.pacnew:新默认配置未自动覆盖你的配置.pacsave:删除包时保留的旧配置
查找:
sudo find /etc -regextype posix-extended \
-regex '.+\.pac(new|save)' -printpacdiff:
sudo pacman -S pacman-contrib
sudo pacdiff不要无脑用 .pacnew 覆盖旧文件;应理解差异后合并。
29.6 systemd 服务与日志#
失败服务:
systemctl --failed本次启动高优先级错误:
journalctl -p 3 -b指定服务:
journalctl -b -u NetworkManager上次启动:
journalctl -b -1内核日志:
journalctl -k -b29.7 定期刷新镜像#
安装:
sudo pacman -S reflector编辑:
sudo nvim /etc/xdg/reflector/reflector.conf启用定时器:
sudo systemctl enable --now reflector.timer不要在每次更新前都无条件测速几十个镜像。频繁更换镜像并不一定提升稳定性。
30. AUR 的正确定位#
官方参考:
AUR 不是官方二进制仓库。AUR 提供由用户维护的构建脚本与元数据。使用者负责:
- 阅读 PKGBUILD
- 阅读
.install文件 - 检查 source URL 与校验
- 理解构建和安装行为
- 跟踪上游与维护者变化
- 处理升级与依赖问题
30.1 手动构建基本流程#
先安装构建工具:
sudo pacman -S --needed base-devel git以普通用户克隆:
git clone https://aur.archlinux.org/<PACKAGE>.git
cd <PACKAGE>先审查:
less PKGBUILD
find . -maxdepth 1 -type f -print
git log --oneline --decorate -n 20
git diff HEAD~1构建安装:
makepkg -si不要以 root 运行 makepkg。
30.2 AUR helper#
AUR helper 只是自动化工具,不会把 AUR 变成受官方支持的仓库,也不会替你完成安全审查。升级时仍需查看 PKGBUILD 和提交差异。
Arch 官方新闻在 2026 年 6 月曾发布 AUR 恶意软件包相关事件提醒,并再次要求用户审查 PKGBUILD 和安装脚本。资料可能过时;实际使用时应查看最新 Arch News 与 AUR 公告。
31. 备份与快照#
官方参考:
31.1 快照不是备份#
位于同一块磁盘上的 Btrfs 快照可以帮助:
- 回滚误删
- 比较升级前后
- 快速恢复配置
但不能抵抗:
- 整盘损坏
- 设备丢失
- 控制器故障
- 分区表破坏
- 勒索软件访问同一快照存储
- 火灾或进水
31.2 至少备份#
/home/etc- 密钥与密码库
- SSH/GPG 密钥
- 浏览器与应用配置
- 数据库导出
- 自建服务数据
- 包列表
- 引导与磁盘布局记录
保存显式安装包列表:
pacman -Qqe > pkglist.txt保存 AUR/外部包列表:
pacman -Qqm > foreign-pkglist.txt记录块设备:
lsblk -f > lsblk.txt
blkid > blkid.txt
sudo sfdisk --dump /dev/nvme0n1 > partition-table.sfdisk这些记录不能替代数据备份,但救援时非常有用。
32. 常见故障与 Live ISO 救援#
32.1 标准 chroot 救援流程#
从 Arch ISO 启动并联网。
识别:
lsblk -f挂载根:
mount /dev/<ROOT> /mnt挂载 ESP:
mount --mkdir /dev/<ESP> /mnt/boot挂载其他分区:
mount --mkdir /dev/<HOME> /mnt/home进入:
arch-chroot /mnt然后按故障执行:
mkinitcpio -P
bootctl status
grub-mkconfig -o /boot/grub/grub.cfg
pacman -Syu32.2 启动器菜单没有 Arch#
检查:
bootctl status
bootctl list
efibootmgr -v
find /boot -maxdepth 4 -type f -print重点:
- ESP 是否真的挂载
- loader entry 路径是否正确
- UUID 是否正确
- 内核与 initramfs 是否存在
- 是否以 UEFI 模式进入救援环境
32.3 mount: unknown filesystem type#
可能缺少:
- 文件系统内核模块
- 用户空间工具
- LUKS 解锁
- LVM 激活
- RAID 组装
检查:
lsblk -f
blkid
dmesg -T | tail -n 10032.4 进入 emergency mode#
查看:
systemctl --failed
journalctl -xb常见原因:
- fstab UUID 错误
- 不存在的分区被设为必须挂载
- 网络磁盘无
nofail或 automount 策略 - 文件系统损坏
- initramfs 与根存储方案不匹配
32.5 网络服务已启动但没网#
ip -brief link
ip -brief addr
ip route
resolvectl status
systemctl status NetworkManager
journalctl -b -u NetworkManager检查是否有多个管理器:
systemctl is-active NetworkManager
systemctl is-active systemd-networkd
systemctl is-active dhcpcd32.6 图形登录循环#
切到 TTY:
Ctrl + Alt + F3登录后:
systemctl status display-manager
journalctl -b -u display-manager
journalctl -b | grep -iE 'gdm|sddm|lightdm|wayland|xorg|drm|nvidia|amdgpu'检查:
- 家目录权限
- 磁盘是否满
- 显卡驱动与内核是否匹配
- 自定义环境变量
- 损坏的用户会话配置
- 同时启用多个 display manager
32.7 更新后内核无法启动#
从 fallback 或备用 LTS 内核启动。进入系统后:
sudo pacman -Syu
sudo mkinitcpio -P检查 /boot 是否在升级时实际挂载。若 /boot 未挂载,内核可能被写入根分区的空目录,而固件仍读取旧 ESP 内容。
findmnt /boot
lsblk -f这是 Arch 上非常典型且隐蔽的故障。
33. 完整检查清单#
33.1 安装前#
- 已备份全部重要数据
- 已验证 ISO 签名
- 已确认 UEFI 或 BIOS 模式
- 已记录目标磁盘型号和容量
- 已决定文件系统
- 已决定是否加密
- 已决定 Swap 与休眠
- 已决定引导器
- 双系统已关闭 Windows 快速启动
- 已确认是否复用 ESP
33.2 Live 环境#
- 键盘可正常输入
- 网卡未被 rfkill
- 已获得 IP
- 默认路由存在
- DNS 可用
- NTP 已同步或时间正确
-
lsblk已核对三次
33.3 分区与安装#
- 新分区类型正确
- 没有格式化现有 Windows ESP
- 根分区挂载到
/mnt - ESP 挂载到规划位置
- Swap 已启用
- 已安装 CPU 微码
- 已安装网络管理器
- fstab 无重复且 UUID 正确
33.4 chroot#
- 时区正确
-
locale-gen已执行 -
/etc/locale.conf存在 -
/etc/vconsole.conf正确 - 主机名已设置
- root 密码已设置
- 普通用户已创建
- sudo 已用 visudo 配置
- initramfs 存在
- 引导器已安装
- 引导项 UUID 正确
- 网络服务已 enable
- 时间同步服务已 enable
33.5 首次启动#
- 能进入引导器
- 能登录普通用户
- sudo 可用
- 网络、路由、DNS 正常
- 时间与时区正确
-
systemctl --failed无关键失败 -
journalctl -p 3 -b已检查 - 完成
pacman -Syu - 图形驱动正确
- 只启用了一个 display manager
- PipeWire 正常
- 字体与输入法正常
- 防火墙策略已确认
- 已建立备份
34. 官方资料索引#
34.1 安装核心#
- Installation guide
- General recommendations
- FAQ
- Arch Linux Download
- USB flash installation medium
- arch-install-scripts manual pages
34.2 存储#
34.3 启动#
- Arch boot process
- systemd-boot
- GRUB
- Unified kernel image
- Secure Boot
- mkinitcpio
- Microcode
- bootctl manual
34.4 网络与时间#
- Network configuration
- NetworkManager
- systemd-networkd
- dhcpcd
- iwd
- systemd-resolved
- systemd-timesyncd
- timedatectl manual
34.5 桌面#
- Desktop environment
- Display manager
- Wayland
- Xorg
- GNOME
- KDE
- Xfce
- PipeWire
- Bluetooth
- Fonts
- Fcitx5
- IBus
34.6 维护与安全#
- pacman
- System maintenance
- Reflector
- Security
- Firewall
- OpenSSH
- Arch User Repository
- Arch Linux News
- Official package database
- Arch manual pages
附录 A:一条可复现的 UEFI 桌面安装命令流#
这是便于核对的摘要命令流,不是无脑复制脚本。它假设:
- 新建 GPT 分区
- ESP 为
/dev/nvme0n1p1 - ext4 根为
/dev/nvme0n1p2 - Swap 为
/dev/nvme0n1p3 - Intel CPU
- ESP 挂载
/boot - systemd-boot
- NetworkManager
分区创建本身故意不写成自动化命令,避免误盘。
A.1 Live 环境#
timedatectl set-ntp true
timedatectl
ip link
lsblk -fWi-Fi:
iwctl格式化:
mkfs.fat -F 32 /dev/nvme0n1p1
mkfs.ext4 /dev/nvme0n1p2
mkswap /dev/nvme0n1p3
swapon /dev/nvme0n1p3挂载:
mount /dev/nvme0n1p2 /mnt
mount --mkdir /dev/nvme0n1p1 /mnt/boot
findmnt /mnt安装:
pacstrap -K /mnt \
base linux linux-firmware intel-ucode \
base-devel sudo networkmanager \
neovim man-db man-pages texinfofstab:
genfstab -U /mnt >> /mnt/etc/fstab
cat /mnt/etc/fstab
findmnt --verify --tab-file /mnt/etc/fstab进入:
arch-chroot /mntA.2 chroot#
时区:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohcLocale:
nvim /etc/locale.gen
locale-gen
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
echo 'KEYMAP=us' > /etc/vconsole.conf主机名:
echo 'archbox' > /etc/hostname密码与用户:
passwd
useradd -m -G wheel -s /bin/bash <USERNAME>
passwd <USERNAME>
EDITOR=nvim visudo启用 %wheel ALL=(ALL:ALL) ALL。
网络和时间:
systemctl enable NetworkManager.service
systemctl enable systemd-timesyncd.service引导器:
bootctl install
mkdir -p /boot/loader/entriesnvim /boot/loader/loader.confdefault arch.conf
timeout 3
console-mode keep
editor no获取 UUID:
blkid /dev/nvme0n1p2nvim /boot/loader/entries/arch.conftitle Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options root=UUID=<ROOT_UUID> rw检查:
mkinitcpio -P
bootctl status
bootctl list退出并重启:
exit
umount -R /mnt
swapoff -a
rebootA.3 首次启动后#
sudo pacman -Syu
sudo pacman -S \
mesa \
pipewire pipewire-audio pipewire-alsa pipewire-pulse wireplumber \
noto-fonts noto-fonts-cjk noto-fonts-emoji ttf-liberation \
bluez bluez-utils \
xdg-user-dirsGNOME:
sudo pacman -S gnome
sudo systemctl enable gdm.service或 KDE Plasma:
sudo pacman -S plasma-meta
sudo systemctl enable sddm.service蓝牙与 TRIM:
sudo systemctl enable bluetooth.service
sudo systemctl enable fstrim.timer重启:
sudo reboot一个可靠的 Arch 系统不是“装完能亮桌面”,而是:
- 你知道系统如何启动;
- 你知道网络、DNS、时间和图形由谁管理;
- 你只启用需要的服务;
- 你能完整升级并处理手动干预;
- 你有备份;
- 系统坏掉时,你能从 Live ISO 挂载、chroot、读日志并修复。