106. ArchLinux安装与配置
安装前的准备
双系统
- 选择安装选项时, 在
Arch Linux install medium (x86_64, UEFI)
选项时, 按e
键, 末尾添加nomodeset
虚拟机
启动顺序(必选)
启动顺序 -> 高级 -> BIOS:EFI 64位

共享文件夹(可选)
选择 整个 $HOME
目录吧


应用程序(可选)

打印机(可选)

CD/DVD(可选)

隔离 linux 与 mac
不建议打开
关闭3d加速

archlinux 基础安装
⛵ 万事俱备,只欠东风
经过了上一节的准备工作,我们可以开始正式安装 archlinux 了。如果你还没有完成前面的阅读,请先仔细阅读章节 安装前的准备。如果对本节的步骤不理解或者有疑问,请阅读下一节 基础安装详解
本节从安装最基础的、无图形化界面的 archlinux 系统开始。如有需要可以参阅 ArchWiki 官方安装指南。
ℹ️ 提示
本节中的截图来自虚拟机和已经安装好的 archlinux。不用担心!和你在实体机看到的是一样的。
⚠️ 注意
请按照指南的步骤一步一步进行!不要跳步、也不要在步骤中添加多余的动作!
另外,如果安装中有报错,请弄清楚报错的原因(这要求你起码能看懂有报错)!常见的原因包括但不限于输错了命令、添加了多余的步骤等。在解决了问题之后再进行下一步!
0. 进入安装环境

在第一个选项回车
进入安装环境后,便可以开始通过命令安装 archlinux 了
1. 禁用 reflector 服务
2020 年,archlinux 安装镜像中加入了 reflector
服务,它会自己更新 mirrorlist
(软件包管理器 pacman
的软件源)。在特定情况下,它会误删某些有用的源信息。这里进入安装环境后的第一件事就是将其禁用。也许它是一个好用的工具,但是很明显,因为地理上造成的特殊网络环境,这项服务并不适合启用。
通过以下命令将该服务禁用:
1
systemctl stop reflector.service
通过以下命令查看该服务是否被禁用,按下
q
退出结果输出:1
systemctl status reflector.service
ℹ️ 提示
在命令行中你可以使用如下命令清屏:
1 clear同时,你可以使用
Tab
键在输入命令的时候对命令、参数或文件路径进行自动补全,提高效率的同时降低输入错误的风险。
2. 再次确认是否为 UEFI 模式
禁用 reflector
服务后,我们再来确认一下是否为 UEFI
模式:
1 | ls /sys/firmware/efi/efivars |

若输出了一堆东西(efi
变量),则说明已在 UEFI
模式。否则请确认你的启动方式是否为 UEFI
。
3. 连接网络
ℹ️ 提示
archlinux 的安装必须要求网络环境。
ℹ️ 提示
若为虚拟机且按照上一节 虚拟机安装前的准备 进行了配置;同时宿主机连接了网络,那么虚拟机应该已经连接网络了。
若使用无线连接
使用 iwctl
进行连接:
1 | iwctl # 进入交互式命令行 |
ℹ️ 提示
若无线网卡无法显示,请按照上一节 确保网络环境 的说明确保你的无线网卡硬件开关处于打开状态。
你可以使用如下命令查看内核是否加载了你的无线网卡驱动。
1 lspci -k | grep Network以我的硬件为例,输出如下:
1 00:14.3 Network controller: Intel Corporation Wi-Fi 6 AX201 (rev 20)如果你的 BIOS 没有开启无线网卡的开关可以参考下列的命令来开启
WIFI
1
2 rfkill list #查看无线连接 是否被禁用(blocked: yes)
ip link set wlan0 up #比如无线网卡看到叫 wlan0若看到类似
Operation not possible due to RF-kill
的报错,继续尝试rfkill unblock wifi
来解锁无线网卡。
1 rfkill unblock wifi部分无线网卡不兼容,请考虑使用有线连接安装 archlinux。
若使用有线连接
正常来说,只要插上一个已经联网的路由器分出的网线(DHCP),直接就能联网。
可以等待几秒等网络建立连接后再进行下一步测试网络的操作。
若笔记本没有网线接口请使用带网线接口的扩展坞。
4. 测试网络连通性
通过 ping
命令测试网络连通性:
1 | ping www.bilibili.com |

稍等片刻,若能看到数据返回,即说明已经联网。与 Windows 不同的是,需要按下 Ctrl
+ C
手动退出 ping
命令。
ℹ️ 提示
如果无线网络还是无法连接,请使用
ip link
命令查看无线网卡设备,使用ip link set <设备名> up
命令激活对应的无线网卡。若看到类似Operation not possible due to RF-kill
的报错,继续尝试rfkill unblock wifi
来解锁无线网卡。如有需要,可以参考 ArchWiki 相关内容。
5. 更新系统时钟
使用 timedatectl
确保系统时间是准确的。这一步不是可选的,正确的系统时间对于部分程序来说非常重要:
1 | timedatectl set-ntp true # 将系统时间与网络时间进行同步 |

6. 更换国内软件仓库镜像源加快下载速度
使用 vim
编辑器修改 /etc/pacman.d/mirrorlist
文件。将 pacman
软件仓库源更换为国内软件仓库镜像源:
1 | vim /etc/pacman.d/mirrorlist |
ℹ️ 提示
如果不会使用
vim
编辑器,请参阅 这里。
vim
编辑器在安装和配置系统的过程中还需要使用多次。
放在最上面的是会使用的软件仓库镜像源,推荐的镜像源如下:
1 | Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch # 中国科学技术大学开源镜像站 |

修改完成的 /etc/pacman.d/mirrorlist
文件如图所示。
ℹ️ 提示
如果发现
/etc/pacman.d/mirrorlist
是如图这个样子的,那么说明你禁用reflector
服务晚了。reflector
已经自动帮你生成了新的软件仓库镜像源列表。不过没有关系,手动将国内软件仓库镜像源放在最前面即可。![]()
⚠️ 注意
前车之鉴 —— 请不在这一步中添加
archlinuxcn
源!如果你在/etc/pacman.conf
中添加了内容,请将它们删掉。
7. 分区和格式化(使用 Btrfs 文件系统)
7-1. 分区
ℹ️ 提示
虚拟机安装请同时参阅步骤 🆕 全新安装。
分区步骤对于有些人来说是个难点,如果有不理解的地方请参阅下一节 基础安装详解。
同时,分区其它说明也会在下一节 基础安装详解 详细列出。
☢️ 警告
分区操作的部分命令具有危险性!除非你知道每一个命令在干什么,否则请不要执行!
同时,请提前做好数据备份,防止数据丢失!
本指南考虑到多数情况,在这里首先介绍 win10 和 archlinux 在一个磁盘上双系统的分区配置。
/
根目录:>= 128GB
(和用户主目录在同一个Btrfs
文件系统上)/home
用户主目录:>= 128GB
(和根目录在同一个Btrfs
文件系统上)/boot
EFI 分区:256MB
(由电脑厂商或 Windows 决定,无需再次创建)- Swap 分区:
>= 电脑实际运行内存的 60%
(设置这个大小是为了配置休眠准备)
ℹ️ 提示
因为采用
Btrfs
文件系统,所以根目录和用户主目录实际在一个分区上,只是在不同的子卷上而已。这里根目录和用户主目录的大小仅为参考,一般来说日常使用的 linux 分配 128GB 已经够用了。
通过
lsblk
命令,区分要安装 archlinux 的磁盘(通过观察磁盘的大小、已存在的分区情况等判断)并显示当前磁盘的分区情况:1
lsblk # 显示当前分区情况
此处要分区和安装 archlinux 的磁盘即为
sda
。请根据你的实际情况判断!ℹ️ 提示
为了模拟真实的环境,笔者手动创建了三个分区分别代表:
sda1
—— EFI 分区sda2
—— win10 下的 C 盘(象征性的分了1GB
)sda3
—— win10 下的 D 盘(象征性的分了1GB
)
ℹ️ 提示
注意此处并不会显出出未分配的磁盘空间!只有在使用
cfdisk
执行分区操作后才会显示出来。ℹ️ 提示
如果你的硬盘是 NVME 协议的固态硬盘,那么将不是
sdx
而是nvmexn1
。接下来使用
cfdisk
命令对磁盘分区(对于 SATA 协议的硬盘,x
为字母a
、b
或c
等等;对于 NVME 协议的硬盘,x
为数字0
、1
或2
等等,请根据实际情况判断):SATA
1
cfdisk /dev/sdx # 对安装 archlinux 的磁盘分区
NVME
1
cfdisk /dev/nvmexn1 # 对安装 archlinux 的磁盘分区
进入
cfdisk
分区工具之后,你会看到如图所示的界面。通过方向键↑
和↓
可以在要操作磁盘分区或空余空间中移动;通过方向键←
和→
在对当前高亮的磁盘分区或空余空间要执行的操作中移动。首先创建 Swap 分区。选中
Free space
> 再选中操作[New]
> 然后按下回车Enter
以新建swap
分区(类似 Windows 的交换文件)按下回车后会提示输入
分区大小
,Swap 分区建议为**电脑内存大小的 60%**,或者和内存大小相等 -> 然后按下回车Enter
ℹ️ 提示
单位可以自行输入,如
GB
、MB
等等。默认新建的类型是
Linux filesystem
,我们需要将类型更改为Linux swap
。选中操作[Type]
> 然后按下回车Enter
> 通过方向键↑
和↓
选中Linux swap
> 最后按下回车Enter
我们再只需要一个分区即可(因为使用
Btrfs
文件系统,所以根目录和用户主目录在一个分区上),所以类似的:选中Free space
> 再选中操作[New]
> 然后按下回车Enter
以新建分区输入
分区大小
(默认是剩余的全部空间。请根据实际情况输入)> 然后按下回车Enter
分区类型默认即可,无需更改。接下来选中操作
[Write]
并回车Enter
> 输入yes
并回车Enter
确认分区操作⚠️ 注意
只有写入了操作分区表才会更改。
选中操作
[Quit]
并回车Enter
以退出cfdisk
分区工具☢️ 警告
再次提醒!请仔细检查命令和操作的正确性,否则将出现不可预料的情况。最危险的是可能造成数据丢失!
常见的错误包括不小心把 Windows 的分区删掉了 😥。
分区完成后,使用
fdisk
或lsblk
命令复查分区情况:fdisk
1
fdisk -l # 复查磁盘情况
lsblk
1
lsblk # 复查磁盘情况
7-2. 格式化并创建 Btrfs 子卷
7-2.0. 格式化 EFI 分区
SATA
1
mkfs.fat -F32 /dev/sdxn
NVME
1
mkfs.fat -F32 /dev/nvmexn1pn
⚠️ 注意
如果目标是双系统(Win10/Win11 + Arch Linux),并且 Win10/Win11 和 Arch Linux 将要共存在一个硬盘上的话,不要重新格式化原有的 EFI 分区,因为它可能包含启动其他操作系统所需的文件。
7-2-1. 格式化 Swap 分区
通过以下命令格式化对应的 Swap 分区,请按照实际情况替换 x
和 n
(下同):
SATA
1
mkswap /dev/sdxn
NVME
1
mkswap /dev/nvmexn1pn

