Arch Linux + Windows 双系统安装教程

有些话必须放在前面……

无论从哪个角度看,Arch Linux 都不是一个新手友好型 Linux 发行版。无论你是因为什么原因选择安装 Arch Linux,我都希望你能够满足下条件:

  • 具有基本阅读理解水平,至少要能跟着教程来
  • 掌握电脑基础使用,能够正常开关机
  • 对电脑键盘键位和其按钮有基本了解(打字都不会的就不要打扰了。。。)
  • 能够面对满屏的命令行输出保持基本冷静
  • 具有基础的英语水平,至少命令行报错(比如出现 error)的时候,你能反应过来该命令执行出现错误。
  • 有一定自主操作能力,能根据自己实际情况解决相应问题
  • 出现突发情况,能够自行解决或者上网查阅相关资料

必须说明的是,写一篇面向新手的教程本身就是一件非常令人苦恼的事情。我不能确定我眼中的常识是否是新手闻所未闻的新知识,我不能确定我习惯并自以为清晰明了的描述会不会让新手看的云里雾里。因此在教程中我尽可能侧重于讲解而不是一直单调地告诉你如何去做。同时,因为面向新手,教程也会尽量避免其他知识的扩展以减少新手的阅读压力。此外,因为我很少使用 Windows(或者说 Windows 使用经验几乎为零),所以下文关于 Windows 的描述可能会有一些不准确的地方。如有错误还请指正。

当然,你可以另辟蹊径,通过一些特殊方法(如安装脚本)完成安装过程,但是这样无疑失去了 Arch Linux 安装的意义。这样做最直接的后果是,对于 Arch Linux 这种需要你自己维护的系统,如果你甚至没有自己动手完成你的系统安装过程,那么在系统出现问题的时候你多半无计可施只能重装系统了。

如果你是一个小白也不用太过担心,安装过程虽然是通过命令行一步一步操作,看似非常复杂繁琐。但是实际操作过程中你会发现,大多数情况下你并不需要理解每一个步骤的原因、每一行命令的意思。一般来说,安装过程也不会出现什么技术难点

如果你有一定的 Linux 使用经验,根据本教程,你可以轻松完成 Arch Linux + Windows 双系统的安装,部分命令可以根据你的习惯或者需求改为其他命令,本教程仅供参照。

如果你并不是想安装双系统,只是单纯安装 Arch Linux 这一个系统,可以根据需求对教程进行改动(教程步骤中也会进行说明)或参阅我单独的 Arch Linux 安装教程(写完了会贴在评论区)。

我更希望的是,新人们能通过我这篇教程更多地了解 Arch Linux 和 Linux 本身,而不是机械式和目的性地完成一个操作系统的安装。

正文

确定电脑的启动类型

电脑启动类型可以粗略地分为「传统 BIOS」(简称 BIOS)和「UEFI」。因为两者在启动盘制作上和安装步骤上存在差异,所以必须在安装前对电脑的启动类型进行确认。如果是最近十年生产的设备,使用的一般是 UEFI 引导。

首先启动进入 Windows 桌面,同时按下 Win+R 打开运行对话框,然后输入 msinfo32 后回车确认打开系统信息,查看「BIOS 模式」是不是 UEFI。如果是,则为 UEFI 引导,反之则为传统 BIOS 引导。

ISO 镜像烧录

  • Windows 建议使用 Rufus 烧录镜像。

Rufus 是一个可以帮助格式化和创建可引导USB闪存盘的工具,比如 USB 随身碟,记忆棒等等。麻雀虽小,五脏俱全,体积虽小,功能全面。

注意,在某些 Linux 可用的软碟通(UItraISO)不适用于 Arch Linux

  1. 下载完成后,双击打开该文件,允许或不允许 Rufus 联网检查程序更新皆可。

    检查更新

  2. 插入你的 U 盘,在「设备」选项框中选择你的 U 盘(一般会默认选中,以下图片均为示例)。

  3. 在「引导类型选择」下选择 「镜像文件(请选择)」,然后单击右侧的「选择」来选择你下载好的镜像。

  4. 「持久分区大小」默认即可。对于「分区类型」,UEFI 引导选择「GPT」,BIOS 引导保持「MBR」即可

    示例

  5. 「格式化选项」保持默认即可,单击开始来进行下一步。

    示例

  6. 选择 「以 ISO 镜像 模式写入(推荐)」,单击「OK」进行下一步。

  7. 单击开始来烧录镜像。

    示例

  8. 等待烧录完成即可。(下图即为烧录完成的一个示例)

    示例

  • Linux 使用 dd 命令 :
 dd if=ISO镜像位置 of=/dev/sdX bs=4M

/dev/sdX 为用作启动盘的 U 盘标识。

输入如下命令确定获取电脑硬盘信息,所获取的信息中应该包含 U 盘标识 sudo fdisk -l

启动前准备工作

为 Arch Linux 准备空闲的硬盘空间

首先打开电脑启动到 Windows。这里我们使用「磁盘管理」来为 Arch Linux 准备一个可用的磁盘空间用以安装。如果你只打算安装 Arch Linux 单系统则可以跳过这步。

  • 对于 Windows 7 及以上的 Windows 设备,可以右键「此电脑」(或「我的电脑」及其他可能被你自定义的名字),然后选择「管理」—「磁盘管理」。
  • 对于 Windows 8 及以上的 Windows 设备,可以直接 Win+X 后选择磁盘管理。

这个界面显示的是你电脑上安装的所有存储设备的情况。

不止是电脑的硬盘,其余如光驱和 U 盘(如果已经插入)也会在此处显示。

示例

一般情况下,在该界面中,深蓝色的分区是主分区,浅蓝色的分区是扩展分区,绿色的是空闲没有使用的空间。我们现在要做的是选择一个剩余空间足够大的分区,空出来给我们的 Arch Linux 使用。因为 Windows 版本不同,相应的分区的名字和颜色可能会有所不同,但是我相信聪明的你一定能发现这些不同的名字其实是同一个意思的。

以下分为两种情况处理

  • 如果分区空间不是特别充裕,建议把最后一个分区空出来,即把该分区的数据全部备份到其他电脑分区然后把空出来的分区删掉。 注意,是删掉整个分区,不是格式化!! 虽然说选择其中的任意一个对安装本身没有影响,但是删除分区和格式化分区在后续操作上会有所不同。除非你清楚你在做什么并且知道后续的操作方法,否则请选择删除分区。 删除分区的方法是,右键你要删除的分区,然后点击“删除卷”再确认。注意,该操作会擦除该分区的所有数据,而且过程不可逆。操作完成后该分区就会变成成绿色的“可用空间”。这就是为 Arch Linux 准备好的空间。

  • 如果你的 Windows 下的分区空闲空间足够大,则可以从空闲空间里压缩一部分空间来安装 Arch Linux。 步骤是,先在磁盘管理器(上图界面)中该分区上点右键,然后点“压缩卷”,Windows 会让你输入一个数值。这个数值是以 MB 为单位,输入的是你要分割出来的空间大小。这个数值最大不能超过该分区的空闲空间大小。 最后点击确定,接着会有一个整理数据和分割的过程,等它整理完“空闲空间”出现就完成了。

