1. 先搞清楚我们到底要装什么,以及为什么选这套组合
如果你在找“最干净”的 Linux 桌面体验,或者想从零开始完全掌控自己的系统,那 Arch Linux 加上 Niri 和 DMS 这套组合,很可能就是你折腾的终点。这不是给只想点“下一步”装完就用的新手准备的,而是给那些愿意花时间理解每个组件、享受“系统完全按自己想法运行”这个过程的人。
Arch Linux 本身只是一个极简的基础系统,它只给你一个命令行界面。Niri 是一个新兴的、追求极致性能和简洁的 Wayland 合成器,你可以把它理解为一个非常轻量、现代的“窗口管理器+桌面环境核心”。而 DMS 则是一个显示管理器,负责系统启动后那个图形化的登录界面。这套组合的核心价值在于:从内核到登录界面,再到桌面环境的每一个像素,你都能清楚地知道它是什么、为什么在那里、以及如何修改它。
很多人卡在安装 Arch 这一步,不是因为命令多难,而是因为对整体流程没有概念,不知道每一步在干什么,以及为什么必须按这个顺序来。这篇文章会带你走一遍我从一个 Arch 小白(5个月经验)视角梳理的完整流程,重点不是罗列命令,而是解释每个环节的意图和避坑点。我们最终的目标是得到一个稳定、可复现、且完全由你定义的桌面系统。
2. 安装前的核心准备:理解流程与制作启动盘
在动手敲任何命令之前,先花十分钟理解整个安装的“地图”。Arch 的安装流程可以抽象为几个大阶段:准备启动环境 -> 分区与挂载 -> 安装基础系统 -> 配置系统 -> 安装引导程序 -> 安装图形界面。心里有这张图,遇到报错才知道自己卡在哪一环。
硬件与镜像准备:首先,确保你的电脑支持 UEFI 启动(2012年后的电脑基本都支持)。准备一个至少 8GB 的 U 盘。去 Arch Linux 官网下载最新的 ISO 镜像。不要去任何第三方镜像站,官网的校验和才是最可靠的。下载后,务必用sha256sum命令验证一下镜像文件的完整性,这一步能避免 99% 的因镜像损坏导致的安装失败。
制作启动盘,在 Windows 下可以用 Rufus,在 macOS 或 Linux 下用dd命令。这里以 Linux/macOS 终端为例:
# 首先,用 `lsblk` 命令确认你的 U 盘设备名,比如是 /dev/sdb # 注意:千万不能选错设备,否则会清空你的硬盘数据! sudo dd bs=4M if=/path/to/archlinux-xxxx.xx.xx-x86_64.iso of=/dev/sdX status=progress oflag=syncdd命令没有进度条,status=progress和oflag=sync参数能让你看到进度并确保数据完全写入。制作完成后,重启电脑,进入 BIOS/UEFI 设置,将 U 盘设为第一启动项。
启动到 Live 环境:从 U 盘启动后,你会进入一个完整的 Arch Linux 临时系统(运行在内存里)。首先检查网络连接。如果是有线网络,通常已经自动连接。如果是 WiFi,使用iwctl工具连接:
iwctl # 进入交互式命令行 [iwd]# device list # 列出无线设备,如 wlan0 [iwd]# station wlan0 scan [iwd]# station wlan0 get-networks [iwd]# station wlan0 connect “你的WiFi名称” # 输入密码后连接,按 Ctrl+D 退出连接成功后,用ping archlinux.org测试网络。接下来,更新系统时钟:timedatectl set-ntp true。这些准备工作看似琐碎,但稳定的网络和正确的时间是后续下载包、配置系统的基础。
3. 分区、格式化与挂载:为系统搭建“地基”
这是最容易让人困惑的一步。我们不是在“我的电脑”里新建文件夹,而是在给硬盘划分区域(分区),并决定每个区域用什么格式来存数据(格式化),最后告诉安装程序这些区域对应到系统里的哪个目录(挂载)。
分区方案(UEFI + GPT):对于现代电脑,推荐使用 GPT 分区表。一个最简方案需要两个分区:
- EFI 系统分区:大约 512MB 到 1GB,格式化为 FAT32。它用来存放引导程序。
- 根分区:剩余的所有空间,格式化为 Btrfs 或 Ext4。它用来安装系统和你的所有文件。
如果你内存小于 16GB,强烈建议再分一个交换分区(Swap),大小约为内存的 1-2 倍。如果内存足够大(比如 32GB+),可以用交换文件代替,更灵活。
实操步骤:
- 查看磁盘:
lsblk确认你的目标硬盘,比如/dev/nvme0n1。 - 分区:使用
cfdisk或fdisk工具。cfdisk有图形界面更友好。
在cfdisk /dev/nvme0n1cfdisk里,选择gpt标签。然后新建分区:先建 EFI 分区(类型选EFI System),再建根分区(类型保持Linux filesystem)。如果有交换分区,也新建一个(类型选Linux swap)。最后务必选择 “Write” 并输入 yes 来写入磁盘。 - 格式化:
# 格式化 EFI 分区为 FAT32 mkfs.fat -F 32 /dev/nvme0n1p1 # 格式化根分区为 Ext4 (更稳定) 或 Btrfs (支持快照等高级功能) mkfs.ext4 /dev/nvme0n1p2 # 如果有交换分区,初始化它 mkswap /dev/nvme0n1p3 swapon /dev/nvme0n1p3 - 挂载:把分区“映射”到 Live 环境下的目录。
现在,你对# 先挂载根分区 mount /dev/nvme0n1p2 /mnt # 为 EFI 分区创建挂载点目录并挂载 mkdir -p /mnt/boot/efi mount /dev/nvme0n1p1 /mnt/boot/efi/mnt的操作,就相当于在未来系统的根目录/下操作。
注意:分区是破坏性操作,请再次确认设备名。如果你是在虚拟机里练习,可以放心操作。如果是实体机且有重要数据,请务必提前备份。
4. 安装基础系统与核心配置
地基打好,开始砌墙。我们将最基本的 Arch 系统安装到刚刚挂载好的根分区里。
安装基础包:使用pacstrap命令,它是 Arch 的安装脚本,会从镜像源下载包并安装到/mnt。
pacstrap -K /mnt base base-devel linux linux-firmwarebase:最核心的系统组件。base-devel:包含编译软件所需的工具(如gcc,make),后续安装 AUR 包必备。linux:内核包。如果你需要特定内核(如linux-lts长期支持版,或linux-zen性能优化版),可以替换或额外添加。linux-firmware:各种硬件所需的固件。
这个命令会运行一段时间,取决于你的网速。如果遇到下载慢或报错,可能是镜像源问题,可以编辑/etc/pacman.d/mirrorlist文件,将地理位置离你近的源取消注释(移到前面)。
生成 fstab 文件:这个文件定义了系统启动时自动挂载哪些分区。
genfstab -U /mnt >> /mnt/etc/fstab用cat /mnt/etc/fstab检查一下,确保你的根分区和 EFI 分区都在里面,且挂载点正确。
进入新系统环境:现在,我们要“跳进”新安装的系统里进行配置。
arch-chroot /mnt命令提示符会变成[root@archiso /]#,表示你现在操作的是新系统的根环境。
进行核心配置:
- 时区与本地时间:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime hwclock --systohc - 本地化:编辑
/etc/locale.gen,找到en_US.UTF-8 UTF-8和zh_CN.UTF-8 UTF-8,去掉行首的#注释。然后生成 locale:
创建locale-gen/etc/locale.conf文件,写入LANG=en_US.UTF-8。这里建议先用英文,避免后续某些终端显示乱码。 - 网络配置:为你的主机起个名,编辑
/etc/hostname,写入你喜欢的主机名,如myarch。 编辑/etc/hosts,添加以下内容:127.0.0.1 localhost ::1 localhost 127.0.1.1 myarch.localdomain myarch - Root 密码:执行
passwd,为 root 用户设置一个强密码。 - 安装微码:根据你的 CPU 品牌安装对应的微码更新,以提高稳定性和安全性。
- Intel CPU:
pacman -S intel-ucode - AMD CPU:
pacman -S amd-ucode
- Intel CPU:
- 安装引导程序:这里使用 systemd-boot,它简单且与 UEFI 配合良好。
这会将 systemd-boot 安装到 EFI 分区。 接下来创建引导条目。在bootctl install/boot/loader/entries/目录下创建一个文件,例如arch.conf,内容如下:
如何获取title Arch Linux linux /vmlinuz-linux initrd /intel-ucode.img # 如果是 AMD,改为 /amd-ucode.img initrd /initramfs-linux.img options root=PARTUUID=你的根分区PARTUUID rwPARTUUID?在 chroot 环境外执行blkid -s PARTUUID -o value /dev/nvme0n1p2,将输出的字符串替换上面的你的根分区PARTUUID。 最后,编辑/boot/loader/loader.conf,设置默认等待时间和条目:default arch.conf timeout 3 console-mode keep
5. 安装图形界面:Niri 与 DMS 的部署与调校
基础系统配置完毕,重启进入新系统后,你将面对一个纯命令行界面。现在开始构建我们的图形桌面。
安装显卡驱动与基础图形环境:首先安装显卡驱动和必要的 Wayland 组件。
- Intel 集成显卡:
pacman -S mesa vulkan-intel - AMD 显卡:
pacman -S mesa vulkan-radeon - NVIDIA 显卡(情况复杂,建议先查阅 Arch Wiki):
pacman -S nvidia nvidia-utils然后安装 Wayland 和基础工具:
pacman -S wayland wayland-protocols xorg-xwaylandxorg-xwayland是为了兼容那些尚未支持 Wayland 的 X11 应用。
安装并配置 Niri:Niri 是一个平铺式 Wayland 合成器,非常轻量。它目前不在官方仓库,需要通过 AUR(Arch 用户仓库)安装。这就需要用到 AUR 助手,我们选择yay。
- 安装 yay:首先安装依赖
git和base-devel(之前已装)。
注意将pacman -S git cd /opt sudo git clone https://aur.archlinux.org/yay.git sudo chown -R yourusername:yourusername ./yay cd yay makepkg -siyourusername替换为你新建的普通用户名(建议不要一直用 root)。makepkg -si会编译并安装。 - 用 yay 安装 Niri:
首次使用 yay,它会让你选择镜像源,选最快的即可。安装过程中,你会看到 AUR 包的 PKGBUILD 文件,可以按回车确认继续。yay -S niri
安装并配置 DMS (显示管理器):DMS 是一个极简的显示管理器。我们同样通过 AUR 安装。
yay -S dms安装后,需要启用它的服务,这样开机才能自动进入图形登录界面。
sudo systemctl enable dms.service创建普通用户并配置自动登录(可选):一直用 root 不安全,需要创建日常使用的普通用户,并加入必要的组(如wheel用于 sudo,video用于图形加速)。
useradd -m -G wheel,video,audio -s /bin/bash yourusername passwd yourusername编辑/etc/sudoers文件,使用visudo命令,找到# %wheel ALL=(ALL:ALL) ALL这一行,去掉开头的#注释,保存退出。 如果你希望这个用户能自动登录到 Niri,需要配置 DMS。编辑/etc/dms.conf,设置autologin_user为你的用户名,并确保autologin_session指向 Niri 的桌面会话文件(通常安装 Niri 后会生成,位于/usr/share/wayland-sessions/)。
配置 Niri:Niri 的配置文件默认在~/.config/niri/config.kdl。你可以从这里开始定义你的键位绑定、窗口规则、外观(如背景、边框)等。Niri 的文档是学习配置的最佳起点。一个最简单的配置可能只包含键盘布局和启动一两个程序。
6. 安装后的必备调校与问题排查
系统安装并进入图形界面只是开始,要让其好用,还需要一些调校。
网络管理:在图形界面下,你可能需要网络管理器。安装NetworkManager并启用它的服务:
sudo pacman -S networkmanager sudo systemctl enable NetworkManager.service重启后,可以使用nmtui(文本界面)或安装图形前端如nm-connection-editor来管理 WiFi。
中文输入法:这是中文用户必过的坎。我们安装fcitx5框架和rime引擎。
sudo pacman -S fcitx5 fcitx5-configtool fcitx5-gtk fcitx5-qt fcitx5-rime然后配置环境变量。编辑~/.pam_environment文件(如果没有就创建),加入:
GTK_IM_MODULE DEFAULT=fcitx QT_IM_MODULE DEFAULT=fcitx XMODIFIERS DEFAULT=\@im=fcitx注销重新登录后,在系统托盘找到 fcitx5,添加输入法“Rime”。
音频:安装音频服务器和工具:
sudo pacman -S pipewire pipewire-pulse wireplumber sudo systemctl enable --user pipewire.service pipewire-pulse.service wireplumber.service重启音频相关服务或直接重启系统。
常见问题排查:
- 无法进入图形界面,黑屏或闪退:
- 首先,在命令行尝试手动启动:
startniri。观察终端输出的错误信息。 - 最常见原因是显卡驱动问题。确保安装了正确的驱动。对于 NVIDIA,可能需要添加内核参数
nvidia-drm.modeset=1到引导配置。 - 检查
~/.local/share/niri/下的日志文件。
- 首先,在命令行尝试手动启动:
- 网络连接不上:
- 检查
NetworkManager服务是否运行:systemctl status NetworkManager。 - 使用
ip link查看网卡是否启用,用nmtui重新配置连接。
- 检查
- 软件安装慢或失败:
- 更换 pacman 镜像源:编辑
/etc/pacman.d/mirrorlist,使用reflector工具自动排序。 - 清理包缓存:
sudo pacman -Sc。 - AUR 安装失败时,仔细阅读错误输出,通常是依赖缺失或网络问题。
- 更换 pacman 镜像源:编辑
- 声音没有输出:
- 确认
pipewire和wireplumber用户服务已启用并运行。 - 安装
pavucontrol图形音量控制面板,检查输出设备选择是否正确。
- 确认
最后的建议:Arch 的魅力在于“知其所以然”。第一次安装成功只是起点。养成查阅 Arch Wiki 的习惯,它是你最好的老师。每次遇到问题,把它当作一次学习系统工作原理的机会。这套 Niri + DMS 的组合非常轻量,为你后续打造任何样子的桌面都留足了空间。