7-2-2. 格式化 Btrfs 分区
首先我们需要将整一个分区格式化为
Btrfs
文件系统。使用如下命令进行格式化:SATA
1
mkfs.btrfs -L myArch /dev/sdxn
NVME
1
mkfs.btrfs -L myArch /dev/nvmexn1pn
📑 命令参数说明:
-L
选项后指定该分区的LABLE
,这里以myArch
为例,也可以自定义,但不能使用特殊字符以及空格,且最好有意义
为了创建子卷,我们需要先将
Btrfs
分区挂载到/mnt
下:SATA
1
mount -t btrfs -o compress=zstd /dev/sdxn /mnt
NVME
1
mount -t btrfs -o compress=zstd /dev/nvmexn1pn /mnt
📑 命令参数说明:
-t
选项后指定挂载分区文件系统类型-o
选项后添加挂载参数:
-compress=zstd
—— 开启透明压缩
使用
df
命令复查挂载情况:1
df -h # -h 选项会使输出以人类可读的单位显示
7-2-3. 创建 Btrfs 子卷
通过以下命令创建两个
Btrfs
子卷,之后将分别挂载到/
根目录和/home
用户主目录:1
2btrfs subvolume create /mnt/@ # 创建 / 目录子卷
btrfs subvolume create /mnt/@home # 创建 /home 目录子卷⚠️ 注意
除非你清楚你的操作产生的后果,否则请保持子卷名称和结构与本指南一致,因为在后面我们会设置的快照工具
timeshift
只支持这种子卷布局。通过以下命令复查子卷情况:
1
btrfs subvolume list -p /mnt
子卷创建好后,我们需要将
/mnt
卸载掉,以挂载子卷:1
umount /mnt
8. 挂载
在挂载时,挂载是有顺序的,需要从根目录开始挂载。使用如下命令挂载子卷:
SATA
1
2
3
4
5
6mount -t btrfs -o subvol=/@,compress=zstd /dev/sdxn /mnt # 挂载 / 目录
mkdir /mnt/home # 创建 /home 目录
mount -t btrfs -o subvol=/@home,compress=zstd /dev/sdxn /mnt/home # 挂载 /home 目录
mkdir -p /mnt/boot # 创建 /boot 目录
mount /dev/sdxn /mnt/boot # 挂载 /boot 目录
swapon /dev/sdxn # 挂载交换分区NVME
1
2
3
4
5
6mount -t btrfs -o subvol=/@,compress=zstd /dev/nvmexn1pn /mnt # 挂载 / 目录
mkdir /mnt/home # 创建 /home 目录
mount -t btrfs -o subvol=/@home,compress=zstd /dev/nvmexn1pn /mnt/home # 挂载 /home 目录
mkdir -p /mnt/boot # 创建 /boot 目录
mount /dev/nvmexn1pn /mnt/boot # 挂载 /boot 目录
swapon /dev/nvmexn1pn # 挂载交换分区
使用
df
命令复查挂载情况:1
df -h
使用
free
命令复查 Swap 分区挂载情况:1
free -h # -h 选项会使输出以人类可读的单位显示
9. 安装系统
通过如下命令使用
pacstrap
脚本安装基础包:1
2pacstrap /mnt base base-devel linux linux-firmware btrfs-progs
# 如果使用btrfs文件系统,额外安装一个btrfs-progs包📑 命令参数说明:
base-devel
——base-devel
在AUR
包的安装过程中是必须用到的linux
—— 内核软件包,这里建议先不要替换为其它内核
如果提示 GPG 证书错误,可能是因为使用的不是最新的镜像文件,可以通过更新
archlinux-keyring
解决此问题1
pacman -S archlinux-keyring
通过如下命令使用
pacstrap
脚本安装其它必要的功能性软件:1
pacstrap /mnt networkmanager vim sudo zsh zsh-completions
📑 命令参数说明:
zsh
——zsh-completions
如果你是 bash 的爱好者,请把这两个包换成bash-completion
- 如果你是第一次接触*nix 系统的新手,不建议换成 bash
经过一系列安装时提示信息的刷屏,这些包就安装好了。
⚠️ 注意
在执行命令前,请仔细检查命令的拼写正确;同时注意不要漏装东西。
很多人在后续的步骤中报错就是因为这里漏装了东西。
如果报错,请检查拼写,同时请确保之前的步骤 更换国内软件仓库镜像源加快下载速度 中没有添加
archlinuxcn
源。
10. 生成 fstab 文件
fstab
用来定义磁盘分区。它是 Linux 系统中重要的文件之一。使用genfstab
自动根据当前挂载情况生成并写入fstab
文件:1
genfstab -U /mnt > /mnt/etc/fstab
复查一下
/mnt/etc/fstab
确保没有错误:1
cat /mnt/etc/fstab
若为 NVME 协议的硬盘,输出结果应该与此类似:
1
2
3
4
5
6
7
8
9
10
11# /dev/nvme0n1p6 / btrfs rw,relatime,compress=zstd:3,ssd,space_cache,subvolid=256,subvol=/@,subvol=@ 0 0
UUID=d01a3ca5-0798-462e-9a30-97065e7e36e1 / btrfs rw,relatime,compress=zstd:3,ssd,space_cache,subvolid=256,subvol=/@,subvol=@ 0 0
# /dev/nvme0n1p1 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2
UUID=522C-80C6 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2
# /dev/nvme0n1p6 /home btrfs rw,relatime,compress=zstd:3,ssd,space_cache,subvolid=257,subvol=/@home,subvol=@home 0 0
UUID=d01a3ca5-0798-462e-9a30-97065e7e36e1 /home btrfs rw,relatime,compress=zstd:3,ssd,space_cache,subvolid=257,subvol=/@home,subvol=@home 0 0
# /dev/nvme0n1p5 none swap defaults 0 0
UUID=8e40dbed-590f-4cb8-80de-5cef8343a9fc none swap defaults 0 0
11. change root
使用以下命令把系统环境切换到新系统下:
1 | arch-chroot /mnt |