友情提醒:不同分区压缩出来的空闲空间不会合并在一起给你用。所以,不要想着从每个分区里拿一个空间出来凑足需要的空闲空间。

关于这个空间的大小,我认为对于初步的接触和学习来说,至少要 30G 以上,50G 为基准线。如果小于 30G 但是在 20G 以上,安装当然没有问题,不过基本上没有空间给用户存储数据使用了

禁用快速启动和安全启动

Arch Linux 单系统安装可以不禁用 Windows 的快速启动但一定要禁用安全启动。

该部分建议自行在网上寻找相关教程。一部分原因是因为不同系统版本存在差异不方便统一概括,一部分是因为不同电脑可能存在不同的设置方式(比如进 BIOS),因此最好的办法是在网上找到自己机型对应的教程。

设置 Windows 时区偏移

Arch Linux 单系统安装可以跳过这步。

Linux 和 Windows 对硬件时钟的处理方式不同,如果不加以特别设置容易造成两个系统时间混乱。

Arch Wiki 及我个人推荐的方法是设置 Windows 时区偏移。

Windows 下使用管理员权限执行下列命令即可。

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f

直接执行此命令可能会导致 Windows 显示的当前时间向后偏移 8 个小时。请不用担心,安装 Arch Linux 并联网校时之后时间会恢复正常。

电脑环境确认

进行到这一步时,我们默认你电脑目前处于以下环境中的某一种。

  • 电脑使用传统 BIOS 引导+MBR 分区,且电脑已经安装一个运行正常的 Windows。电脑无与 Arch Linux 安装有关的硬件问题。
  • 电脑使用 UEFI 引导+ GPT 分区,且电脑已经安装一个运行正常的 Windows。电脑无与 Arch Linux 安装有关的硬件问题。

启动盘使用

首先让电脑从 U 盘启动。

你问怎么从 U 盘启动??我建议你点击此链接获取帮助

大多数的电脑都有一个在开机时按下一个按键来选择从哪里启动的选项(例如 Dell 和 Lenovo 是 F12,台式机是 Delete)。

如果你的电脑旧到不支持从 U 盘启动…… 建议还是换台电脑吧……

从U盘启动后电脑会出现一个新界面,传统BIOS启动和UEFI启动在该界面显示结果不一样。

BIOS 启动界面:

BIOS

​ UEFI 启动界面:

UEFI

无论你是哪种启动,用光标选中第一项然后回车即可启动镜像。 启动成功后你应该看到类似如图所示界面: 示例

如果未出现该提示符,则可能是启动盘出现了问题,建议重新烧录镜像…

这里先简单地对这个界面(终端)进行介绍,以减少后面重复累赘(当然,这部分不看也行,我觉得可能大部分人现在还看不懂,看得懂的又没必要看…)。

首先,包括 Arch Linux 在内的绝大多数 Linux 发行版以及 Windows 都是多用户操作系统。多用户操作系统,顾名思义,一个操作系统上可以存在多个相对独立的用户帐号,就像你熟悉的 QQ 可以同时登录多个 QQ 号。

为了区分不同的用户,我们需要给不同的用户一个唯一的用户名以对他们进行区分。比如,如果已经存在一个用户他叫 xiaoming,则不能在同一个操作系统存在另一个也叫 xiaoming 的用户,这就像集合内元素的互异性。

同时,因为存在多个用户,我们需要一个管理员(Admin)作为这个系统的超级用户(Super User)。管理员享有系统内至高无上的管理员权限(Administrator rights),他拥有一个特殊且唯一的用户名:root。

就像用户有自己的用户名,电脑或者说主机(host)也有自己的主机名(hostname)。考虑到一个操作系统一般不会同时运行在多个设备上,所以主机名一般是给系统和程序看的,你无需特别关心。你可以自定义你电脑的主机名。

补充一下,上面那段话中括号内的英文不是我矫情作秀所以特意加上去体现我的文化水平(虽然也体现不了啥),而是告诉你这些常见名词的英文称呼。你可能会在系统安装过程中或者日后使用中遇到这些名词所对应的英文单词,了解这些英文称呼能帮助你判断当前系统的情况该从何下手。

言归正传。经过上面简单解释,我们可以对如下的提示符进行科学的解释。

root@archiso ~ #

提示符 @ 前的 root 是当前用户的用户名,@ 后的 archiso 是当前系统(Arch Linux 启动盘)的主机名,~ 符号代表你当前所处的目录(至于 ~ 算啥目录…这里就不加大新手理解负担了),# 代表当前用户为管理员用户(普通用户为 $),# 后面输入的命令将会以管理员权限无条件执行。

特别说明,并非终端一定有这个提示符,也不是说提示符一定按照这个格式存在,因为这些都是可以由你自定义的。

你需要在这个称之为终端的界面输入你的命令完成安装过程,命令输入后必须回车确认,系统才会执行。

终端的命令需要精确到字符的大小写以及空格。除非你有进行特别配置,否则终端并不能智能地识别你的输入错误。所以,当你终端报错时,第一时间该做的就是检查是否打错了字符或者少了空格。

终端(特指 zsh 和 bash 这样的 shell)有个特别强大且实用的功能是 Tab 键补全。比如当你需要输入 pacstrap,你可以只输入 pacs 然后按一次键盘的 Tab 键,终端会自动补全 pacstrap。当存在多个可能的补全项,比如你只输入一个 s 就按下了 Tab 键,终端无法做到自动补全,这时它可能会列出所有可能的选项或者报错。当然,就像上面一样,这也可以由你自定义。善用 Tab 补全能极高地提高我们的输入效率。

我们通过下面一行简单的命令认识一下终端的命令。

