最近小山把主力系统从 Windows 换到了 Linux,开始因为懒,就用了基于 ArchLinux 的 Manjaro。不过没几天,被我一个不小心把/etc
目录给删了,熟悉 Linux 的人一定知道这个目录的重要性,导致我只能重装系统。这次我选择了原汁原味的 ArchLinux,整个安装过程虽然没有 Manjaro 方便,不过也没有多么复杂。
于是我就想写一篇面向新手,且适用于物理机和虚拟机的 ArchLinux 安装指南,目标是让你安装后可以作为日常系统使用。即使你已经装好了 ArchLinux,本指南可能也能帮助到你。
本指南基于 ArchLinux 官方安装指南,并对官方安装指南进行了简化,使安装过程没有过多的选择和困惑。
这份指南遵循简单原则,只会带给你一个可以正常使用并带有特定桌面环境的 ArchLinux,并不会带给你多余的东西。后面的路,由你决定!
本指南大部分操作会附带一个指向 ArchWiki 对应页面的链接,用于帮助你了解操作的详细意义。
如果你在安装过程中遇到了问题,欢迎加入 QQ 群向我询问。
前言
既然你已经准备安装 ArchLinux,想必对它已经有一个大致的了解了,如果你还不了解,可以前往以下页面了解它。
ArchLinux 简介:https://wiki.archlinux.org/title/Arch_Linux
ArchLinux 常问问题:https://wiki.archlinux.org/title/Frequently_asked_questions
ArchLinux 与其他发行版的区别:https://wiki.archlinux.org/title/Arch_compared_to_other_distributions
可能有些刚接触(了解) ArchLinux 的小伙伴困惑它是否适合自己?
如果你符合下面这几点,我觉得就可以使用 ArchLinux。
- 拥有阅读文档并动手解决问题的能力。
- 喜欢高度自由的系统。
- 追求一切保持简单,不喜欢多余的东西。
如果你是个刚接触 Linux 的新人,我也推荐使用它来入门,ArchLinux 的文档(Wiki)非常详细,你遇到的大多数问题几乎都能在 Wiki 找到答案,同时它也是很好的 Linux 学习资料,此外,ArchLinux 还有一个用户友好的社区。
等你对 ArchLinux 熟悉之后就会发现,原来本指南安装步骤是如此简单。
如果你想找个省心省力但又拥有 ArchLinux 特性的发行版,那么 Manjaro 或 EndeavourOS 可能是你更好的选择,这些是流行的基于 ArchLinux 的桌面发行版,它在保留 ArchLinux 部分特性的同时又做到了安装简单和开箱即用。
准备工作
你需要一台支持 UEFI 引导的 64 位(x86-64)的电脑,最好拥有有线网络连接,务必不要使用蓝牙鼠标。
如果你的电脑不支持 UEFI,那么以下某些步骤可能不适合你,下面我会说明如何查看电脑是否支持 UEFI,只要不是特别老的电脑都支持。如果不支持 UEFI 还想继续安装,可以加入 QQ 群与我交流。
安装系统前首先要下载系统,前往 https://mirrors.kernel.org/archlinux/iso/latest/ 下载 ArchLinux 的镜像文件,下载完成后建议使用文件校验工具配合 sha1sums.txt 验证镜像文件完整性。
准备一个U盘,U盘容量大于镜像文件大小即可,用于制作安装盘。
注意:制作过程将清空 U 盘数据,制作之前务必做好数据备份。
前往 etcher.io 下载 Etcher(启动盘制作工具),Etcher 是跨平台的镜像写入工具,Windows、macOS 和 Linux 都可以使用。如果你无法成功从官网下载 Etcher,可以在这里下载:https://share.weiyun.com/5OvrT9N
U盘插入电脑后以 root / 管理员身份运行 Etcher,点击 [Flash form file] 选择 ArchLinux 的镜像文件,然后点击「Select target」选择你用于制作安装盘的U盘,最后点击「Flash」。
启动盘制作完成后,关闭 Etcher。
将 ArchLinux 安装盘插入要安装 ArchLinux 的电脑并使用 ArchLinux 安装盘启动,就像安装 Windows 一样。ArchLinux 启动菜单出现后,选择第一个菜单项目并进入。
当出现类似下面的界面时,表示安装环境启动成功。
PS:如果你的电脑启用了 UEFI 安全启动,必须关闭安全启动才可以成功启动。
执行ls /sys/firmware/efi/efivars
检测当前引导模式是否是 UEFI
如果没有列出文件,表示当前没有以 UEFI 模式启动,检查你的电脑是否支持以及 BIOS 设置 。
稍后的安装操作会使用 nano 文本编辑器编辑文件,你也可以选择使用 vim,如果这两个编辑器你都不会使用,推荐查看 https://www.vpser.net/manage/nano.html 以学习 nano 的基本用法。
检查网络
执行ip -brief link
查看网卡列表,输出的第一列为网卡名称,名为 lo 的是虚拟网卡,如果列表还有其他网卡,则表示网卡正常。
PS:有线网卡名称一般以 e 开头,无线网卡名称一般以 w 开头。
有线网卡会自动配置 DHCP,一般不需要手动干预。
无线网卡根据 https://wiki.archlinux.org/title/Iwd#iwctl 步骤来配置无线网络
如果你是静态 IP 网络,推荐更换为支持 DHCP 的网络再继续。
最后检查网络是否正常,执行ping -c 5 url.cn
测试网络连通性。
如果网络正常,执行timedatectl set-ntp true
通过互联网同步系统时间。
通过 SSH 远程连接(可选)
如果你觉得手动执行命令太麻烦或者担心输错,想直接从米V米复制命令,那么可以使用另一台电脑或移动设备通过 SSH 控制安装环境。
执行passwd
为安装环境设置密码,此命令不会显示你输入的密码。
执行ip -brief address
查看 IP 地址列表,输出第三列是每个网卡对应的 IP 地址(如果你的网络支持 IPv6 ,可能有多个 IP 地址。),IP 地址不包含/
后面的掩码位。比如输出192.168.1.2/24
,IP 地址应该是192.168.1.2
现在可以使用 SSH 客户端连接至安装环境了,简单说一下 Windows 10/11、macOS、Linux、Andorid 和 iOS 如何安装并使用 SSH 客户端。
务必将下列命令中的${IP}
替换为安装环境的 IP 地址,示例:ssh -o StrictHostKeyChecking=no root@192.168.1.2
Windows 10/11 打开 命令提示符 (cmd)、PowerShell 或 Windows 终端,执行ssh -o StrictHostKeyChecking=no root@${IP}
Linux 和 macOS 在终端执行ssh -o StrictHostKeyChecking=no root@${IP}
如果提示 ssh 命令不存在,Windows 系统可参考 https://docs.microsoft.com/windows-server/administration/openssh/openssh_install_firstuse 进行安装,其他系统自行搜索 OpenSSH 客户端安装方法。
Android 前往 https://juicessh.com/changelog 下载安装 JuiceSSH,打开后点击 [快速连接],「类型」选择 [SSH],然后在下方输入root@${IP}
,点击 [确定] 进行连接。
iOS 前往 App Store 安装 Termius,进入主界面后点击右上角的 +,选择 [New Host],「Hostname」填写安装环境的 IP 地址,勾选「SSH」或「Use SSH」,然后「Username」和「Password」分别填写root
和密码,最后保存,点击列表中的项目进行连接。
如果无法连接,务必确保安装环境和 SSH 客户端处于同一局域网,以及 OpenSSH 客户端是 7.2 或更高版本(ssh -V
查看版本信息)。
硬盘分区
如果你需要 Linux + Windows 双系统,建议使用两个物理硬盘安装,以下分区方式不适用于单硬盘双系统。如果你想要单硬盘双系统,可以加入 QQ 群向我询问。
执行fdisk -l
查看硬盘以及分区列表,确定你要用于安装系统的硬盘路径,比如这里我用的是/dev/sda
。loop 设备是光驱等虚拟设备,不是真实的硬盘,不能用于安装系统。
如果你有多块硬盘,第一块硬盘一般为/dev/sda
或/dev/nvme0n1
(NVME),第二块硬盘一般为/dev/sdb
或/dev/nvme0n2
(NVME),以此类推。U 盘或移动硬盘也会被列出,注意不要搞错。
如果你的硬盘没有被列出,可能是在 BIOS 开启了 RAID 模式(部分笔记本会默认开启),前往 BIOS 将硬盘模式改为 AHCI 模式即可,更改后可能会导致现有的 Windows 无法启动。
下述分区操作将清空目标硬盘数据,请在操作前做好数据备份。
务必将下列命令中的${diskPath}
替换为你的硬盘路径。示例:sgdisk /dev/sda
擦除分区表:sgdisk -Z ${diskPath}
创建大小为 260M 的 ESP 分区 (UEFI 引导必要分区):sgdisk -n=0:0:+260M -t=0:ef00 ${diskPath}
使用剩余空间创建系统分区:sgdisk -N=0 ${diskPath}
显示分区信息:fdisk -l ${diskPath}
,对比你的分区信息是否与下列信息相似,重点是分区类型 (Type)。
Disk ${diskPath}: *** GiB, *** bytes, *** sectors Disk model: *** Units: sectors of 1 * *** = *** bytes Sector size (logical/physical): *** bytes / *** bytes I/O size (minimum/optimal): ** bytes / *** bytes Disklabel type: gpt Disk identifier: *** Device Start End Sectors Size Type ${diskPath}1 *** *** *** 260M EFI System ${diskPath}2 *** *** *** ***G Linux filesystem
PS:给 ESP 分区分配 260M 空间是为了兼容不同硬盘,不同的 UEFI 固件,以及存放系统内核和 initramfs。对于某些早期或者有缺陷的 UEFI 实现,可能至少需要分配 512M。
某些教程的分区步骤会创建一个额外的 SWAP(交换空间)分区,这里并不推荐创建,具体原因参考下面的【设置交换空间】章节
如果你的硬盘空间较大,或者想把系统和数据分别存放在不同的分区,想要多个分区也可以。
格式化并挂载分区
格式化 ESP 分区为 FAT32:mkfs.fat -F 32 ${part1Path}
,把${part1Path}
替换为第一个分区的路径,示例:mkfs.fat -F 32 /dev/sda1
注意:如果你在格式化 ESP 分区的时候提示:WARNING: Not enough clusters for a 32 bit FAT!
,请尝试使用mkfs.fat -s 2 -F 32 ${part1Path}
或mkfs.fat -s 1 -F 32 ${part1Path}
命令来格式化 ESP 分区,否则 UEFI 固件可能会无法读取 ESP 分区。
格式化系统分区为 EXT4:mkfs.ext4 -m 5 ${part2Path}
,把${part2Path}
替换为第二个分区路径,示例:mkfs.ext4 -m 5 /dev/sda2
PS:-m
是指定保留块所占百分比,默认值为 5,用作保留快的空间不能被使用。你可以减小这个值增加分区的可用空间,或者增大这个值提升固态硬盘的性能。
如果你想要更好的性能和更现代的功能,可以在系统分区尝试使用 XFS 文件系统:mkfs.xfs ${part2Path}
XFS 可能需要手动维护,参考:https://wiki.archlinux.org/title/XFS
PS:XFS 分区大小目前只支持扩容,不支持缩小。
当然你也可以在系统分区使用其他文件系统,比如 Btrfs、JFS、F2FS 等,你可以前往 ArchWiki 查看这些文件系统的对应文档。
挂载系统分区:mount ${part2Path} /mnt
,把${part2Path}
替换为第二个分区路径,示例:mount /dev/sda2 /mnt
创建 ESP 分区挂载路径:mkdir /mnt/boot
挂载 ESP 分区:mount -o umask=0077 ${part1Path} /mnt/boot
,把${part1Path}
替换为第一个分区路径,示例:mount -o umask=0077 /dev/sda1 /mnt/boot
检查分区是否挂载成功:df
,如果输出包含类似以下行,则代表挂载成功。
Filesystem Size Used Avail Use% Mounted on ${part2Path} *** *** *** ***% /mnt ${part1Path} *** *** *** ***% /mnt/boot
设置中国镜像源(推荐)
安装环境默认启用了所有的软件镜像源,为了使安装更顺利,建议只使用位于中国的镜像,如果你不在中国或者对自己的网络有信心可以忽略此操作。
下载中国镜像列表:curl -L -o /etc/pacman.d/mirrorlist "https://archlinux.org/mirrorlist/?country=CN"
执行nano /etc/pacman.d/mirrorlist
编辑镜像列表文件,删除#Server =
前面的#
以启用镜像,不需要全部启用,一般 3 个就够了。某些镜像同时支持 HTTP 和 HTTPS 协议,只需要删除 HTTPS 协议行的#
。
PS:镜像列表默认按照字母排序,推荐安装完系统后选择一个速度较快的镜像,并把它放在其他镜像前面。阿里云、华为云、腾讯云 等云服务商也有 ArchLinux 软件源镜像,但是还没有加入官方镜像列表,大家可以手动添加使用。
PPS:不同的镜像更新间隔有些许不同,而 Arch 又是一个以滚动发布著称的发行版,软件更新频率较快。如果你对更新频率有较高的要求,建议选择更新间隔较短的镜像。
安装系统
设置本地化环境:export LANG=C
安装所需软件包到系统分区:pacstrap /mnt base linux linux-firmware bash-completion e2fsprogs nano networkmanager pacman-contrib sudo amd-ucode intel-ucode sof-firmware
base: ArchLinux 运行所需的基础软件包集合
linux: Linux 内核
linux-firmware: Linux 设备驱动集合,包含了绝大多数设备的驱动(固件)。
bash-completion: Bash 补全支持
e2fsprogs: EXT4 文件系统实用工具
nano: 文本编辑器
networkmanager: 网络管理器
pacman-contrib: pacman 相关实用脚本
sudo: 用于普通用户获取 root 权限
amd-ucode intel-ucode: AMD 和 Intel 的 CPU 微码更新,用于修补 CPU 漏洞。
sof-firmware: Open Sound 固件
虚拟机用户不需要安装amd-ucode intel-ucode
,物理机用户也可以只安装适用于你电脑的 CPU 的微码包,比如 AMD CPU 用户就不需要安装intel-ucode
。
如果你使用了 XFS 文件系统,将e2fsprogs
替换为xfsprogs
,或者替换为你的文件系统的工具包。
如果你的设备不是笔记本可以不安装sof-firmware
,也可以等到稍后设备没声音时再安装它尝试修复。
可以趁安装的这段时间喝口水,它并不需要很久。
成功安装完成后执行genfstab -U /mnt > /mnt/etc/fstab
生成 fstab 文件
最后执行arch-chroot /mnt
进入新系统环境
系统初始化设置
设置时区为中国:ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
,你也可以设置为所在的时区,完整的时区列表:https://twiki.org/cgi-bin/xtra/tzdatepick.html
同步硬件时钟:hwclock --systohc
务必将下列命令中的${hostname}
替换为你的主机名(例如:kanto)。主机名建议使用小写字母组成,最多 64 个字符,你可以使用下面的输入框验证主机名是否符合规则。
设置系统主机名:echo ${hostname} > /etc/hostname
执行nano /etc/hosts
编辑 hosts 文件并添加以下行:
127.0.0.1 localhost 127.0.0.1 ${hostname} ::1 ip6-localhost ip6-loopback ::1 ${hostname}
执行nano /etc/locale.gen
编辑本地化配置文件,删除以下行前面的#
,可以使用Page Up和Page Down健来快速翻页上下滚动。
#en_US.UTF-8 UTF-8 #zh_CN.UTF-8 UTF-8 #zh_TW.UTF-8 UTF-8
如果你需要其他本地化,删除其他行前的#
,行末尾务必是 UTF-8。最后保存退出,执行locale-gen
生成本地化环境。
设置默认本地化环境:echo LANG=en_US.UTF-8 > /etc/locale.conf
,为了确保兼容性,默认本地化环境最好是英语。
执行SUDO_EDITOR=nano visudo
编辑 sudo 配置文件,删除# %wheel ALL=(ALL) ALL
行前面的#
以便让 wheel 用户组可以使用sudo
获取 root 权限。
务必将下列命令中的${username}
替换为你的用户名(例如:pikachu)。用户名建议使用小写字母组成(不能包含大写字母、不能以数字开头),最多 32 个字符,你可以使用下面的输入框验证用户名是否符合规则。
创建一个新用户并加入 wheel 用户组:useradd -m -G wheel -s /bin/bash ${username}
设置新用户密码:passwd ${username}
PS:输入密码时不会显示
安装引导管理程序(重要):
安装 GRUB 软件包:pacman -S grub
安装 GRUB 至 ESP 分区:grub-install --removable --target=x86_64-efi --efi-directory=/boot
,提示Installation finished. No error reported.
字样表示安装成功。
生成 GRUB 配置文件:grub-mkconfig -o /boot/grub/grub.cfg
PS: 如果你电脑的 UEFI 固件不支持 64 位 UEFI 文件,则需要安装 32 位 UEFI 文件才能成功引导:grub-install --removable --target=i386-efi --efi-directory=/boot
如果你不喜欢 GRUB,或者喜欢简单的引导管理程序,可以尝试下 systemd-boot。
退出新系统环境:exit
执行umount -R /mnt
卸载分区,如果没有错误,拔掉 ArchLinux 安装盘并执行reboot
重启系统。
没有意外的话,应该成功启动至新系统并看到以下界面,login 前面显示的是主机名,输入刚刚创建的新用户名和密码登陆系统。
PS:如果你有多个系统,可能并不会重启至 ArchLinux,需要你手动选择 ArchLinux 启动。
进阶设置
sudo 是临时获取 root 权限的工具,如果需要 root 权限执行某个命令,可以使用 sudo 执行它。sudo 提供了细粒化的控制,使它更加的安全。
虽然su
也可以获取 root 权限,但是正常情况下你不应该使用它,相较 sudo,它太暴力了。如果没有设置 root 密码,su
也将无法工作。
一些命令内置了独立的提权实现,比如systemctl
命令,当这些命令需要 root 权限,但是没有以 root 身份允许时,它们就会使用自己的提权实现进行提权操作。
可以使用sudo -i
临时登陆到 root 用户的 Shell。
root 虽好,但不要滥用,使用之前应该先了解当前命令的操作是否真的需要 root 权限,滥用 root 权限轻则会导致一些程序无法正常工作,重则会危及系统安全。
PS:ArchLinux 的 root 用户默认处于无密码锁定状态,除非你清楚自己在做什么,否则不建议解锁或设置密码。
启用网络管理器(注意大小写):sudo systemctl enable --now NetworkManager
如果是无线网络,执行nmtui
使用图形界面进行配置,选择「Activate a connection」连接无线网络。
如果你还想继续使用 SSH 远程控制,执行sudo pacman -S openssh
安装 OpenSSH,然后执行sudo systemctl start sshd
启动 SSH 服务器。
不过此时就不能使用 root 用户登陆 SSH 了,需要使用刚刚创建的新用户。
禁用网络管理器的连接等待(注意大小写):sudo systemctl disable NetworkManager-wait-online
,禁用后可以加快系统启动,不会有副作用,除非某些自动启动的服务需要互联网。
启用从网络同步系统时间:sudo timedatectl set-ntp true
启用本地 DNS 解析器(可选,建议启用):sudo systemctl enable --now systemd-resolved
创建 DNS 解析文件软链接(依赖上一个操作):sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
启用每周自动清理不需要的 Pacman 软件包缓存(可选,建议启用):sudo systemctl enable paccache.timer
如果你使用的硬盘支持 TRIM 特性(大多数固态硬盘都支持),建议启用定时执行 TRIM:sudo systemctl enable fstrim.timer
如果你需要使用 Wine、Steam 或其他的 32 位程序,执行sudo nano /etc/pacman.conf
编辑 Pacman 配置文件,删除以下行前面的#
以启用 32 位系统库支持。
#[multilib] #Include = /etc/pacman.d/mirrorlist
保存后执行sudo pacman -Sy
更新软件数据库
添加 ArchLinuxCN 存储库(推荐):
Arch Linux 中文社区仓库是由 Arch Linux 中文社区驱动的非官方软件仓库,包含许多官方仓库未提供的额外的软件包,以及已有软件的 git 版本等变种。一部分软件包的打包脚本来源于 AUR,但也有许多包与 AUR 不一样。(关于 AUR 的介绍请见下面的章节)
ArchLinuxCN 依靠镜像加速可以在国内提供比 AUR 更好的体验,而且还省去了部分软件的编译过程。如果你的网络环境导致无法顺利从 AUR 安装某些软件包,推荐添加。
执行sudo nano /etc/pacman.conf
编辑 Pacman 配置文件,在底部添加以下行。
[archlinuxcn] Server = https://mirrors.163.com/archlinux-cn/$arch
保存后执行sudo pacman -Sy archlinuxcn-keyring
更新软件数据库并安装 ArchLinuxCN GPG 密钥,如果安装命令出现error: archlinuxcn-keyring: Signature from "Jiachen YANG (Arch Linux Packager Signing Key) " is marginal trust
这样的错误,执行命令sudo pacman-key --lsign-key "farseerfc@archlinux.org"
修复,然后再重新执行安装命令。
上面的配置使用了 网易 的 ArchLinuxCN 镜像,你也可以前往镜像列表查看并使用其他镜像。
安装防火墙支持(可选):
如果你需要在非信任的网络下使用设备,推荐使用防火墙增强你的设备网络安全性,如果你只在你信任的网络下使用设备,那么可以不安装。
防火墙有很多选择,ArchLinux 的基础包默认已经包含了 iptables
实用工具,用于配置 Linux 内核实现的防火墙,不过由于它并不易用,我推荐最好是使用易用的 iptables 前端。
我推荐大家安装 Firewalld,它简单易用,并且我们待会安装的桌面环境可以很好的集成它,便于使用图形界面管理。其他 iptables 前端可参考:https://wiki.archlinux.org/title/Iptables#Front-ends
安装防火墙:sudo pacman -S firewalld
启用防火墙:sudo systemctl enable --now firewalld
Firewalld 更多信息:https://wiki.archlinux.org/title/Firewalld
安装显卡驱动、Vulkan 和硬件加速支持:
如果不知道该装那个,可以加入 QQ 群向我询问。
小山只实际测试过 AMD 和 Intel 的显卡驱动安装,Nvidia 显卡驱动安装尚未测试。
Vulkan 是跨平台图形接口,目前主要用途是在 Linux 下运行 Windows 游戏以及部分 Linux 游戏(详见:Linux 运行 Windows 游戏指南),但并不是所有显卡都支持它,你可以前往 https://vulkan.gpuinfo.org/listreports.php?platform=linux 查询你的显卡是否支持 Vulkan。
OpenCL 是可选的,推荐需要时再安装。
如果你没有启用 32 位系统库支持,执行下列命令时务必删除lib32
开头的软件包。
图形加速库:sudo pacman -S mesa
硬件视频加速:sudo pacman -S mesa-vdpau libva-mesa-driver lib32-mesa lib32-mesa-vdpau lib32-libva-mesa-driver lib32-opencl-mesa
Vulkan:sudo pacman -S vulkan-icd-loader vulkan-radeon lib32-vulkan-icd-loader lib32-vulkan-radeon
OpenCL: sudo pacman -S opencl-mesa ocl-icd
andvlk 是由 AMD 开源的 AMD GPU Vulkan 实现,这个实现比 Mesa 的 RADV 在某些场景下性能要好一些,并且系统允许安装多个 Vulkan 实现并让软件进行选择,推荐游戏玩家安装。
图形加速库:sudo pacman -S mesa
硬件视频加速:如果你的 Intel CPU 架构是 Broadwell 或以上(包括 Intel Arc 显卡)的安装intel-media-driver
,反之则安装libva-intel-driver
。
Vulkan:sudo pacman -S vulkan-icd-loader vulkan-intel lib32-mesa lib32-vulkan-icd-loader lib32-vulkan-intel
OpenCL:如果你的 Intel CPU 架构是 Broadwell 或以上(包括 Intel Arc 显卡)的安装intel-compute-runtime ocl-icd
,反之则安装beignet ocl-icd
,beignet 需要通过 AUR 安装。
前往 https://www.nvidia.com/en-us/drivers/unix/legacy-gpu/ 查看 Nvidia 私有驱动最新版本不支持的显卡列表,如果你的显卡不在这个列表里,那么你可以使用最新的 Nvidia 私有驱动,反之则需要使用开源驱动或旧版私有驱动(通过 AUR 安装)。
Nvidia 私有驱动:sudo pacman -S nvidia nvidia-settings cuda xorg-server-devel lib32-nvidia-utils
Nvidia 开源驱动 (RTX 3000 系列或更高):sudo pacman -S nvidia-open nvidia-settings cuda xorg-server-devel lib32-nvidia-utils
OpenCL: sudo pacman -S opencl-nvidia ocl-icd lib32-opencl-nvidia
Nouveau 是 Linux 内核的 Nvidia 显卡开源驱动,由于 Nvidia 新显卡需要签名固件,所以它无法支持一些较新系列的显卡,推荐 GTX 700 或以下系列使用。
Nouveau 图形加速库:sudo pacman -S mesa
Nouveau 硬件视频加速:sudo pacman -S mesa-vdpau libva-mesa-driver lib32-mesa lib32-mesa-vdpau lib32-libva-mesa-driver
PS:如果是双显卡的笔记本,运行软件时可以选择使用的显卡(默认是集成显卡)。参见:https://wiki.archlinux.org/title/PRIME
安装显示管理器和桌面环境:
本指南以 KDE Plasma 桌面环境 + SDDM 显示管理器为例
Plasma 是功能全面且对新手友好的桌面环境,具有高度可定制性,并且它在最近的更新中,性能提升了很多。
SDDM 显示管理器是 Plasma 推荐的显示管理器
如果你想使用其他桌面环境或显示管理器,建议前往其他桌面环境或显示管理器的 ArchWiki 页面详细了解
桌面环境列表:https://wiki.archlinux.org/title/Desktop_environment#List_of_desktop_environments
显示管理器列表:https://wiki.archlinux.org/title/Display_manager#List_of_display_managers
安装桌面环境、显示管理器、终端(Konsole)以及 Noto 字体集:sudo pacman -S --noconfirm plasma sddm konsole noto-fonts noto-fonts-cjk noto-fonts-emoji
安装 Plasma 可选依赖(使其更好的工作):sudo pacman -S --asdeps gst-plugins-good packagekit-qt5 xsettingsd
如果你是笔记本用户,推荐安装fwupd
以便通过 LVFS 接受来自厂商的固件更新(需要厂商支持),以及安装power-profiles-daemon
获取电源配置文件支持(需要设备支持)。
plasma 是个软件包组,里面可能会有一些用不上的软件包。
以下软件包根据需求决定是否需要卸载
drkonqi: KDE 崩溃处理程序
kgamma5: 调整显示器的伽玛设置
ksshaskpass: ssh-add 密码助手
plasma-firewall: 防火墙管理界面
plasma-sdk: Plasma 开发工具包
plasma-thunderbolt: Thunderbolt(雷电)设备管理界面
plasma-vault: 创建加密的保险库(需要额外的可选依赖)
plasma-workspace-wallpapers: Plasma 桌面的额外壁纸
卸载以上列出的软件包:sudo pacman -Rns drkonqi kgamma5 ksshaskpass plasma-firewall plasma-sdk plasma-thunderbolt plasma-vault plasma-workspace-wallpapers
安装蓝牙支持(可选):
安装:sudo pacman -S bluedevil
安装可选依赖(蓝牙音频支持):sudo pacman -S --asdeps pulseaudio-bluetooth
启用:sudo systemctl enable bluetooth
设置交换空间(可选)
交换空间(Swap)是硬盘上的一块区域,通俗的讲就是虚拟内存,跟 Windows 下的虚拟内存(分页文件)是一样的,当物理内存不够用时内核会把部分物理内存数据转移到交换空间,从而使需要更多内存的程序可以运行。
交换空间是可选的,如果你的物理内存不够大,那么你可以使用交换空间使内存利用更高效,如果你的物理内存足够使用,也可以不需要使用交换空间。
由于交换空间是使用硬盘作为存储介质,所以它无法达到像物理内存的速度,特别是在机械硬盘或 SATA 固态硬盘上面,如果硬盘速度太慢,会使交换空间弊大于利。
可能某些人会告诉你虚拟内存的大小务必是物理内存的两倍,无论是 Windows 还是 Linux,这种说法是完全错误的,虚拟内存的大小完全根据需求决定(Windows 默认会自动管理虚拟内存大小)。
如果要使用交换空间,你也可以尝试一下 Zswap 和 ZRAM,两者皆在物理内存中提供压缩的交换空间,从而使物理内存可以容纳更多的数据,减少硬盘上的交换空间的 I/O 操作,有效延长固态硬盘寿命,代价是使用更多的 CPU。
注意:当你启用了交换空间,部分桌面的电源菜单会出现「休眠」选项,但是它并不会工作,因为休眠需要配置内核参数以及 initramfs hook。参见:https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate#Hibernation
交换分区 VS 交换文件:
交换空间用硬盘上的一块区域作为虚拟内存,这块区域既可以是一个文件,也可以是一个完整的分区。
以前 Linux 安装会建议为交换空间创建一个单独的分区,以确保交换空间的最佳性能。这种做法是因为在当时大多数电脑还是机械硬盘,机械硬盘起始扇区的速度可能会更快,完整的分区还可以避免碎片等问题。但是缺点也很明显,一旦建立分区,调整大小会非常麻烦,自由度较低。
现在的电脑大多数都使用固态硬盘,没有了机械硬盘的一些限制,所以更推荐使用交换文件,可以使交换空间更加灵活。
推荐使用 systemd-swap 来管理交换空间、Zswap 或 ZRAM,它可以根据当前内存和交换空间的使用情况自动创建新的交换空间,同时也可以比较方便的管理 Zswap 和 ZRAM。不过由它创建的交换文件并不能用于系统休眠,如果你有系统休眠需求,建议手动创建。
更多关于交换空间请参考:https://wiki.archlinux.org/title/Swap
更改显示管理器(SSDM)本地化环境(可选):
如果要让 SDDM 的本地化环境为非英文,可以执行以下更改。
PS:本地化环境除了影响语言显示,还有时间格式。
执行sudo SYSTEMD_EDITOR=nano systemctl edit sddm
编辑 SDDM 服务单元,在文件第 3 行添加:
[Service] Environment=LANG=zh_CN.UTF-8
如果是其他语言用户,可以把zh_CN
替换为你需要的本地化。
执行sudo systemctl enable sddm
启用 SDDM
执行sudo reboot
重启系统,重启后应该会看到如下图所示的界面,输入密码登陆桌面环境。
如果没有看到如下图所示的界面,可能是显卡驱动的安装有问题。
Plasma 桌面环境配置
点击屏幕左下角的按钮打开应用启动器,点击「System Settings」打开系统设置。
点击「Regional Setting」,点击系统设置界面右下角的「Add languages...」添加简体中文和繁体中文,并把英文排到最后,简繁排第一和第二,然后点击右下角的「Apply」。点击左侧的「Formats」,选择「Regional」为「中国 - 简体中文 (zh_CN)」,或者选择你所在的区域,然后点击右下角的「Apply」。
PS:简繁的优先级顺序取决于个人,因为有些程序可能没有简体或繁体翻译,简繁同时存在可以在没有其中一种翻译的情况下使用另一种翻译,如果两个都没有再使用英文。
按下Ctrl + Alt + Delete,选择「Log Out」注销会话并重新登录使其生效。
在应用启动器里找到「Konsole」,也可以通过快捷键Ctrl + Alt + T打开,这是 Plasma 桌面下的终端。
安装输入法、浏览器和其他实用软件
你也可以完全按照偏好去选择其他软件,或者不安装,下面有每个软件包的介绍。
安装:sudo pacman -S --noconfirm dolphin ark kwrite gwenview fcitx5-im fcitx5-chinese-addons fcitx5-pinyin-zhwiki firefox firefox-i18n-zh-cn firefox-i18n-zh-tw
安装 dolphin 可选依赖(视频缩略图支持):sudo pacman -S --asdeps ffmpegthumbs
安装 ark 可选依赖(更多压缩包格式支持):sudo pacman -S --asdeps lrzip lzop p7zip unrar
安装 gwenview 可选依赖(更多图片格式支持):sudo pacman -S --asdeps kimageformats qt5-imageformats
dolphin = 文件管理器、ark = 压缩工具、kwrite = 文本编辑器、gwenview = 图片浏览器,这些软件都属于 KDE 家族,搭配 KDE Plasma 桌面使用更佳。
fcitx5-im: Fcitx5 输入法框架的软件包组(或许你喜欢 IBus?)
fcitx5-chinese-addons: Fcitx5 中文插件集合,包含拼音输入法等插件。
fcitx5-pinyin-zhwiki: 来自 zh.wikipedia.org 的 Fcitx5 拼音输入法字典
更多基于 Fcitx5 的中文输入法:https://wiki.archlinux.org/title/Fcitx5#Chinese
firefox: FireFox 浏览器
firefox-i18n-zh-cn firefox-i18n-zh-tw: FireFox 的简繁中文语言包,你也可以只安装需要的语言包。
如果你更偏爱使用 Chromium / Google Chrome 浏览器,可以安装chromium
软件包。
PS:Chromium 是开源版的 Google Chrome,它们的区别参见 https://en.wikipedia.org/wiki/Chromium_(web_browser)#Differences_from_Google_Chrome。Google Chrome 可以通过 AUR 或 ArchLinuxCN 安装。
PPS:2021年3月15日起 Chromium 不再支持与 Google API 相关的功能,包括 Google 账户登陆和同步等。如果你需要使用这些功能,最佳方法是安装 Google Chrome,还有一种方法可以使 Chromium 恢复这些功能支持,你可以前往 ArchWiki 了解或加入 QQ 群向我询问。
更多 KDE 家族应用:apps.kde.org
执行nano ~/.bash_profile
配置输入法环境变量,添加以下行:
export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx export SDL_IM_MODULE=fcitx
PS:输入法需要重启系统或重新登录才会生效
输入法默认激活快捷键:Ctrl + 空格
输入法的设置可以在 「系统设置」→「区域设置」→「输入法」修改,你可以点击「添加输入法」来添加拼音或其他输入法。
Plasma 设置优化
外观 → 字体:除了等宽字体,其余字体修改为 [Sans Serif](无衬线)。如果你觉得字体看起来不正常(对比下图),可以加入 QQ 群与我交流。
开机和关机 → 登陆屏幕 (SDDM): 主题更改为「微风」
Discover 可以用于安装/更新/卸载系统软件包和 Plasma 插件/主题,还有来自 LVFS 的固件更新。
删除安装过程中下载的软件包:sudo pacman -Scc --noconfirm
重启系统开启你的 ArchLinux 之旅
安装 AUR 软件包管理器(可选)
什么是 AUR?
AUR 全称是 Arch User Repository(Arch 用户软件仓库),AUR 软件包由来自社区的用户进行维护,他们上传编写好的软件包构建脚本,其他用户可以使用这些构建脚本自动生成软件包并安装。
官方仓库没有的软件包,或者是官方仓库软件包的开发或过时版本,基本上都可以在 AUR 找到,所以 ArchLinux 安装第三方软件包非常方便。
AUR: aur.archlinux.org
ArchWiki 的 AUR 页面:https://wiki.archlinux.org/title/Arch_User_Repository
PS:AUR 的软件包大多数都没有经过测试,使用风险需要自己承担。
AUR 软件包的安装和更新默认需要手动操作,并不能像使用 pacman 那样方便的安装和更新,不过一些优秀的 AUR 包管理工具可以让你像使用 pacman 安装存储库包那样安装 AUR 包。
我推荐使用 yay 作为 AUR 包的管理工具,因为它的使用方法和 pacman 基本一致,可以大幅度降低学习成本。
不过还是推荐大家学习如何手动安装 AUR 软件包,以备不时之需,下面安装 yay 的操作就是安装大多数 AUR 软件包的步骤。
如果是第一次安装 AUR 软件包,需要安装所需依赖:sudo pacman -S --noconfirm --needed base-devel git
安装 yay 步骤:
前往 AUR 的 yay 页面查看 「Git Clone URL」:https://aur.archlinux.org/packages/yay
使用 git 克隆存储库:git clone https://aur.archlinux.org/yay.git ~/aur-yay-repo
转到存储库目录:cd ~/aur-yay-repo
构建软件包并安装:makepkg -i -r -s
清理工作:cd ~ && rm -rf ~/aur-yay-repo
现在可以使用 yay 来管理存储库软件包和 AUR 软件包了,如果已添加的存储库不存在对应的包,yay 会自动在 AUR 中搜索,如果找到的话就开始安装操作。
用法:
如果不加任何参数执行 yay,它默认执行更新所有软件包操作:yay
安装软件包:yay -S <package_name>
or yay -S --aur <package_name> # 只从 AUR 获取包
更新所有软件包:yay -Syu
只更新 AUR 软件包:yay -Su --aur
只更新存储库软件包:yay -Syu --repo
yay 更多用法参考:https://github.com/Jguer/yay#readme
PS:如果你添加了 ArchLinuxCN 软件存储库,因为它包含了一些 AUR 软件包,所以你可以使用 pacman 安装某些 AUR 软件包。或者,你也可以使用--aur
参数让 yay 只从 AUR 获取包,相反你也可以使用--repo
参数让 yay 只从存储库获取包。
注意:不要使用 root 权限执行 yay 或任何 AUR 相关的命令,它们会在需要 root 权限时使用 sudo。
关于多系统启动
如果你的系统分别安装在不同的硬盘,那么只需要在电脑启动的时候引导不同的硬盘就可以了。
你也可以通过安装os-prober
使 GRUB 自动检测已安装的其他系统,并将其添加到 GRUB 启动菜单。安装完成后,添加GRUB_DISABLE_OS_PROBER=false
到/etc/default/grub
,重新生成 GRUB 配置文件:grub-mkconfig -o /boot/grub/grub.cfg
。如果你又安装了其他系统,则需要再次重新生成 GRUB 配置文件。
关于 os-prober 更多用法以及注意事项:https://wiki.archlinux.org/title/GRUB#Detecting_other_operating_systems
建议阅读
建议阅读以下 Wiki 以便更好的使用 ArchLinux:
应用程序列表:https://wiki.archlinux.org/title/List_of_applications,你可以在这里按照用途类型找到可用软件。
一般建议:https://wiki.archlinux.org/title/General_recommendations
系统维护:https://wiki.archlinux.org/title/System_maintenance
systemctl 基本用法:https://wiki.archlinux.org/title/Systemd#Basic_systemctl_usage
pacman 软件包管理器:https://wiki.archlinux.org/title/Pacman,安装/卸载/更新软件全靠它。
CPU 调频:https://wiki.archlinux.org/title/CPU_frequency_scaling
蓝牙:https://wiki.archlinux.org/title/Bluetooth
Synaptics 触摸板:https://wiki.archlinux.org/title/Touchpad_Synaptics,建议 Synaptics 触摸板的笔记本用户阅读。
Bash:https://wiki.archlinux.org/title/Bash
腾讯 QQ:https://wiki.archlinux.org/title/Tencent_QQ
中国大陆用户的推荐解决方案:https://wiki.archlinux.org/title/General_recommendations#中国大陆用户的推荐解决方案
建议阅读时选择英文,看不懂的地方可以使用浏览器翻译。
如果阅读中文版本的 Wiki,建议阅读之前注意下页面顶部提示的最后翻译更新时间,如果时间超过几个月,那么翻译可能没有更新到最新的原文。
如果你有能力,可以把对你有帮助的 Wiki 翻译成中文,以帮助更多的中文用户。
欢迎加入 QQ 群与小山交流 ArchLinux 的使用经验/感受,我以后也会推出更多关于 Linux 的文章。
微信扫描二维码关注我们
如果觉得文章有帮助到你,可以点击下方的打赏按钮赞助下服务器费用。
文章评论
有点晚了,在pacstrap软件时 ext4文件管理工具拼错了
QQ跳转不过去,能直接发群号吗
@cookie 可以在微信公众号回复 "QQ 群" 获取群号。
较新的好文,准备Manjaro换Arch试试
老哥给力,看了这么多教程,终于在你这里成功安装了
为什么一会/boot 一会/efi啊,是不是有问题
@lss 没有问题,安装好的系统不需要再改动任何了,我改动后的教程都是针对新安装的用户。
更改 ESP 分区的挂载路径是为了以后如果想更换引导程序比较方便
@小山 你创建的是/boot目录,后面实例却把引导装在了efi目录
@lss 感谢指正,示例命令是我大意了。
为什么我虚拟机装arch按照步骤完成后,重启还是在选择安装系统界面,步骤不报错。
@NOEYE 把虚拟机的安装光盘移出,如果移出后无法启动,可能是你没有安装引导程序。
@小山 不是选择ISO映像文件安装吗?
@NOEYE 安装完就不需要了啊
@小山 应该是/dev/sda1 分区类型改EFI System失败,怎么办?
@NOEYE 你加 QQ 群吧,交流方便。
作者在吗??我,安装过程装不上 linux-firmware 镜像源里好像都没有,外国的慢的直接取消了求助!!
@66666 我都写了安装之前先下载国内的镜像源了,有其他问题加群交流。
太赞了,一次成功!!
感谢感谢。。终于装上了输入法
🐂🍺就完事了