此时,原来安装盘下的 /mnt
目录就变成了新系统的 /
目录。同时,可以发现命令行的提示符颜色和样式也发生了改变。
12. 设置主机名与时区
首先在
/etc/hostname
设置主机名:1
vim /etc/hostname
加入你想为主机取的主机名,这里比如叫 myarch。
ℹ️ 提示
主机名不要包含特殊字符以及空格。
接下来在
/etc/hosts
设置与其匹配的条目:1
vim /etc/hosts
加入如下内容:
1
2
3127.0.0.1 localhost
::1 localhost
127.0.1.1 myarch.localdomain myarchℹ️ 提示
你可以使用Tab
对齐。ℹ️ 提示
某些情况下如不设置主机名,在 KDE 下可能会存在网络情况变更时无法启动 GUI 应用的问题,在终端中出现形如No protocol specified qt.qpa.xcb: could not connect to display
的错误。这种情况极为少见。
但不管如何,即使没有问题,我们都应该设置好主机名。随后设置时区,在
/etc/localtime
下用/usr
中合适的时区创建符号链接:1
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
🍧 碎碎念
不要找北京啦!这里没有北京,只有上海啦!🚀
ℹ️ 提示
同时,你也可以使用其它时区:
13. 硬件时间设置
使用如下命令将系统时间同步到硬件时间:
1 | hwclock --systohc |
14. 设置 Locale
Locale
决定了软件使用的语言、书写习惯和字符集。
编辑
/etc/locale.gen
,去掉en_US.UTF-8 UTF-8
以及zh_CN.UTF-8 UTF-8
行前的注释符号(#
):1
vim /etc/locale.gen
ℹ️ 提示
有几个选项极具迷惑性,请不要取消注释错了。
然后使用如下命令生成
locale
:1
locale-gen
向
/etc/locale.conf
输入内容:1
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
⚠️ 注意
不推荐在此设置任何中文
locale
,会导致tty
乱码。
15. 为 root 用户设置密码
1 | passwd root |