rm -rf /*

rm 是英语单词 remove(移除)的简写,在 Linux 下通常指删除文件;短横线 - 后是该命令的参数,r 代表递归,f 代表强制执行;最后的 / 代表根目录,/ 后加 * 是一种常见的匹配方法(姑且先这样解释),代表 / 目录下所有文件的和文件夹。

所以,根据上面的解释,我们现在可以理解,上面那行命令的意思是,删除 / 目录下所有文件和文件夹。空格将命令 rm 与参数 -rf 隔开,如果不隔开,终端会识别你输入的命令为 rm-rf。显然,这个命令不存在,所以终端会报错。

连接网络并同步时间

  • 如果你能连接有线网络,最好的办法是直接插网线连接网络。
  • 如果你电脑有无线网卡的话(绝大多数电脑应该都有),则可以尝试通过 WiFi 连接。我们可以通过 archiso 内置的 iwd 软件完成这一过程。
  • 如果你操作半天还是发现自己不会用 iwd 的话,直接使用 Android 手机直接给电脑 USB 共享网络也不失为一个不错的选择。

2020 年 7 月的 ArchISO 砍掉了 netctl,经典的 wifi-menu 已被 iwctl 取代。如果你在某个教程里还看到了「使用 wifi-menu 连接 WiFi」的字样,请提醒作者更新教程……

所以 wpa_supplicant 使用者竟成最后赢家。

在使用 iwctl 之前,我们需要先检查一下你的网卡是否被物理禁用或软件禁用。

物理禁用一般需要你的电脑存在可以物理按键或滑块可以手动关闭或打开网卡(当然,我觉得一般电脑是没有这玩意的)。

软件禁用则考虑网卡是否被 rfkill 禁用,目前已知 ideapad(联想小新系列)会自动禁用无线网卡和蓝牙。

对于无线网卡被 rfkill 禁用的用户,输入以下命令解除 block

rfkill unblock all

在确认无误后,输入 iwctl 进入 iwd 的 shell。

输入 device list 列出你电脑的无线网络设备(一般就是你电脑的网卡)

常见的网卡名称是 wlan0 这样的。请根据自己电脑的实际情况判断(如果看不懂上一个命令的输出可以用 wlan0 这个名字试试)。

输入如下命令列出所有网络,命令中的 device 需要替换为你上一步看到的网卡的名称

station device get-networks

比如,如果你的网卡名称是 wlan0,那么你应该输入的命令是

station wlan0 get-networks

如果你的电脑无线网卡工作正常的话,此时屏幕上会列出你熟悉的 WiFi 名称。如果没有任何结果或者出现报错的话,则需要你自己检查是否是网卡出现问题或者你打错了某个字符或者少了空格。

输入如下命令连接 WiFi,就像上面一样,device 需要替换成你电脑网卡的名字,SSID 需要替换成你想要连接且上面已经列出的 WiFi 名称

station device connect SSID

如果 WiFi 有密码,此时会提示你输入密码,输入 WiFi 密码后回车即可。

完成上述操作后,输入 exit 退出 iwd 的 shell。

为了检测电脑真的是否连接上网络,我们可以输入如下命令

ping www.baidu.com

ping 后面的网址可以是任何国内可以直连的网址。

如果已连接上网络,则电脑会疯狂输出一大堆延迟测试数据。反之则只有简单的Timeout报错或长时间无输出结果。

此时按 Ctrl+C 以中止输出。

Ctrl+C 的意思是同时按住 Ctrl 键和 C 键。在 Linux 终端下,Ctrl+C 可以近似理解为强行终止当前终端的活动进程。比如上面,ping 这个进程正在运行,我们通过 Ctrl+C 将它强行终止。

输入如下命令设置时间为 UTC 并完成 NTP 时间同步。

hwclock --systohc --utc
timedatectl set-ntp true

准备硬盘分区

对于双系统而言,最麻烦的一部分无疑就是硬盘分区和双系统引导。完成这部分需要读者拥有发育健全的大脑并且有一定的自主操作能力。

你可以先输入fdisk -l查看当前电脑硬盘的状态。

输出结果中的 /dev/sdX 代表的是你电脑的硬盘。

输出结果不可能真的出现/dev/sdX,此处的 X 只是代表如 a、b、c 这样的符号,如数学中用字母代替数的作用

如果你的电脑只有一个硬盘,你的输出结果应该仅含 /dev/sda/dev/sdb

其中,/dev/sda 代表的是你电脑的硬盘,/dev/sdb 代表的是你的启动盘(U 盘)。

/dev/sda 后的数字,如/dev/sda1,则代表/dev/sda 这个磁盘下的第几个分区。

如果这是一块新硬盘或者已经清空的硬盘的话,你大概看不到 /dev/sda1 这样的分区。

如果你看到了一些其它的东西,比如/dev/nvme0n1 这样的,则代表你的电脑上有一块 NVMe SSD

如果是/dev/mmcblk0 这样的,则代表你的电脑上有 eMMC 存储。

此时你的启动盘可能会被归为 /dev/sda ,所以下面要根据你自己实际情况操作

再有其他情况我也不知道了

对硬盘进行分区

在终端输入如下命令进行分区: cfdisk /dev/sdX

最后一次提醒,/dev/sdX 只是示例,具体命令需要根据你实际情况进行更改,比如 cfdisk /dev/nvme0n1 这样的。

此时屏幕应该显示你电脑相应的系统硬盘的信息。 同时,屏幕底部会显示几个[xxx],其中有

[ Delete ] [ New ] [ Quit ] [ Help ] [ Write ] [ Dump ]

这几个[xxx]的意思分别是

[删除] [新建] [退出] [帮助] [写入] [转储]

底部的选项的位置可能会随着 cfdisk 的更新发生变化,但是相应选项的功能不会改变。

在硬盘信息处,应该出现一个绿色的Free space,这个就是你在 Windows 中压缩给 Arch Linux 的空间。 将光标通过键盘上下方向键移至Free space,再通过键盘左右方向键选择[New],以新建分区。

新建分区需要手动输入分区大小。 例如新建一个 30G 大小的分区,你应该将光标通过键盘上下方向键移至Free space,再通过键盘左右方向键选择[New],敲回车后输入30G,然后回车确认

对于怎么分区以及分多大我先要进行一些说明。你可能在其他 Arch Linux 安装教程或者其他别的 Linux 发行版安装教程中看到他们关于分区大小的各种理论或规范,实际上,如何分区、分区多大是没有固定标准的。当你对 Linux 足够熟悉并清楚该如何操作,不分区都是可以的,只要完成 Windows 的引导要求即可。

这里介绍一个比较通行的分区方法,同时也建议按照如下顺序进行分区。

  • /boot分区,用来存储启动信息(有时候内核也会安装在这个分区),该分区一般 512M 足够。BIOS 引导可以不单独分这个分区,但是 UEFI 引导必须有该分区(或者能完成引导要求的类似分区)作为 EFI 分区。双系统启动可以在此时不分出/boot分区,因为双系统启动可以直接把 Windows 的 EFI 分区挂载到/boot上,但是据反馈因为 Windows 的 EFI 分区只有 100MB,在 Windows 11 上可能出现分区大小不足的问题。
  • /swap分区,交换分区,该分区功能很多,不等同于 Windows 的虚拟内存,建议每一个用户至少创建一个 2G 大小的交换分区。该分区大小视电脑内存大小而定。电脑小于或等于 2G 内存则建议设为内存大小的 2 倍及以上,即 4G,不过太大也没有意义。电脑内存大于 2G 可以设置为 4G。你也可以设置交换文件代替交换分区,这里不进行介绍。请不要担心 swap 分区会造成磁盘读写量过多而不设立 swap 分区(这通常是某些被厨子迫害到 ptsd 的 Mac 玩家的奇怪想法),关于 swap 分区的更多介绍可以参阅 【译】替 swap 辩护:常见的误解关于 swap 的一些补充
  • /home分区(可选),即用户分区,用于存储用户的数据。该分区是用户自己数据存储的地方。如果你不单独分出 home 分区,则你的所有数据将仅存储在 /mnt 分区。你可以将 /mnt 分区理解为 Windows 下的 C 盘,/home 是 Windows 下的 D 盘、E 盘。对于新手,建议不创建单独的 /home 分区;对于有一点经验并有相关需求的用户,建议先创建 /mnt 再创建 /home,并把磁盘剩余的所有空间都留给 /home
  • /mnt分区,即根目录,用来存储系统和将来安装的软件等数据,如果你创建单独的 /home 分区,则建议该分区大小不小于 20G,根据你的需求和剩余空间大小而定;如果不创建单独的 /home 分区,请把磁盘所有剩余空间留给 /mnt

以下是 Arch Linux 官方推荐的分区方式

  • UEFI 与 GPT 分区
挂载点 分区 分区类型 推荐大小
/mnt/boot /dev/efi_system_partition EFI 系统分区 至少 300MB
[SWAP] /dev/swap_partition Linux swap 大于512MB
/mnt /dev/root_partition Linux x86-64 root (/) 设备的所有剩余空间
  • BIOS 与 MBR 分区
挂载点 分区 分区类型 推荐大小
[SWAP] /dev/swap_partition Linux swap 大于512MB
/mnt /dev/root_partition Linux x86-64 root (/) 设备的所有剩余空间

如果电脑是传统BIOS启动,选择[ New ]回车后有可能需要选择建立主分区还是扩展分区。(该情形会在硬盘中没有分区或者主分区不足4个时询问。如果硬盘已经有4个主分区则不会询问,默认建立扩展分区。) EFI启动可以建立无限个主分区,所以不会询问,直接建立主分区。

原则上尽量使用主分区。如果主分区用尽,建立扩展分区时注意不要修改分区大小,直接回车。因为扩展分区本身不是一个分区。 回车后会发现扩展分区下的硬盘还是剩余空间,只是被划分到扩展分区下了。

按上面建议的分区大小,分别建立四个分区后,选择[ Write ]写入再选择[ Quit ]退出。退出时你需要输入yes确认。输入完整的yes不是输入一个y

挂载分区

在终端输入如下命令以检查分区情况:

fdisk -l

此时屏幕应该显示你当前电脑的硬盘及各硬盘的分区情况。

分区表应该出现你所新建的分区,且大小与你输入的分区大小一致。

确认新分区建立无误后,输入如下命令对新建分区进行格式化。这里使用经典的 ext4 文件系统,在你对 Linux 文件系统有一点了解后,你可以换用其他的文件系统,比如 btrfs。

下面所有的分区符号如/dev/sda1仅为示例,实际操作时应该结合自己实际情况进行格式化。 假设新建的/mnt分区符号为/dev/sdb3,则应该输入mkfs.ext4 /dev/sdb3以格式化

  • 格式化/mnt分区:

    mkfs.ext4 /dev/sda1
    
  • 格式化/boot分区(如果自行创建了 boot 分区) 为了通用性,建议将该分区格式化为fat32格式:

    mkfs.vfat -F32 /dev/sda2
    
  • 初始化/swap分区:

    mkswap /dev/sda3
    
  • 格式化/home分区(如果有):

    mkfs.ext4 /dev/sda4
    

格式化分区为 ext4 分区时通常需要输入y以确认。 其他分区格式化,没有报错则意味着操作成功。

接下来挂载分区

  1. 挂载/mnt分区:
mount /dev/sda1 /mnt
  1. 挂载/boot分区: 再次强调,UEFI 引导必须有独立的 boot 分区(或者有类似功能的其他分区)作为 EFI 分区,否则系统将因无引导而无法启动。双系统安装可以直接挂载 Windows 的 EFI 分区,如果出现分区大小不足请自行创建一个 boot 分区。
mkdir -p /mnt/boot
mount /dev/sda2 /mnt/boot
  1. /swap分区无需挂载,但是需要输入如下命令启用:
swapon /dev/sda3
  1. 建立/home分区目录并挂载分区:
mkdir /mnt/home
mount /dev/sda4 /mnt/home

至此,硬盘分区和相应目录挂载已经全部完成。

建议再次输入lsblk命令检查硬盘分区情况,一般情况下,每个相应的分区后面应该标注其挂载的目录。

以上过程中若出现报错不通过的情况,为了节约排查问题时间,可以直接从重新执行cfdisk命令重新分区开始。重新分区前,已经挂载好的目录需要进行卸载。 例,卸载/home分区目录的命令如下: unmount /dev/sda4 /mnt/home

安装 Arch Linux 基本系统

Arch Linux 的安装不仅需要连接网络,而且还要从网络下载大量数据。因为 Arch Linux 主服务器在国外,加之某些众所周知的原因,国内网络使用国外服务器下载会非常慢。因此,建议使用国内镜像网站进行下载和安装工作。

输入如下命令,利用 reflector 自动替换国内镜像源

reflector --country 'China' --age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist

该命令相对来说比较长,请注意不要打错字符或漏空格。

修改完镜像源之后,输入如下命令刷新镜像源

pacman -Syy

下面开始安装基本系统。

开始之前,我有必要介绍一下 Linux 的 软件包管理程序(package manager,我简称为包管理)。Linux 的 包管理 是 Linux 发行版中最重要的软件之一(虽然有的 Linux 发行版没有包管理),不同的 Linux 发行版除非存在父子关系否则包管理是不同的,Linux 几乎所有的软件都必须通过 包管理 安装。

包管理安装软件分为在线安装和本地安装。这里仅介绍在线安装(本地安装大家都懂吧…)。

在线安装是绝大多数情况下你使用的安装方法。包管理在当前使用的软件镜像源(mirror)中搜索你想要安装的软件包,然后直接下载安装。为了加快在线下载速度,几乎所有 Linux 包管理都会从镜像源下载软件包列表,这样如果需要安装软件的话,可以直接从本地缓存中搜索软件包的下载链接。也因为本地缓存的机制,我们需要经常刷新本地缓存,上面的 pacman -Syy 就是 Arch Linux 刷新本地缓存的方法。

Arch Linux 的包管理软件叫做 Pacman(没开玩笑,就这名字…)。Pacman 在线安装软件的命令为 pacman -S 软件包名字 ,关于 Pacman 的更多用法文末会进行介绍。

输入如下命令借助 pacstrap 脚本完成安装。pacstrap 是 ArchISO 中的一个脚本,可以自动完成基础但繁琐的系统配置如内核的配置。

pacstrap /mnt base base-devel linux linux-firmware nano vim e2fsprogs ntfs-3g 

在上述命令中,base 是元软件包(基本系统所需依赖,你可以不知道它是啥但是必须安装),base-devel 是基础软件包组,linux 是内核,linux-firmware 是固件包,nano、vim 是常用编辑器,e2fsprogs 是 ext4 文件系统所需工具,如果你是按照上面教程使用 ext4 文件系统则必须安装该软件包。ntfs-3g 是与 Windows 的 NTFS 有关的软件包,如果是单系统可以不安装。

这里简单介绍一下软件包组。对于 Linux 用户来说,我们可能需要一次性安装一大堆软件包。虽然我们可以通过包管理批量安装多个软件,但是敲那么多软件的名字无疑非常的枯燥无聊且繁琐。因此,Arch Linux 的打包者将具有相关性的多个软件包归入一个软件包组,虽然软件包组不是一个软件包,但是安装操作与一个真正的软件包相同。比如上面的 base-devel 就是将系统基础软件包归入一个软件包组,我们只需要输入软件包组的名字就可以安装这些软件包。

你可以将上述命令中的linux替换为 Kernel 页面中介绍的内核软件包。如果知道自己的需求并了解后果,可以不安装 linux-firmware.

安装过程中会出现选择软件包的提示,建议“默认=all”,即直接敲回车默认安装,输入一个“y”确认安装。 在网络不佳的情况下,下载过程可能会出现意外断流,此时重复上面的命令即可。

根据 Arch Linux CN Messages消息,因为 archlinux-keyring 20220713 替换了一部分 master key ,一些包使用新 key 打包,安装时可能出现一些包无法经过签名校验。如果你上一个命令执行出现报错,可以先尝试以下命令单独更新 archlinux-keyring,然后再重新进行安装。

报错示例:

#这是错误日志不是命令
error: failed to commit transaction (invalid or corrupted > package)
Errors occurred, no packages were upgraded.
==> ERROR: Failed to install packages to new root

单独更新 archlinux-keyring:

pacman -Sy archlinux-keyring

当安装停止且成功后,输入如下命令以生成 fstab 文件。fstab 是 file system table 的缩写,你可以不知道它是啥但是它必不可少。

genfstab -U -p /mnt >> /mnt/etc/fstab

为了确认文件生成,建议输入如下命令以确认:

nano /mnt/etc/fstab

确认无误后,输入Ctrl + X退出。

Nano 是 Linux 下一个简单轻量的文本编辑器,适合新手使用,后文还会多次使用该编辑器。如果已经有一定的 Linux 使用经验,建议换用 Vim。

如果一切正常的话,此时你应该成功在电脑硬盘安装了 Arch Linux 基本系统。

安装基本系统后的环境配置

输入如下命令进入新安装的系统:

arch-chroot /mnt /bin/bash

现在你进入了电脑硬盘上的 Arch Linux 。

如果一切正常的话,细心的你会发现提示符由 root@archiso ~ # 变为 [root@archiso /]#

上面有提及,Linux 中默认有一个用户叫 root,拥有对系统的一切权力。这意味着,即使让系统删除自己本身也会执行无误,比如著名命令 rm -rf /*千万不要输入这个命令,否则后果自负

现在安装系统默认使用的是 root 用户。

输入下面命令来设置 root 用户密码:

passwd

输入密码后需要回车确认,密码需要输入两次。

密码在输入的时候不会显示,不用担心是自己键盘坏了。

因为root用户权力过大大,即使删掉系统本身,也会被执行。为了避免日常使用因为权限过高造成某些不可逆而又本可以避免的损失,Linux 桌面用户需要添加一个普通用户,且该用户可以获取临时root权限。 一般情况下,这个新添加的用户将会是你后续登录 Linux 的主要用户

执行以下命令新建一个隶属于 wheel 组的新用户。

useradd -m -G wheel -s /bin/bash 你的用户名 

这里友情提醒一下,上面所设的用户名必须是小写字母,而且最好短一点(如果你不怕之后使用麻烦的话就随意吧)。

输入如下命令为新建用户设置密码(修改密码也是这个命令),密码不少于 6 位或 8 位。

passwd 你的用户名

同上,密码需要输入两次,且密码不会显示。

因为这个密码在日常使用中可能需要经常输入,所以建议密码不要太长,但为了安全性也不要太短太简单。

为了该普通用户能获取临时 root 权限,我们需要修改 wheel 的权限设置。修改权限设置的最好方法就是使用 visudo,但是对于不会使用 vi 的新手,也可以直接使用 nano 修改相关文件。 输入如下命令打开sudoers文件:

nano /etc/sudoers

在打开的文件中找到以下两行:

## Uncomment to allow members of group wheel to execute any command
# %wheel ALL=(ALL) ALL

确认无误后, 把%wheel前面的注释符号(#)去掉,(%)要留下。 最后的结果应该是下面这样:

## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL) ALL

同时按Ctrl + X,然后保存退出。

后续若需要普通用户在执行某条命令时临时获得 root 权限,则在该条命令前加上sudo

例:sudo pacman -Syu

  sudo rm -rf /*

在有密码的情况下,使用 sudo 执行命令需要输入 当前用户的密码 以二次确认。

如同用户有一个名字一样,Linux 下电脑也需要一个名字。 输入如下命令配置电脑的主机名:

echo 你电脑的主机名 > /etc/hostname

主机名可以是任何你喜欢的名字,但是不能含空格等字符。如果你不清楚的话,最好不要在主机名中加入一些奇奇怪怪的特殊字符(不会真的有人那么无聊吧)。

下面对系统 host 进行配置(可选,如果嫌麻烦可以跳过这一步,如果不设置可能会在网络变更时出现应用无法启动等问题)。

输入以下命令:

nano /etc/hosts

你应该会看到如下符号

#<ip-address> <hostname.domain.org> <hostname>

你需要添加相应字符,使得界面如下所示:

127.0.0.1	localhost
::1		localhost
127.0.1.1	你电脑主机名.localdomain	你电脑主机名

如果系统有一个永久的 IP 地址,请使用这个永久的 IP 地址而不是 127.0.1.1,不过一般来说是没有这个东西的。

确认无误后,同时按住Ctrl + X,输入y,回车再退出。

安装微码并配置 Grub 引导

微码安装命令根据处理器选择。

  • Intel 用户输入如下命令

    pacman -S intel-ucode
    
  • AMD 用户输入如下命令

    pacman -S amd-ucode
    

至于其他型号的处理器比如国产处理器我就不知道怎么安装了…

以下操作分为传统 BIOS 引导和 UEFI 引导

如果不安装双系统,则不需要安装 os-prober。

  • 如果你是传统BIOS引导,则输入以下命令:

    pacman -S grub os-prober
    

    然后输入以下命令安装到硬盘:

    grub-install --target=i386-pc /dev/sda --recheck
    

第二条命令中/dev/sda应该根据你实际情况,改为你自己硬盘名字

  • 如果你是UEFI引导,则输入以下命令:

    pacman -S grub efibootmgr os-prober
    

    然后输入以下命令安装到硬盘:

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub --recheck

如果你未按照上述过程将 EFI 系统分区挂载到 /boot ,请自行修改 –efi-directory 的值

Grub 2.06 更新后默认禁用 os-prober。虽然我一时半会也还不知道这样做的意义何在,但是上游有改动,我们用户也只能动手适配了。

输入下面命令为 Grub 启用 os-prober。

echo "GRUB_DISABLE_OS_PROBER=false" >> /etc/default/grub

然后输入如下命令生成必要的配置文件:

grub-mkconfig -o /boot/grub/grub.cfg

注意,你一定要确定输入上面命令有输出结果。

输出结果大致如下:

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-linux
Found initrd image(s) in /boot: initramfs-linux.img
Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img
done

如果输入上一条命令没有任何输出结果,请务必停下来检查上面所有步骤有没有哪一处出现问题,或者重新进行所有安装步骤!!

配置语言和区域

/etc/locale.gen 是一个仅包含注释文档的文本文件。指定您需要的本地化类型,只需移除对应行前面的注释符号即可。(建议选择带 UTF-8 的项) 输入如下命令修改 locale.gen 文件,配置语言环境: nano /etc/locale.gen

分别找到以下字符,删除该行最前面的#

#en_US.UTF-8 UTF-8
#zh_CN.UTF-8 UTF-8
#zh_TW.UTF-8 UTF-8

比如,你看到#en_US.UTF-8 UTF-8时,你需要删除该行最前面的#,使之变成en_US.UTF-8 UTF-8

你也可以根据自己需求,添加其他环境。

编辑完成后同时按住Ctrl + X退出。

退出后输入如下命令刷新区域信息:

locale-gen

如果你上一步操作无误的话,命令输出结果应该包含

en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_TW.UTF-8 UTF-8

输入如下命令将区域信息写入 locale-conf 文件:

echo LANG=en_US.UTF-8 > /etc/locale.conf

毫无疑问,你可以选择将上一条命令的en_US.UTF-8改为zh_CN.UTF-8但请谨慎考虑后进行操作

locale.conf 文件是全局设置,如果这里设成中文或者其他非英文环境,桌面环境下字符会正常显示,但是在命令行下会变成乱码

如果看不懂请忽略此段。

输入如下命令设置时区为亚洲上海:

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

安装桌面环境

没错,对于 Linux 发行版,系统和 GUI 环境是分离的。(GUI 是图形化用户界面的简称)

一般来说,一个完整的 Linux 操作系统是不需要 GUI 的。如果我们是想将电脑变成一个 Linux 服务器,安装教程可以到此为止,但是对于我们普通的 Linux 桌面用户,则需要安装相应的图形化界面。

Linux 下的图形化界面可以不严谨地分为窗口管理器(Windows Manager,简称 WM)和桌面环境(Desktop Environment,简称 DE)。虽然有话说“窗口管理器是所有 Linux 用户的终点”,但是对于新手来说,桌面环境要更为友好一点。

桌面环境可以不严谨地分为由 X11 驱动和由 Wayland 驱动。

  • X11 通常简称为 X,属于 X.Org 项目,也可以粗略地称为 Xorg。Xorg 属于图形化应用程序必备条件,属于无论如何都需要安装的软件包组,是所有桌面环境的依赖(dependence)。几乎所有的桌面环境都支持 X11(之所以说几乎所有而不是全部,是因为我也不知道有没有不支持的…)。X11 的缺点是太过古老、代码的历史残留太多,对高分辨率屏幕(简称 HiDPI,通常指分辨率在 1920x1080 以上的屏幕)支持不佳。

  • Wayland 是一个用于混成窗口管理器与其客户端对话的协议,也是实现该协议的一个库。Wayland 的显著优点是对 HiDPI 的支持较好,但是目前还并未普及,因此目前表现的稳定性和兼容性较差,游戏性能感人。Xwayland 提供了一个兼容层在 Wayland 上运行 X11 软件。目前绝大多数桌面环境不支持 Wayland 或者使用效果不佳。

如果你电脑不属于 HiDPI,这里建议先使用 X11 而不是 Wayland。如果你的电脑属于 HiDPI,这里建议先尝试在 X11 完成 HiDPI 配置,如果配置效果不佳或者不愿动手完成复杂的配置,再尝试 Wayland。

郑重申明,我不是歧视 Wayland。虽然说 Wayland 很可能是未来 Linux 桌面环境的主流,但是 Wayland 的目前的表现确实有点感人。且不论支持 Wayland 的桌面环境已经是少之又少,在支持 Wayland 的桌面环境中,除了少数桌面环境下表现尚可,其他的桌面环境下表现几乎不能满足日常桌面环境使用的需求。如果哪天 Wayland 已经完全稳定可用请到我的坟前通知我。

(以上发言来自一名 Wayland 受害者)

这里插几句题外话。

你可能在某些地方看到一些 Linux 狂热粉/半吊子 狂吹 “Linux bug 数量少”、“稳定性吊打 Windows 和 macOS”、“安全性高”之类的鬼话发言。虽然我的观点一直是“系统的稳定性和安全性取决于用户”,但可以肯定的是,Linux 的安全性和稳定性确实很高,但是前提是没有安装 GUI 环境。。。。

虽然较之前几年,Linux 的 GUI 环境尤其是桌面环境有了长足发展,从开始“能看个视频就不错”到现在“甚至还能玩游戏”,但是平心而论当前综合体验相较 Windows 和 macOS 来说,功能属于基本能用,bug 数量相较 Windows 和 macOS 堪称各有千秋。Linux 有很多桌面环境可以自由选择,但是几乎每一款都很坑。如果你没有感受到桌面的 bug 的话,只能说明你没发现(所以很多 Linux 用户都去玩窗口管理器了。。。

咳咳,言归正传。上面已经说到,Linux 的桌面是独立于系统本身的,也就是说,系统的启动和桌面的启动是完完全全的两码事。如果你不想每次启动系统后都要在黑乎乎的终端手动启动桌面的话,可以借助显示管理器(Display Manager,简称 DM,有些地方叫做登录管理器)。显示管理器同样也有很多个,可以和不同的桌面环境交叉使用。

没错,显示管理器和桌面环境也是分开的。虽然这看起来让人感觉有点凌乱,但是这不恰恰说明 Linux 的高度自由性吗?(雾)

Arch Linux 可选择的桌面环境很多,这里只介绍相对主流和热门的两个桌面环境,显示管理器会附带介绍。请千万不要同时安装两个及以上的桌面环境,虽然确实可以同时安装多个桌面环境然后开机时切换自己想要的桌面环境,但是多个桌面环境的软件包和配置文件是共存于你的系统中的,而不同桌面的软件包和配置文件又往往有兼容性问题。说简单点,如果不知道怎么操作又盲目地安装多个桌面环境,你可能怎么死的都不知道 电脑容易出现一些奇怪的问题。也正因如此,如果你想更换桌面环境,请务必将前一个桌面环境卸载干净再安装新的桌面环境。

不过在安装桌面环境之前,我们需要先安装 Xorg。输入如下命令安装 Xorg 软件包组。

pacman -S xorg

安装过程中,系统会询问你安装其中哪些软件包。如无其他需求或考虑,直接回车即可。

KDE

KDE 被誉为“最像 Windows 的 Linux 桌面”(雾)。基于 Qt 的 KDE 拥有超高的可自定义性、华丽的系统特效、完善的系统功能、人类友好的交互逻辑,以及你熟悉的开始菜单(

虽然 KDE 默认的样式有点一言难尽,但是 KDE 的高度可自定义性让 KDE 可以变得极其华丽甚至长得和 Windows 或 macOS 接近一模一样。不夸张地说,KDE 几乎可以在外观上做到变成用户想要的任何样子,这一点可以参考 KDE 的美化教程的数量(虽然和 KDE 默认长得太丑也有一点关系)。

除桌面本身以外,KDE 软件如 Kate 这样的编辑器也是非常简单好用(你之后体会到的),自带的系统组件可以满足大多数日常桌面需求。

由于以上诸多优点,KDE 被认为是最适合新手并且也是最适合人类的 Linux 桌面环境,Arch Linux + KDE 很多时候被认为是一种标配。

配合 KDE-Plasma 使用的最佳选择是 SDDM 显示管理器, KDE 和 Arch Wiki 都推荐使用此组合。

输入如下命令安装 SDDM 和 KDE Plasma 桌面和某些 KDE 基础组件:

pacman -S plasma sddm konsole dolphin ark gwenview

你也可以直接输入下面的命令安装 SDDM 和 KDE 全家桶:

pacman -S plasma sddm kde-applications

KDE 全家桶内包含了许多小游戏和某些意义不明的软件,适合 KDE 信仰用户。

目前为止,KDE 默认使用的是 X11,Wayland 支持尚不完善。如果你想使用 Wayland,则需要安装 plasma-wayland,然后在 SDDM 登录时选择 Wayland 版本 Plasma。

输入如下命令安装 plasma-wayland:

pacman -S plasma-wayland

如果你使用 Nvida 显卡,则需要额外安装 egl-wayland:

pacman -S egl-wayland

输入如下命令设置 SDDM 开机自启:

systemctl enable sddm

输入完命令后,下次开机会直接进入图形界面,而非命令行界面。

GNOME

GNOME 被誉为“超像 macOS 的 Linux 桌面”(不是最像,因为某些桌面比它还像,令人叹为观止)。GNOME 基于 GTK,是 GNU 项目的一部分,虽然前段时间由于某些开源社区的冲突,GNOME 官方公开声明表示自己不属于 GNU,但是这不改变它最初的性质。因为 GNU 协议,GNOME 是 Ubuntu 等一众 Linux 桌面发行版的默认桌面。

GNOME 遵循 Material Degisn 设计语言,界面圆润清新,动画优雅舒适,自带功能较少但是扩展插件极多且功能丰富,可自定义性较强,有着先进但是不怎么人类友好的交互逻辑。

GNOME 默认样式除了图标以外都属于尚可,GTK 的特效和样式丰富的主题让 GNOME 随便配置一下就可以做到简约与美观并存(当然,你可以配置得非常华丽)。

GNOME 40 正式砍掉了侧边 Dash 栏并将其移动到桌面切换界面的底端,重新定义了 GUI 桌面的操作逻辑,极大地提高了桌面的使用效率。虽然目前骂声一片,但是真金不怕火炼,GNOME 40 一定会在未来彰显它对推动人类进步做出的巨大贡献。

因为 GNOME 功能高度依赖扩展,而扩展又大多是非官方人员开发又往往直接作用于系统,所以可能存在各种兼容性问题,也是“GNOME=bug”这个说法的来源之一。虽然这些兼容性问题一定程度也确实不能怪官方开发人员,但是从用户的体验上考虑,这些问题也确实属于 GNOME 现在存在的问题。

GNOME 自带软件实用性较差,如果有需求的话,可以使用 KDE 软件作为补充。

值得一提的是,截止目前,我本人使用的桌面环境还是 GNOME,所以请各位友军放下刀,我真的不是 GNOME 黑

GNOME 有配套的显示管理器 GDM。输入如下命令安装 GNOME 和 GDM。

pacman -S gnome gdm

如果想要 GNOME 全家桶的话,可以安装 gnome-extras 软件包组

pacman -S gnome-extras

GNOME 默认使用 Wayland 且表现基本满足日常使用需求(我没有开玩笑),但是如果你使用 Wayland 出现问题,可以通过在 GDM 禁用 Wayland 以更换为 X11。

我们需要编辑 /etc/gdm/custom.conf 以禁用 Wayland。输入如下命令打开该文件。

nano /etc/gdm/custom.conf

在文件中找到以下行:

#WaylandEnable=false

去除该行开头的 # 注释,然后 Ctrl+X 再输入 y 保存退出。

重启后下次登录将默认禁用 Wayland。

输入如下命令设置 GDM 开机自启:

systemctl enable gdm

输入完命令后,下次开机会直接进入图形界面,而非命令行界面。

对系统进行本地化

安装中文字体

可选的字体含以下几种:

  • Google Noto Fonts 系列 noto-fonts noto-fonts-cjk noto-fonts-emoji
  • 思源黑体 adobe-source-han-sans-otc-fonts
  • 文泉驿 wqy-microhei wqy-zenhei

以文泉驿为例,输入如下命令安装文泉驿米黑字体:

pacman -S wqy-microhei

这里建议全部安装以避免字体缺失导致的显示异常。

  1. 设置中文区域

    输入如下命令新建 .xprofile 文件: nano ~/.xprofile 如果已有此文件,也可以输入如上命令打开此文件 在文件中添加以下内容:

export LANG=zh_CN.UTF-8

export LANGUAGE=zh_CN:en_US

export LC_CTYPE=en_US.UTF-8

同时按住Ctrl + X,然后保存退出。

如果你是一步步按照本教程操作,则你此时是在 root 用户目录创建了 .xprofile 文件。因此,此时 .xprofile 只会影响 root 用户。 输入如下命令,将该文件复制到你创建的普通用户目录下:

cp ~/.xprofile /home/你的用户名

此时,你创建的普通用户区域也配置完成。

Arch Linux 已成功安装在你的电脑上!

至此,Arch Linux 已经算是安装完成了。但是对于日常桌面用户,我们还有一些东西没有配置,而这些配置能优化我们的桌面体验。以及,你是否还记得 Windows 的引导还没生成呢(

我们先输入如下命令启用 NetworkManager(注意大小写)。

systemctl enable NetworkManager

NetworkManager 是一个方便好用的网络管理小组件,大部分桌面环境都内置了该软件。如果你当前使用的桌面环境没有内置该软件,则输入以下命令安装并启用。

pacman -S networkmanager
systemctl enable NetworkManager

做完这些,我们先重启到你的桌面环境完成后续步骤。重启到桌面环境的好处是,你可以直接使用鼠标复制我后续的命令。

如果你是按照我的教程一步一步来的,你现在应该还没有安装浏览器。这里推荐先安装 Firefox 浏览器(Chrome、Edge 之类的由于打包协议不在官方软件仓库中,无法在 Pacman 直接安装,后续会介绍如何安装 Chrome 和 Edge)。

输入如下命令安装 Firefox:

pacman -S firefox

先输入 exit 退出 chroot,然后输入reboot重启,在屏幕完全黑下来的时候拔掉你的 U 盘。

启动成功后,登录你的普通用户即可。

安装完成后的一些基本配置和某些问题的解决

首先在系统设置连接网络(直接插网线的就不需要什么额外操作了)。

接着找到你桌面环境的虚拟终端(Terminal,KDE 自带的叫做 Konsole,GNOME 自带的叫做 gnome-terminal)。后续命令在这个虚拟终端输入就行。

安装中文输入法

安装 fcitx 输入法模块:

sudo pacman -S fcitx-im fcitx5-chinese-addons 

配置输入法的环境变量,输入如下命令编辑 /etc/environment

sudo nano /etc/environment

在文件中添加以下内容:

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx

  修改完成后,保存退出。

重启电脑后在 fcitx 设置即可选择中文输入法。你也可以根据自己的需求安装其他输入法,如搜狗输入法。

添加 Arch Linux CN 源

输入如下命令编辑 pacman.conf 文件:

sudo nano /etc/pacman.conf

在该文件末尾添加以下内容

[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

接着输入如下命令刷新源:

sudo pacman -Syy

然后安装密匙:

sudo pacman -S archlinuxcn-keyring

若密匙安装出错,则依次输入以下命令解决:

sudo pacman -Syu haveged
systemctl start haveged
systemctl enable haveged
rm -rf /etc/pacman.d/gnupg
sudo pacman-key --init
sudo pacman-key --populate archlinux
sudo pacman-key --populate archlinuxcn
sudo pacman -S archlinuxcn-keyring

Arch Linux 中文社区仓库是由 Arch Linux 中文社区驱动的非官方软件仓库,包含许多官方仓库未提供的额外的软件包,以及已有软件的 git 版本等变种。一部分软件包的打包脚本来源于 AUR,但也有许多包与 AUR 不一样。 详情见 Arch 中文社区

安装 yay(没错,就这名字)

yay 是目前比较好用的 AUR 助手之一,可以方便快捷地帮助你完成 AUR 软件的安装。 archlinuxcn 中已经包含 yay,可以输入如下命令直接安装 yay:

sudo pacman -S yay

yay 使用上与 Pacman 大致一致。 应避免以 root 权限运行 yay,即避免sudo yay这样的命令。 你也可以选择其他的 AUR 助手。

有了 yay,我们可以直接输入命令安装 AUR 的软件,比如,我们可以输入如下命令安装 Chrome。

yay -S google-chrome

解决 Windows 加密问题

如果你是双系统安装,则输入以下命令安装 dislocker 。

yay -S dislocker

然后输入如下命令再次生成配置文件:

sudo grub-mkconfig -o /boot/grub/grub.cfg

如果一切正常,现在输出结果中应该含有Windows字样 如果没有的话,我也不知道怎么办了

禁用 reflector

如果你还有印象的话,在安装过程中我们曾使用 reflector 更换替换国内镜像源。之所以使用 reflector 而不是直接修改镜像源列表不是因为这个东东多好用,而是这玩意它会未经你同意自动帮你替换镜像源列表,与其辛辛苦苦敲了半天网址结果被它自动换掉了,还不如直接就先用它替换国内镜像源。在日常使用中,我推荐禁用 reflector(默认应该是禁用状态,如果你喜欢也可以启用,不过它的国内体验非常感人…)。

输入如下命令禁用并停止 reflector:

sudo systemctl disable --now reflector.service

输入如下命令启用并启动 reflector:

sudo systemctl enable --now reflector.service

你还可以选择安装 zsh 和 Yakuake,这里不再介绍。

安装教程至此可以说已经正式结束。Arch Linux 的配置当然不止于此(显卡驱动之类的还没配置呢),还有许多玩法等待你发现,但是这些内容放在安装教程中肯定不太合适。我后续应该会写一篇专门的优化教程,但是肯定不会像这篇教程一样详细了(实在太累了…)。

相关内容补充

Pacman 常用命令:

  • 核心命令

    sudo pacman -Syu :进行全面系统更新(即通俗意义的“滚”)

    sudo pacman -Sy: 刷新本地镜像源

    sudo pacman -Syy : 强制刷新本地镜像源

  • 安装软件

    sudo pacman -S packagename : 安装指定软件

    sudo pacman -Sy packagename : 刷新数据库后安装指定软件

    sudo pacman -Sv packagename : 显示一些操作信息后安装指定软件

    sudo pacman -U pkg.tar.xz :安装本地包

    sudo pacman -U link.tar.xz :安装远程包

  • 删除软件

    sudo pacman -R packagename :删除指定软件,保留其全部已经安装的依赖关系

    sudo pacman -Rs packagename :删除指定软件,并删除仅与该软件存在依赖关系的其他软件

    sudo pacman -Rsc packagename :删除指定软件,并删除所有与该软件存在依赖关系的其他软件

    sudo pacman -Rd packagename :删除指定软件,不检查依赖

  • 搜索软件

    sudo pacman -Ss keyword:在仓库中搜索含关键字的软件

    sudo pacman -Qs keyword:在已安装软件中搜索含关键词的软件

    sudo pacman -Qi packagename:搜索指定软件的详细信息

    sudo pacman -Ql packagename:列出指定软件的文件

  • 其他命令

    sudo pacman -Sw packagename:只下载指定软件而不安装

    sudo pacman -Sc :清理未安装的软件包

    sudo pacman -Scc :清理所有的缓存文件

Arch 相关链接

  • Arch Wiki:Link (推荐所有用户没事就多看看 Arch Wiki,遇到问题先看看 Arch Wiki 有没有解决方案。)

  • Arch 官方软件仓库:Link

  • Arch Linux CN 软件仓库:Link

  • AUR:Link

Built with Hugo
主题 StackJimmy 设计