ℹ️ 提示
根据提示操作即可。注意输入密码时不会显示哦,不要以为 ⌨ 键盘坏了。
16. 安装微码
通过以下命令安装对应芯片制造商的微码:
1 | pacman -S intel-ucode # Intel |
ℹ️ 提示
🎉 恭喜你!这是你在新系统中第一次使用
pacman
软件包管理器安装软件!在这里一路回车完成安装即可。如果你不会使用,请参阅 这里。
17. 安装引导程序
如有需要可以参阅 ArchWiki 相关内容。
安装相应的包:
1
pacman -S grub efibootmgr os-prober
📑 命令参数说明:
-S
选项后指定要通过1
pacman
包管理器安装的包:
grub
—— 启动引导器efibootmgr
——efibootmgr
被grub
脚本用来将启动项写入 NVRAMos-prober
—— 为了能够引导 win10,需要安装os-prober
以检测到它
安装 GRUB 到 EFI 分区:
1
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH
📑 命令参数说明:
--efi-directory=/boot
—— 将grubx64.efi
安装到之前的指定位置(EFI 分区)--bootloader-id=ARCH
—— 取名为ARCH
接下来使用
vim
编辑/etc/default/grub
文件:1
vim /etc/default/grub
进行如下修改:
去掉
GRUB_CMDLINE_LINUX_DEFAULT
一行中最后的quiet
参数把
loglevel
的数值从3
改成5
。这样是为了后续如果出现系统错误,方便排错加入
nowatchdog
参数,这可以显著提高开关机速度为了引导 win10,则还需要添加新的一行
GRUB_DISABLE_OS_PROBER=false
1
2
3
4
5
6
7
8
9#GRUB boot loader configuration
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5 nowatchdog"
GRUB_CMDLINE_LINUX=""
GRUB_DISABLE_OS_PROBER=false
...
最后生成
GRUB
所需的配置文件:1
grub-mkconfig -o /boot/grub/grub.cfg
若引导了 win10,则输出应该包含倒数第二行:
若 win10 安装在另一个硬盘中则不会输出 可在进入系统后挂载硬盘并重新执行该命令, 具体步骤见这里
ℹ️ 提示
1.在某些主板安装完成后,你会发现没有启动条目。这是因为某些主板的 UEFI 固件在显示 UEFI NVRAM 引导条目之前,需要在特定的位置存放可引导文件,不支持自定义存放
efi
文件(如微星 Z170-A Gaming PRO)。解决方案是在默认启动路径下安装GRUB
。重新插入安装优盘,按原先顺序挂载目录(不需要再次创建文件夹了),chroot
到/mnt
,然后你可以直接把已经生成好的efi
文件移动到默认目录下,如下命令所示。只有安装完成后你的主板不出现启动条目才需要尝试如下命令,正常安装无需执行。如有需要可以参考 ArchWiki 对应内容。1
2mv /boot/EFI/grub /boot/EFI/BOOT
mv /boot/EFI/GRUB/grubx64.efi /boot/EFI/BOOT/BOOTX64.EFI2.
os-prober
在 chroot 环境中可能无法正常运作。如果遇到这种情况,重启并引导进入系统后再次尝试生成配置文件。
18. 完成安装
输入以下命令:
1
2
3exit # 退回安装环境
umount -R /mnt # 卸载新分区
reboot # 重启注意,重启前要先拔掉优盘,否则你重启后还是进安装程序而不是安装好的系统。
ℹ️ 提示
虚拟机直接重启即可。
如图即为 GRUB 引导界面。
ℹ️ 提示
若引导了 win10 也会显示出来。
ℹ️ 提示
若 win10 分区使用了 🔐 Bitlocker 加密,则第一次从 GRUB 进入需要输入解锁密钥。
你应该在步骤 5. 获取 Bitlocker 恢复密钥 中已经知晓了 Bitlocker 解锁密钥。
若无法从 aka.ms 相关页面 获取解锁密钥,请尝试在 BIOS 中将 Windows Boot Manager 移动到启动顺序首位再尝试进入 win10。
重启后使用 root 账户登录系统:
设置开机自启并立即启动 networkmanager 服务,即可连接网络:
1
2systemctl enable --now NetworkManager # 设置开机自启并立即启动 NetworkManager 服务
ping www.bilibili.com # 测试网络连接若为无线连接,则需要在启动
networkmanager
后使用nmcli
连接网络:1
2nmcli dev wifi list # 显示附近的 Wi-Fi 网络
nmcli dev wifi connect "Wi-Fi名(SSID)" password "网络密码" # 连接指定的无线网络也可以使用
nmtui
来配置网络1
nmtui
neofetch
可以将系统信息和发行版 logo 一并打印出来。通过pacman
安装neofetch
:1
pacman -S neofetch
使用
neofetch
打印系统信息:1
neofetch
🍧 碎碎念
又到了
neofetch
的时间了吗?
祝贺!
到此为止,一个基础的、无图形界面的 archlinux 已经安装完成了!这时你应该可以感到满满的满足感(即使你还没有见到图形化的界面)。好好享受一下成功安装 archlinux 的喜悦吧!
如果你对本节的部分步骤不理解,请仔细阅读下一节 基础安装详解。在此之后,我们来安装图形界面。
ℹ️ 提示
你可以使用以下命令关机:
1
2
3 shutdown -h now
# 或者
poweroff
ℹ️ 提示
archlinux 在 2021 年 4 月在安装镜像中内置了一个 安装脚本,类似一个一键安装脚本,提供一些选项,即可快速安装(填问卷安系统)。和所有一键安装脚本类似,提供自动化,但不灵活的安装过程。缺陷包括但不限于:
- 只提供有限的文件系统格式
- 只可限定在一个磁盘
- 不能指定软件仓库镜像源
- 只提供有限的桌面选择
- 自动分区不可手动干预
- 输入错误直接崩溃退出
- 仅支持 UEFI 等
不建议使用这个安装脚本,除了以上各种原因,初学者也无法在这种安装过程中学到任何东西。如果你因为某些原因需要快速启动一个基础的 archlinux 环境,那么可以尝试此脚本。
显卡驱动
近年来,archlinux 的显卡驱动安装已经变得非常容易。本小节区分集成显卡、独立显卡和双显卡(集显 + 独显)三大类讨论 archlinux 显卡驱动的安装
所有 AMD 显卡建议使用开源驱动,英伟达显卡建议使用闭源驱动。
- 进行本小节内容时建议按照步骤 12. 设置 Timeshift 快照 设置了 Timeshift 快照,并且已经有至少一张快照。
- 虚拟机不需要安装显卡驱动。
- 若在设置过程中导致黑屏无法进入桌面,请尝试使用使用
Ctrl
+Alt
+F1 ~ F6
在tty1 ~ tty6
之间切换。将导致黑屏的配置删掉或使用快照恢复后重新启动电脑。
请确保已经按照本指南之前的章节安装配置好系统再向下进行,不要多个教程混着看(尤其是一些过时的教程)。因为可能导致漏掉本指南前置步骤中的某些操作,从而造成问题。
集成显卡
Intel 核芯显卡
如有需要可以参阅 ArchWiki 相关内容。
通过以下命令安装如下几个包即可:
1 | sudo pacman -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel |
不建议安装
xf86-video-intel
,而应使用 Xorg 的 modesetting 驱动(也就是什么都不用装的意思)
注意,只有 Intel HD 4000 及以上的集显才支持 vulkan。
AMD 集成显卡
如有需要可以参阅 ArchWiki 相关内容。
选择驱动
对于具有集成显卡的 AMD 处理器,需要先确定集显架构(Architecture)是什么,再决定安装什么驱动。
推荐在 TECHPOWERUP 进行查询,信息非常全面。在确定了显卡架构后,再根据架构对照下表决定安装什么驱动。
GPU 架构 | Radeon 显卡 | 开源驱动 | 非开源驱动 |
---|---|---|---|
GCN 4 及之后 | 多种* | AMDGPU* | AMDGPU PRO* |
GCN 3 | 多种 | AMDGPU | AMDGPU PRO |
GCN 2 | 多种 | AMDGPU/ ATI* | 不支持 |
GCN 1 | 多种 | AMDGPU / ATI | 不支持 |
TeraScale 2&3 | HD 5000 - HD 6000 | ATI | 不支持 |
TeraScale 1 | HD 2000 - HD 4000 | ATI | 不支持 |
旧型号 | X1000 及之前 | ATI | 不支持 |
*多种
*ATI
对于
GCN 2.0
及以下架构的老显卡,直接安装开源 ATI 驱动即可,原本老旧的闭源 Catalyst 驱动在 2021 年已被废弃。GCN 2.0
及以下架构的老显卡也不要使用开源 AMPGPU 驱动,因为其仅处于实验性质,需要各种自定义内核编译选项与配置,非常麻烦、得不偿失。
对于新型号(GCN 3
架构及更新)的集成显卡,直接安装开源驱动 AMDGPU 即可。
下面是一些例子:
你的笔记本 cpu 是目前常见的 AMD Ryzen™ 7 4800U,它的集显为 Vega 8。通过查询,可知其为
GCN 5.0
架构,那么对照上表,你应该安装 AMDGPU 开源驱动。你的台式机 cpu 是目前常见的 AMD Ryzen™ 5 3400G,它的集显为 Vega 11。通过查询,可知其为
GCN 5.0
架构,那么对照上表,你应该安装 AMDGPU 开源驱动。再老一些的 7th Gen A10-9700 APU 处理器 ,它的集显为 Radeon R7。通过查询,可知其为
GCN 2.0
架构,那么对照上表,你应该安装 ATI 开源驱动。
安装驱动
通过以下命令安装如下几个包即可:
1 | sudo pacman -S mesa lib32-mesa xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeon |
1 | sudo pacman -S mesa lib32-mesa xf86-video-ati |
独立显卡
NVIDIA 独立显卡
部分 NVIDIA 独立显卡目前在 archlinux 下体验非常不好,存在以下问题:
- 部分桌面特效(如窗口惯性晃动)很卡
- 游戏无法正常运行
- 画面撕裂
若遇到了上述问题,建议在 archlinux 中还是单独使用集成显卡(如果有)吧(还可以节省电量)。如果要 🎮 打游戏不妨重启到 win10。
如有需要可以参阅 ArchWiki 相关内容。
对于 Turing (NV160/TUXXX) 系列或更新的显卡,需要安装 nvidia-open 驱动
该驱动的质量目前处于 ‘alpha quality’ 状态,所以也许会有问题。并且它暂时不适用于具有 AMD 集成 GPU 的系统。
[linux] 1
sudo pacman -S nvidia-open nvidia-settings lib32-nvidia-utils # 必须安装
[others] 1
sudo pacman -S nvidia-open-dkms nvidia-settings lib32-nvidia-utils # 必须安装
其他较新型号的独立显卡使用以下命令直接安装如下几个包即可:
[linux] 1
sudo pacman -S nvidia nvidia-settings lib32-nvidia-utils # 必须安装
[others] 1
sudo pacman -S nvidia-dkms nvidia-settings lib32-nvidia-utils # 必须安装
如果是 GeForce 630 以下到 GeForce 400 系列的老卡,使用以下命令安装 nvidia-390xx-dkmsaur 及其 32 位支持包:
1
yay -S nvidia-390xx-dkms nvidia-settings lib32-nvidia-390xx-utils
再老的显卡直接使用以下命令安装 开源驱动 即可:
1
sudo pacman -S mesa lib32-mesa xf86-video-nouveau
安装 NVIDIA 官方的驱动之后,需要编辑
/etc/mkinitcpio.conf
,在HOOKS
一行删除kms
并保存,然后执行mkinitcpio -P
重新生成一次镜像。这能防止 initramfs 包含 nouveau 模块,避免 nouveau 和官方驱动的冲突。
AMD 独立显卡
AMD 独立显卡的驱动安装步骤实际上和 AMD 集成显卡是相同的,都需要先确定架构,然后选定正确的驱动安装即可。参考步骤 AMD 集成显卡。
双显卡(集显 + 独显)
如有需要可以参阅 ArchWiki 相关内容。
NVIDIA 独立显卡
optimus-manager 已经支持 AMD 集成显卡 + NVIDIA 独立显卡组合。
如有需要可以参考 optimus-manager 官方文档。
同时拥有集成显卡与独立显卡的笔记本电脑,同样需要按照上述步骤先安装各个对应的软件包。除此之外还需要安装 optimus-managercn / aur 以及其图形前端 optimus-manager-qtaur。通过该程序可以在集成显卡和独立显卡间轻松切换。optimus-manager 提供三种模式 —— 分别为仅用独显、仅用集显以及 hybrid 动态切换模式。
使用以下命令安装相关软件包:
[cn] 1
yay -S optimus-manager optimus-manager-qt
[aur] 1
yay -S aur/optimus-manager optimus-manager-qt
安装完成后重启即可使用。optimus-manager 安装完成后会默认设置
optimus-manager.service
服务自动启动,但建议还是通过以下命令手动设置一下:1
sudo systemctl enable optimus-manager.service
重启后在在菜单栏打开 optimus-manager 即可使用。可在其设置中设置开机自动启动:
此时你应该已经可以进行显卡切换了。
如果有问题,请详细阅读 optimus-manager 的文档,里面有详细的描述。由于各类问题太多,本文不再赘述。此处仅列出几项较为重要的注意事项:
- 如果需要在独显和集显模式间切换,要注意你没安装各类 GPU 监控插件,它们会阻止显卡切换,导致不可预料的错误
- 不要使用 Nvidia Control Panel 中的
Save to X Configuration file
,会导致配置冲突- 在显卡之间的切换时,重新登陆后如在 splash screen 卡住或者黑屏,可以尝试按照上述提示在
tty1 ~ tty6
之间进行切换
动态切换
hybrid 动态切换模式并不是自动的(类似 win10),需要手动添加环境变量。
hybrid 动态切换模式本质上是使用针对使用闭源驱动的双显卡 PRIME 方法进行切换 —— 这需要设置三个环境变量。有两种方法:
通过命令手动添加前缀,也可直接添加环境变量在全局环境下(不推荐)。如果加在了全局环境中,在从 hybrid 动态切换模式切换到其他模式之前一定要去掉这三个环境变量,否则会黑屏
用 nvidia-prime 包提供的命令
prime-run
prime-run 方法
prime-run
部分应用可以不需要安装 optimus-manager,直接运行。但不推荐这样,因为除了部分应用会报错之外也无法使用仅独立显卡模式。
通过以下命令安装 nvidia-prime 包:
1
sudo pacman -S nvidia-prime
通过以下命令(请将
%command%
替换为要运行的命令)以使用 NVIDIA 独立显卡运行程序:1
prime-run %command%
运行 steam 游戏的例子:
1 | prime-run steam steam://rungameid/570 # 运行 Dota 2 |
steam 游戏的启动参数 steam://rungameid/xxx
可通过以下方式查找:
右键需要运行的游戏图标 > 点击
编辑应用程序...
:在
应用程序
选项卡 >命令
处查看:
环境变量方法
手动输入
通过以下命令(请将 %command%
替换为要运行的命令)以使用 NVIDIA 独立显卡运行程序:
1 | __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME="nvidia" __VK_LAYER_NV_optimus="NVIDIA_only" %command% |
运行 steam 游戏的例子:
1 | __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME="nvidia" __VK_LAYER_NV_optimus="NVIDIA_only" steam steam://rungameid/570 # 运行 Dota 2 |
全局变量
optimus-manager 官方文档 中不推荐将此环境变量添加到全局环境。
It is not recommended to set those variables system-wide (like in
/etc/environment
), since it would defeat the point of hybrid mode, and can also break desktop compositing on some environment (resulting in a black screen).
也就是说会遇到这些问题:
- Kwin / 显示特效混合器(混成器)奔溃(毛玻璃效果消失,原本是透明或毛玻璃效果的背景变黑)
- 黑屏
使用
vim
编辑/etc/environment
文件:1
sudo vim /etc/environment
加入以下内容:
1
2
3__NV_PRIME_RENDER_OFFLOAD=1
__GLX_VENDOR_LIBRARY_NAME="nvidia"
__VK_LAYER_NV_optimus="NVIDIA_only"保存并退出
vim
电源管理
如果不是强烈追求能效控制以及注重电池寿命的用户,那么可以略过此段。配置电源管理需要针对你的硬件以及笔记本型号尝试正确的电源管理方式。
此部分的设置可能导致黑屏,并且尝试过程可能较长,也可能会遇到各类问题。请根据自身需求和能力选择是否操作。
电源管理做的事情是,在只用集显的模式下,确保正确关闭独立显卡;而在混合模式下,绝大多数情况下 NVIDIA 模块实际是始终开启的,电源管理并不生效。
这件事情其实很复杂,因为对于不同的显卡型号,以及笔记本型号的组合,可行的方案都是不同的。笼统来说,最广泛适用的办法是 Bbswitch。但不建议上来就按照此方式安装使用,因为某些特定的硬件就是会出问题(黑屏)。
建议按照 optimus-manager 官方文档 一步步尝试,最后找到属于你自己电脑合适的电源管理方式。此文档必须详细阅读!
针对大多数笔记本适用的 Bbswitch,此处进行安装使用的讲解。
通过以下命令安装包
bbswitch
;若使用其它内核,则安装包bbswitch-dkms
:[linux] 1
sudo pacman -S bbswitch
[others] 1
sudo pacman -S bbswitch-dkms
右键 optimus-manager 的托盘图标 > 点击
设置
> 在 Optimus 选项卡中的switch method
中选择Bbswitch
即可:重启之后,若使用仅集显模式使用如下命令验证 NVIDIA 独立显卡是否被禁用:
1
lspci | grep NVIDIA
若有
rev ff
字样,则表示独显已经成功禁用。
AMD 独立显卡
虽然 AMD 独立显卡无法使用 optimus-manager,但可以使用针对使用开源驱动的双显卡 PRIME 方法进行切换。也就是使用 DRI_PRIME=1
前缀使用独立显卡(可能还更简单了?🤔)。
通过以下命令(请将
%command%
替换为要运行的命令)以使用 AMD 独立显卡运行程序:1
DRI_PRIME=1 %command%
运行 steam 游戏的例子:
1
2DRI_PRIME=1 steam steam://rungameid/570 # 运行 Dota 2
DRI_PRIME=1 steam steam://rungameid/730 # 运行 CS:GO可以使用以下命令分别对集成显卡和独立显卡进行性能测试,选择分数更高的一个使用:
[集成显卡] 1
glmark2
[独立显卡] 1
DRI_PRIME=1 glmark2
关于 glmark2 的说明请参阅 glmark2。
可以在 steam 游戏的启动前缀中加入
DRI_PRIME=1 mangohud %command%
来使用独显的同时显示帧数等信息。关于 mangohudaur 的使用请参阅 这里。
性能测试
如有需要可以参考 ArchWiki 相关内容。
glxgears
最传统和广为人知的方式是使用 glxgears
命令进行测试,其属于 mesa-utils 包。
通过以下命令安装 mesa-utils 包(可能已经安装了):
1
sudo pacman -S mesa-utils
通过以下命令进行测试:
1
glxgears
随后会弹出一个小窗口运行测试程序:
帧数会打印在终端中:
使用
Ctrl
+C
退出测试glxgears
仅仅只能提供简单的测试场景及帧数显示,只测试了当前 OpenGL 功能的一小部分,功能明显不足。笔者推荐如下两种工具。
glmark2
glmark2 提供了一系列丰富的测试,涉及图形单元性能(缓冲、建筑、照明、纹理等)的不同方面,允许进行更全面和有意义的测试。每次测试单独计算帧速率。最终,程序根据之前的所有测试给出一个最终分数。在 archlinux 上属于包 glmark2cn / aur。
使用以下命令安装 glmark2:
[cn] 1
sudo pacman -S glmark2
[aur] 1
yay -S aur/glmark2
使用以下命令启动 glmark2:
1
glmark2
随后会弹出一个小窗口运行测试程序:
以笔者的硬件为例(集成显卡),测试结果如下:
Unigine benchmark
Unigine 3D 引擎是一个更全面的基准测试工具。截止目前有五个版本,从新到旧分别是:
- superpositionEULA(2017)
- valleyEULA(2013)
- heavenEULA(2009)
- tropicsEULA(2008)
- sanctuaryEULA(2007)
可以使用以下命令从 AUR 下载全部版本(选一个即可):
1
2
3
4
5yay -S unigine-superposition
yay -S unigine-valley
yay -S unigine-heaven
yay -S unigine-tropics
yay -S unigine-sanctuary使用以下命令启动 Unigine benchmark(输入对应安装的版本):
1
2
3
4
5unigine-superposition
unigine-valley
unigine-heaven
unigine-tropics
unigine-sanctuary调整参数后,点击
RUN
即可进入测试,帧数会显示在右上角点击左上角
基准
开始基准测试点击左上角
退出
并确定
即可退出测试
此基准测试工具拥有实时的环境遮挡、来自不同来源的相互关联的灯光、HDR 效果图、逼真的水和具有大气光散射的动态天空。此外还可以设置抗锯齿级别、纹理质量和滤波、各向异性和着色器质量。
显卡信息查看
NVIDIA 独立显卡
nvidia-settings
这个包即可全面的展示显卡相关信息(在步骤 NVIDIA 独立显卡 中已经安装)。
AMD 独立显卡 / 集成显卡
通过以下命令安装 radeon-profile-gitaur 包以及其依赖 radeon-profile-daemon-gitaur:
1
yay -S radeon-profile-git radeon-profile-daemon-git
使用以下命令启动这个进程,即可以图形化的方式查看 AMD 显卡信息:
1
sudo systemctl enable --now radeon-profile-daemon.service
不要对左下角的
auto low high
进行更改,有 bug 会导致卡死。同时,显存占用在某些型号显卡上展示可能有误。
基础安装详解
🔭 知其然,知其所以然
这一节对 [archlinux 基础安装](#archlinux 基础安装) 中关键的几步做出了更进一步的解释,知其然知其所以然。此节没有特定顺序,可根据需要选择性阅读
需要说明的是,本指南假定你有一定的 Linux 基础知识,基础知识相关的话题不会被讨论
分区和格式化
- 因本指南介绍使用的文件系统是
Btrfs
,很多萌新可能有些不理解。这里有必要说明一下- 若执意要用传统的
ext4
文件系统,本指南也给出了示例- 对于全盘格式化后全新安装的(单 archlinux 系统)同学,这里也给出了需要做的额外步骤的说明
- 对于 Swap 分区还是 Swap 文件 的话题,也会在此讨论
为什么要用 Btrfs 文件系统
纵观 Btrfs 的历史,可以说 Btrfs 未来的发展是道阻且长的。也让我们感受到开源社区也并不是一根绳上的蚂蚱 —— 开源社区之间也有着各种各样的分歧。
但不管怎么说,Btrfs 的未来现在来看是光明的;我们也可以在 archlinux 上享受到 Btrfs 文件系统的特性带来的好处:
快照 —— archlinux 作为滚动发行版,若滚挂了可以使用 Btrfs 的快照特性快速回滚
若使用传统的
ext4
文件系统,我们可以使用timeshift
的RSYNC
模式进行增量备份。但是,一般来说 RSYNC 方式的快照大小略大于当前实际使用大小,也就是说实际上开启了timeshift
的RSYNC
模式快照相当于磁盘可用空间直接少了一半多。因为虽然 RSYNC 方式的快照是增量的,但历史最久远的快照依然是完整备份,随后才是增量的透明压缩 —— 可以大大减少磁盘的使用空间(压缩率大概在 10% 左右)
ℹ️ 提示
更多 Btrfs 文件系统介绍和操作请参阅 Btrfs 介绍与相关操作。
传统 ext4 文件系统说明
若执意使用传统的 ext4
文件系统,那么分区的建议为:
- 若 archlinux 安装分区小于
256GB
:/
根目录:全部空间
(用户主目录不单独分区)/boot
EFI 分区:256MB
- Swap 分区:
>= 电脑实际运行内存的 60%
- 若 archlinux 安装分区大于
256GB
:/
根目录:128GB
/home
用户主目录:剩余的全部空间
/boot
EFI 分区:256MB
- Swap 分区:
>= 电脑实际运行内存的 60%
分区同样使用 cfdisk
工具,具体操作类似上一节 [7-1. 分区](#7-1. 分区) 所述,这里不再赘述。
使用以下命令格式化
ext4
分区:SATA
1
mkfs.ext4 /dev/sdax
NVME
1
mkfs.ext4 /dev/nvmexn1pn
使用以下命令挂载
ext4
分区:SATA
1
2
3
4
5mount /dev/sdxn /mnt
mkdir /mnt/home # 若 /home 目录单独分区
mount /dev/sdxn /mnt/home # 若 /home 目录单独分区
mkdir -p /mnt/boot
mount /dev/sdxn /mnt/bootNVME
1
2
3
4
5mount /dev/nvmexn1pn /mnt
mkdir /mnt/home # 若 /home 目录单独分区
mount /dev/nvmexn1pn /mnt/home # 若 /home 目录单独分区
mkdir -p /mnt/boot
mount /dev/nvmexn1pn /mnt/boot
全新安装
若为全新安装(单 archlinux 系统),首先要对磁盘建立新的 GPT 分区表;同时,由于没有现存的 EFI 分区,所以我们还需要手动创建它(这一步在 [7. 分区和格式化(使用 Btrfs 文件系统)](#7. 分区和格式化(使用 Btrfs 文件系统)) 步骤之前):
1. 建立新的 GPT 分区表
同样的,先通过
lsblk
命令,区分要全新安装 archlinux 的磁盘(通过观察磁盘的大小等判断):1
lsblk # 显示当前分区情况
通过以下命令将磁盘转换为
gpt
类型:SATA
1
2
3
4parted /dev/sdx # 执行 parted,进行磁盘类型变更
(parted) mktable # 输入 mktable
New disk label type? gpt # 输入 gpt,将磁盘类型转换为 GPT 类型。如磁盘有数据会警告,输入 Yes 即可
(parted) quit # 退出 parted 命令行交互NVME
1
2
3
4parted /dev/nvmexn1 # 执行 parted,进行磁盘类型变更
(parted) mktable # 输入 mktable
New disk label type? gpt # 输入 gpt,将磁盘类型转换为 GPT 类型。如磁盘有数据会警告,输入 Yes 即可
(parted) quit # 退出 parted 命令行交互
☢️ 警告
重建分区表会使磁盘所有数据丢失,请事先确认。
2. 建立 EFI 分区
进入 cfdisk
分区工具之后,类似上一节步骤 7-1. 分区 的分区说明,建立 EFI 分区:
- 选中
Free space
> 再选中操作[New]
> 然后按下回车Enter
以新建EFI
分区 - 输入
分区大小
(建议 >=256MB
、<=1024MB
;推荐512MB
)> 然后按下回车Enter
- 选中操作
[Type]
> 然后按下回车Enter
> 通过方向键↑
和↓
选中EFI System
> 最后按下回车Enter
- 接下来可以按照上一节 7-1. 分区 的步骤创建其它分区
3. 格式化 EFI 分区
SATA
1
mkfs.vfat /dev/sdxn
NVME
1
mkfs.vfat /dev/nvmexn1pn
Swap 分区和 Swap 文件
如果希望使用 Swap 文件替换 Swap 分区,那么在分区和挂载中不必创建和开启 Swap 分区。
ℹ️ 提示
但是,使用 Swap 文件会更加复杂。因为若使用 Swap 文件在
Btrfs
文件系统中设置休眠(hibernate)的时候需要额外的步骤,而且可能有兼容性问题。若没有动态改变 Swap 大小的需求,建议使用 Swap 分区。
通过以下步骤创建和挂载 Swap 文件(这一步在 18. 完成安装 步骤之后):
通过以下命令创建 Swap File:
1
2
3
4sudo dd if=/dev/zero of=/swapfile bs=1M count=16384 status=progress # 创建 16G 的交换空间(大小 >= 电脑实际运行内存的 60%)
sudo chmod 600 /swapfile # 设置正确的权限
sudo mkswap /swapfile # 格式化 Swap 文件
sudo swapon /swapfile # 挂载 Swap 文件通过以下命令挂载 Swap 文件:
1
swapon /swapfile
使用
free
命令复查 Swap 文件挂载情况:1
free -h # -h 选项会使输出以人类可读的单位显示
最后,向
/etc/fstab
中追加如下内容:1
/swapfile none swap defaults 0 0
安装环境和新系统的关系
理解安装环境和新系统的关系,对于理解 archlinux 安装时所做的步骤具有重大意义。可以说,理解了它们的关系基本上就理解了 archlinux 的安装
为了生动形象的理解安装环境和新系统的关系,我们可以将安装系统的过程想象成搬家 🏠。
1. 建房子
我们可以将安装环境比喻成一个临时的家。为了住进新家,我们需要先把新家的房子建起来。这个过程就是 7. 分区和格式化。在磁盘上建立新的分区并格式化,就好比在空余的土地上建立起新的房子。
2. 建立通道
新房建好了,我们首先还要建立一条联通旧家和新家之间的通道 —— 不然我们怎么走到新家去呢!更不要提将家具什么的安置到新家去了。这个步骤就是 8. 挂载。通过将新的分区挂载到 /mnt
下,我们才能对新的分区进行操作。
3. 添置家具
光有一个空荡荡的房子是没有用的。为了变成一个能够生活的温馨小窝,我们还需要添置家具。这个步骤就是 9. 安装系统。在执行 pacstrap
脚本的过程中,其实就是将系统运行需要的一些基础的东西安装到新的系统中 —— 类似把家具放到新的家里。
4. 搬进新家
最后,新家建好了,装修啊、家具啊也弄好了,我们可以搬进新家了!这一步骤就是 11. change root。arch-chroot
脚本是软件包 arch-install-scripts
的一部分,但本质上只是在 chroot
命令的基础上添加了一些功能,简化了“搬家”的流程。其类似(注意,只是类似,arch-chroot
还会做一些其它的工作,安装时请使用 arch-chroot
)以下命令:
1 | mount -t proc none /mnt/proc |
chroot
顾名思义,就是 change root 的意思。chroot
命令把根目录换成指定的目录。通常,切换根目录一般的目的是为了系统维护,例如重装引导程序或者重置遗忘的密码;而在安装时则是为了安装(大雾 🌫️。在安装过程中,新的根目录就是 /mnt
。这个过程就好比从原来的家搬到了新的家一样,是不是这样理解起来就简单一点了呢?
多系统配置引导程序
查看系统的安装的磁盘:
使用命令
lsblk
或fdisk -l
可以列出系统中所有的硬盘和分区信息。找到你想要挂载的硬盘和分区。使用
fdisk -l
, 找到固态盘的分区情况挂载磁盘
1
2mount /dev/nvme0n1p1 /mnt/win/
mount /dev/nvme0n1p4 /mnt/ubuntu/提示:
你可以使用
blkid
命令来查看系统上的块设备(包括硬盘和分区)以及它们的文件系统类型。如:sudo blkid /dev/sda1
archlinux unkonwn fillesystem type ntfs
系统缺少对 NTFS 文件系统的支持。在Arch Linux中,通常可以通过安装
ntfs-3g
包来添加对 NTFS 文件系统的支持。1
2sudo pacman -Sy
sudo pacman -S ntfs-3g
安装引导程序:
grub-mkconfig -o /boot/grub/grub.cfg
卸载磁盘
1
umount -R /mnt/*
重启:
reboot
杂七杂八 + QAs
其它琐碎的问题不在一一展开叙述,这里通过列表统一说明:
EFI 分区(又称 esp 分区)不一定要挂载在
/boot
目录下;也可以是/efi
或者其他非常见路径(当然一般推荐挂载在/boot
下,方便引导程序读取同样在这个目录下的内核、微码等启动系统的必要文件)若为联想小新 Pro14 / YOGA 14s 2021 机型,发现安装前后键盘都无法正常工作。此时安装时请使用外接键盘。为了解决该问题,在 17. 安装引导程序 步骤中编辑
/etc/default/grub
文件时添加额外的 GRUB 参数 —— 在GRUB_CMDLINE_LINUX_DEFAULT
这一行中添加参数i8042.dumbkbd
修改后复查:
1
head /etc/default/grub
输出如下:
1
2
3
4
5
6
7
8
9# GRUB boot loader configuration
GRUB_DEFAULT_SUBMENU=y
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5 nowatchdog i8042.dumbkbd"
GRUB_CMDLINE_LINUX=""Q: EFI分区写入失败: EFI扩容
右键单击EFI盘并选择“调整分区大小”。
通过向右拖动滑块来扩展系统分区。
返回主菜单,点击“提交”执行挂起的操作。
桌面环境与常用应用安装
两岸猿声啼不住,轻舟已过万重山
没有图形界面的 archlinux 显然作为日常使用的操作系统是不合适的。但经过这一节的安装和配置后,我们的系统就可以当作日常的操作系统使用了
这一小节,我们开始着手安装桌面环境和一些常用的软件。如有需要可以参阅 ArchWiki 一般性建议。
ℹ️ 提示
指南中带有 aur 角标的软件代表是在 AUR(Arch User Repository)中用户自行打包的软件。不在 arch 官方支持范围内,可能会出现各种问题如更新不及时、无法安装、使用出错等。
指南中带有 cn 角标的软件代表是在 archlinuxcn(Arch Linux 中文社区仓库)中用户自行打包的软件。不在 arch 官方支持范围内,可能会出现各种问题如更新不及时、无法安装、使用出错等。
指南中带有 EULA 角标的软件代表是 专有软件。请自行斟酌是否使用。
确保系统为最新
如果你在做完章节 archlinux 基础安装 的内容后,关机并放置过一段时间,那么需要先按照 18. 完成安装 中连接网络的方法重新连网,然后使用以下命令更新系统:
1 | pacman -Syu # 升级系统中全部包 |

配置 root 账户的默认编辑器
默认情况下,archlinux 在一些终端编辑场景调用 vi
编辑器,但是我们使用 vim
编辑器。
如果不做额外配置且不显式的指定编辑器,在一些终端场景下(如下面的 visudo
、git
等)调用编辑器时会出错。
- 使用
vim
编辑~/.bash_profile
文件:
1 | vim ~/.bash_profile |
在适当位置加入以下内容:
1 | export EDITOR='vim' |
ℹ️ 提示
也可以添加到
~/.bashrc
中,但是(如果不做其它配置或显式的执行)在登录命令行tty
后不会被执行,也就失去了意义。一般来说我们登录 root 账户时很可能是在命令行
tty
登录的(有时也会su
)。
- 保存并退出
vim
准备非 root 用户
通过以下命令添加用户,比如新增加的用户叫
myusername
:1
useradd -m -G wheel -s /bin/bash myusername
📑 命令参数说明:
-m
创建用户的同时创建用户家目录-G
选项后指定附加组wheel
——wheel
附加组可sudo
进行提权
-s
选项后指定 shell 程序myusername
—— 用户名(请自定义,但不要包含空格和特殊字符)
通过以下命令根据提示设置新用户
myusername
的密码:1
passwd myusername
ℹ️ 提示
弱密码已经不被接受,请设置一个较为复杂的密码,如
i_love_archlinux
。使用
vim
编辑器通过visudo
命令编辑sudoers
文件:1
EDITOR=vim visudo # 这里需要显式的指定编辑器,因为上面的环境变量还未生效
找到如下这样的一行,把前面的注释符号
#
去掉:1
#%wheel ALL=(ALL:ALL) ALL
📑 这里稍微解释一下:
%wheel
—— 用户名或用户组,此处则代表是wheel
组,%
是用户组的前缀ALL=
—— 主机名,此处则代表在所有主机上都生效(如果把同样的sudoers
文件下发到了多个主机上)(ALL:ALL)
—— (任意用户:任意用户组),此处则代表可以成为任意目标用户/用户组- 最后的
ALL
—— 代表可以执行任意命令
几个更详细的例子:
- 在
mailadmin
组里的用户可以作为root
用户,在snow
和rain
这两台主机执行一些邮件服务器控制命令(命令之间用,
分隔):
1
%mailadmin snow,rain=(root) /usr/sbin/postfix, /usr/sbin/postsuper, /usr/bin/doveadm
- 用户
whoami
可以在所有主机上以root
用户不输入密码执行rndc reload
这条命令(正常来说sudo
都是要求输入调用方的密码的):
sudoers
1
whoami ALL=(root) NOPASSWD: /usr/sbin/rndc reload
- 当在
users
组里的用户以sudo passwd
或者sudo passwd root
方式运行命令的时候,可以直接把root
用户的密> 码 改掉,这真是太危险了!必须要把这两条命令禁止掉,但我们又希望用户可以通过sudo passwd
修改其它用户的密码。那么我们可以在命令前面加上!
来表示不可执行的命令:
1
%users ALL=(root) !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
总结一下,语法如下:
1
用户名/%用户组名 主机名=(目标用户名) 命令1, 命令2, !命令3
保存并退出
vim
编辑器
开启 32 位支持库与 Arch Linux 中文社区仓库(archlinuxcn)
编辑
/etc/pacman.conf
文件:1
vim /etc/pacman.conf
去掉
[multilib]
一节中两行的注释,来开启 32 位库支持在文档结尾处加入下面的文字,来添加
archlinuxcn
源。推荐的镜像源(选一个即可)也一并列出:1
2
3
4
5[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch # 中国科学技术大学开源镜像站
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch # 清华大学开源软件镜像站
Server = https://mirrors.hit.edu.cn/archlinuxcn/$arch # 哈尔滨工业大学开源镜像站
Server = https://repo.huaweicloud.com/archlinuxcn/$arch # 华为开源镜像站ℹ️ 提示
此外,还有其它镜像源在 archlinuxcn 官方 Github Repo 列出,可以根据自己实际情况另行选择。
archlinuxcn 仓库服务器位于欧洲,在中国大陆、中国香港、美国有镜像。
- 保存并退出
vim
编辑器 - 通过以下命令刷新
pacman
数据库并更新:
1
pacman -Syyu
- 保存并退出
安装 KDE Plasma 桌面环境
ℹ️ 提示
新手推荐安装 KDE Plasma 桌面环境,此外有 GNOME、 Xfce 等桌面环境和一众窗口管理器可供选择。本教程仅列出 KDE 安装使用教程。
通过以下命令安装相关软件包:
1
pacman -S plasma-meta konsole dolphin # plasma-meta 元软件包、konsole 终端模拟器和 dolphin 文件管理器
kde 默认安装的是xorg,如果想使用wayland的话安装以下包:
1
2
3
4pacman -S plasma-wayland-session xdg-desktop-portal
# N卡用户需要额外安装egl-wayland,xdg-desktop-portal包是为了如obs此类工具录制屏幕使用
# xdg-desktop-portal包组提供了不同环境下使用的软件包
# 例如kde用户可选择xdg-desktop-portal-kde包安装完成后,可以在后续登录时选择使用 xorg 还是 wayland
配置并启动 greeter sddm
开启 sddm.service 守护进程:
1
systemctl enable sddm
通过以下命令启动显示管理器或重启电脑,即可看到欢迎界面:
1
systemctl start sddm # 直接启动显示管理器,与以下reboot命令二选一即可
1
reboot
输入新用户的密码并回车
Enter
即可登录桌面ℹ️ 提示
若虚拟机下在 sddm 输入密码登录后无法进入桌面,只有黑屏和光标,请确认在步骤 3. 配置 VirtualBox 中没有勾选
启用3D加速
。ℹ️ 提示
值得注意的是此时操作系统尚未安装相应的显卡驱动。如在进入桌面环境时遭遇闪退花屏等意外情况,建议尝试安装相应的显卡驱动。详情请参阅显卡驱动。
安装基础功能包
进入桌面后,在开始菜单搜索并打开 Konsole。它是 KDE 桌面环境默认的终端模拟器
首先进行桌面环境中的网络设置:
1
ping www.bilibili.com # 测试网络连通性
KDE 桌面环境中连接网络和 win10 一样,这里不再赘述。
接下来安装一些基础功能包:
1
2
3
4
5
6
7
8
9sudo pacman -S sof-firmware alsa-firmware alsa-ucm-conf # 声音固件
sudo pacman -S ntfs-3g # 使系统可以识别 NTFS 格式的硬盘
sudo pacman -S adobe-source-han-serif-cn-fonts wqy-zenhei # 安装几个开源中文字体。一般装上文泉驿就能解决大多 wine 应用中文方块的问题
sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra # 安装谷歌开源字体及表情
sudo pacman -S firefox chromium # 安装常用的火狐、chromium 浏览器
sudo pacman -S ark # 压缩软件。在 dolphin 中可用右键解压压缩包
sudo pacman -S packagekit-qt5 packagekit appstream-qt appstream # 确保 Discover(软件中心)可用,需重启
sudo pacman -S gwenview # 图片查看器
sudo pacman -S steam # 游戏商店。稍后看完显卡驱动章节再使用最后执行安装
archlinuxcn
源所需的相关步骤:1
2sudo pacman -S archlinuxcn-keyring # cn 源中的签名(archlinuxcn-keyring 在 archlinuxcn)
sudo pacman -S yay # yay 命令可以让用户安装 AUR 中的软件(yay 在 archlinuxcn)ℹ️ 提示
若安装
archlinuxcn-keyring
时报错,是由于密钥环的问题。可先按照 archlinuxcn 官方说明 执行其中的命令,再安装archlinuxcn-keyring
。archlinuxcn
社区源的keyring
包archlinuxcn-keyring
由farseerfc
的 key 签署验证,而Arch Linux
官方keyring
中包含了 farseerfc 的 key 。自 12 月初archlinux-keyring
中删除了一个退任的 master key 导致farseerfc
的 key 的信任数不足,由GnuPG
的web of trust
推算为marginal trust
,从而不再能自动信任archlinuxcn-keyring
包的签名。如果你在新系统中尝试安装
archlinuxcn-keyring
包时遇到如下报错:1
error: archlinuxcn-keyring: Signature from "Jiachen YANG (Arch Linux Packager Signing Key) <farseerfc@archlinux.org>" is marginal trust
请使用以下命令在本地信任
farseerfc 的 key
。此key
已随archlinux-keyring
安装在系统中,只是缺乏信任:1
sudo pacman-key --lsign-key "farseerfc@archlinux.org"
之后继续安装
archlinuxcn-keyring
:sudo pacman -S archlinuxcn-keyring
https://www.archlinuxcn.org/archlinuxcn-keyring-manually-trust-farseerfc-key/
检查家目录
检查家目录下的各个常见目录是否已经创建,若没有则需通过以下命令手动创建:
1 | cd ~ |

配置非 root 账户的默认编辑器
- 使用
vim
编辑~/.bashrc
文件:
1 | vim ~/.bashrc |
- 在适当位置加入以下内容:
1 | export EDITOR='vim' |
ℹ️ 提示
也可以添加到
~/.bash_profile
中。
设置系统为中文
打开
System Settings
>Language and Regional Settings
> 在Language
中点击Add languages...
> 选择中文加入ADD
,再拖拽到第一位 > 点击Apply
注销并重新登陆即可生效
ℹ️ 提示
很多人会错误的更改 System Settings
> Regional Settings
> Formats
中的值为中文蒙古、默认或者其他值。这会导致系统中一半英文一半中文。这里的值要保持默认的 en_US
或 zh_CN
,或者改为你在 locale.gen
中添加的任意一种语言。
安装输入法
如有需要可以参阅 Fcitx5 官方文档。
通过以下命令安装相关软件包:
1
2
3
4
5sudo pacman -S fcitx5-im # 输入法基础包组
sudo pacman -S fcitx5-chinese-addons # 官方中文输入引擎
sudo pacman -S fcitx5-anthy # 日文输入引擎
sudo pacman -S fcitx5-pinyin-moegirl # 萌娘百科词库。二刺猿必备(archlinuxcn)
sudo pacman -S fcitx5-material-color # 输入法主题此外,我们还需要设置环境变量。通过
vim
编辑文件/etc/environment
:1
sudo vim /etc/environment
在文件中加入以下内容并保存退出:
1
2
3
4
5GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibusKonsole 以及 Dolphin 都需要这些环境变量,倒是 Firefox 和 Chromium 都不需要就可以输入中文。
ℹ️ 提示
- 如果使用 Wayland 而非 X11,请参照如下方式进行配置而非上面的配置方法:
在「系统设置 - 输入设备 - 虚拟键盘」中选中 Fcitx 5;
environment
仅保留XMODIFIERS=@im=fcitx
一行;在基于 Chromium 的程序(包括浏览器和使用 Electron 的程序)中加入--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime
启动参数。- 检查一下是否有拼写错误,如果输入法无法正常切换,可尝试执行
fcitx5-diagnose
命令来诊断问题的原因。
由于存在安全性问题,自 2022 年 10 月 21 日起,Arch Linux 默认不再读取
~/.pam_environment
文件中的设置。打开
系统设置
>区域设置
>输入法
点击提示信息中的
运行 Fcitx
:点击
添加输入法
> 找到简体中文下的Pinyin
> 点击添加
即可加入拼音输入法:接下来点击
Pinyin
右侧的配置按钮 > 点选云拼音
和在程序中显示预编辑文本
> 最后点击应用
:回到输入法设置 > 点击
配置附加组件
> 找到Classic User Interface
> 在主题里选择一个你喜欢的颜色 > 最后点击应用
:注销并重新登陆,发现已经可以在各个软件中输入中文了:
ℹ️ 提示
通过
Ctrl
+空格
切换中英文输入。
启动蓝牙(若有)
通过以下命令开启蓝牙相关服务并设置开机自动启动:
1 | sudo systemctl enable --now bluetooth |
设置 Timeshift 快照
通过以下命令安装 Timeshiftcn / aur:
cn
1
sudo pacman -S timeshift
aur
1
yay -S aur/timeshift
ℹ️ 提示
若安装 AUR 时无法正常下载,请先参照章节 透明代理 配置透明代理。
打开 Timeshift,第一次启动会自动启动设置向导
若使用 Btrfs 文件系统
若按照步骤 7. 分区和格式化(使用 Btrfs 文件系统) 使用的 Btrfs 文件系统,则进行如下操作。
快照类型选择
BTRFS
,点击下一步
:快照位置选择
BTRFS
分区,点击下一步
:ℹ️ 提示
Timeshift 只支持快照操作系统安装在具有 Ubuntu 类型的子卷布局(
@
和@home
子卷)的 BTRFS 分区。若此处提示不支持的子卷布局,请确保按照步骤 7. 分区和格式化(使用 Btrfs 文件系统) 的说明分区。
选择快照计划,点击
下一步
:ℹ️ 提示
由于 BTRFS 类型快照占用空间相对较小,可以适当提高快照数量。
若希望
/home
用户主目录也快照,则勾选在备份中包含@home
子卷,然后点击下一步
:点击
完成
结束配置⚠️ 注意
完成后建议执行下述指令删除
subvolid
:1
sudo sed -i -E 's/(subvolid=[0-9]+,)|(,subvolid=[0-9]+)//g' /etc/fstab
否则,恢复 BTRFS 类型快照时,可能因子卷 ID 改变导致无法正常进入系统,参阅 恢复后无法挂载目录。
若使用 ext4 文件系统
若使用的为传统的 ext4 文件系统,则进行如下操作。
- 快照类型选择
RSYNC
,点击下一步
- 快照位置选择较大的分区,快照将保存在此分区的
/timeshift
目录下 - 选择快照计划,点击
下一步
ℹ️ 提示
由于 RSYNC 类型快照占用空间较大,请不要保存过多的历史快照。
/home
用户主目录可选全部包含,或者选择排除一切,在下一项中进行更详细配置。其中root
默认全备份(即使选择排除一切)- 若用户主目录选择排除一切,在包含/排除模式中建议进行如下配置(注意顺序,可拖拽移动顺序):
+ /home/user/.config/***
(注意是***
)+ /home/user/.local/***
- /home/user/.**
- /home/user/**
- /root/**
- 点击
完成
结束配置
自此,Timeshift 快照已经成功设置。Timeshift 将按照计划快照系统并删除久远的快照。Timeshift 快照为系统增加了一层保障。
太棒了
自此,一个可以当作日常系统使用的 archlinux 已经基本配置完成了!KDE 桌面环境经过了多年的迭代更新,已经非常完善和强大了,将 archlinux 作为日常使用的主力系统不在话下。