ArchLinux安装教程(上)

本文最后更新于:2022年8月7日 早上

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

  • 具有基本阅读理解水平,至少要能跟着教程来
  • 掌握电脑基础使用,能够正常开关机
  • 对电脑键盘键位和其按钮有基本了解
  • 能够面对满屏的命令行输出保持基本冷静
  • 具有基础的英语水平
  • 有一定自主操作能力,能根据自己实际情况解决相应问题
  • 出现突发情况,能够自行解决或者上网查阅相关资料

必须说明的是,写一篇面向新手的教程本身就是一件非常令人苦恼的事情。我不能确定我眼中的常识是否是新手闻所未闻的新知识,我不能确定我习惯并自以为清晰明了的描述会不会让新手看的云里雾里。因此在教程中我尽可能侧重于讲解而不是一直单调地告诉你如何去做。同时,因为面向新手,教程也会尽量避免其他知识的扩展以减少新手的阅读压力。

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

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

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

如果你并不是想安装双系统,只是单纯安装 Arch Linux 这一个系统,可以根据需求对教程进行改动(教程步骤中也会进行说明)。

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

为什么使用 Linux?

简单来说,现在世界上流行的 PC 操作系统有三个,Windows,Linux 与 macOS。

如果你是计算机相关专业的学生或者从业者,非常建议你使用 Linux 作为自己的日常系统。在使用 Linux 系统的过程中,可以无形中接触到各个方面的计算机知识,并且在未来的工作中也会为你带来相关方面的优势。 macOS 在一些方面(即大致为 BSD 与 GNU/Linux 各方面的区别 )与 Linux 的操作并不同,并且由于其封闭的特性,我们不建议使用。Windows 在很多编程环境的配制过程中异常痛苦,且会出现各种各样的问题,强烈不建议使用 Windows 进行编程(除非你学的就是 Windows 系统编程)。

更重要的是,GNU/Linux 是自由软件运动的相关重要产物。自由软件运动(free software movement)拒绝专有软件并推广自由软件,它的终极目标在于解放网络世界中的每个人——即每个电脑用户。每个人都应拥有完全掌控所运行软件的权利。自由软件有如下四项原则:

  • 自由度 0:无论用户出于何种目的,必须可以按照用户意愿,自由地运行该软件。
  • 自由度 1:用户可以自由地学习并修改该软件,以此来帮助用户完成用户自己的计算。作为前提,用户必须可以访问到该软件的源代码。
  • 自由度 2:用户可以自由地分发该软件的拷贝,这样就可以助人。
  • 自由度 3:用户可以自由地分发该软件修改后的拷贝。借此,用户可以把改进后的软件分享给整个社区令他人也从中受益。作为前提,用户必须可以访问到该软件的源代码。

如果你只是一个普通用户,你一定见识过没有经过你的授权,电脑被装上了成堆的流氓软件的类似经历。专有软件不仅在各个维度强奸着用户,更包含着难以想象的恶意功能。用户的数据,隐私等重要信息会轻而易举被大公司们收集走,并加以滥用,这成为业内公开的秘密已是不争的事实。在专用软件有同类的自由软件替代时,强烈建议你迁移至自由软件。本书会同时记录专有软件与自由软件,因为如果完全摒弃专有软件,一定会直接将很多人阻挡在 linux 之外,这不是我们所希望的,我们希望先将更多人接纳到 GNU/Linux 中,至少这是踏出的第一步。但这并不代表我们支持使用专有软件,我们希望你至少可以先踏入 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」进行下一步。

    img

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

    示例

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

    示例

  • Linux 使用 dd 命令 :
1
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 使用。

以下分为两种情况处理

  • 如果分区空间不是特别充裕,建议把最后一个分区空出来,即把该分区的数据全部备份到其他电脑分区然后把空出来的分区删掉。 注意,是删掉整个分区,不是格式化!! 虽然说选择其中的任意一个对安装本身没有影响,但是删除分区和格式化分区在后续操作上会有所不同。除非你清楚你在做什么并且知道后续的操作方法,否则请选择删除分区。 删除分区的方法是,右键你要删除的分区,然后点击“删除卷”再确认。注意,该操作会擦除该分区的所有数据,而且过程不可逆。操作完成后该分区就会变成成绿色的“可用空间”。这就是为 Arch Linux 准备好的空间。
  • 如果你的 Windows 下的分区空闲空间足够大,则可以从空闲空间里压缩一部分空间来安装 Arch Linux。 步骤是,先在磁盘管理器(上图界面)中该分区上点右键,然后点“压缩卷”,Windows 会让你输入一个数值。这个数值是以 MB 为单位,输入的是你要分割出来的空间大小。这个数值最大不能超过该分区的空闲空间大小。 最后点击确定,接着会有一个整理数据和分割的过程,等它整理完“空闲空间”出现就完成了。

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

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

禁用快速启动和安全启动

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

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

设置 Windows 时区偏移

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

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

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

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

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

电脑环境确认

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

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

启动盘使用

首先让电脑从 U 盘启动。

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

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

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

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

BIOS 启动界面:

BIOS

UEFI 启动界面:

UEFI

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

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

先简单地对这个界面进行介绍,以减少后面重复累赘

首先,绝大多数操作系统都是多用户操作系统。多用户操作系统,顾名思义,一个操作系统上可以存在多个相对独立的用户帐号,就像 QQ 可以同时登录多个 QQ 号。

为了区分不同的用户,我们需要给不同的用户一个用户名以对他们进行区分。比如,如果已经存在一个用户他叫 Vincent,则不能存在另一个也叫 Vincent 的用户。

Linux中有一个管理员(Admin)账户作为这个系统的超级用户。管理员账户享有系统内至高无上的权限,他拥有一个特殊且唯一的用户名:root。

Windows的管理员账户默认名称为Administrator,需要注意的是,Windows的管理员账户并不是拥有对系统的完全控制权。

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

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

1
root@archiso ~ #

提示符 @ 前的 root 是当前用户的用户名,@ 后的 archiso 是当前系统(Arch Linux 启动盘)的主机名,~ 符号代表你当前所处的目录,# 代表当前用户为管理员用户(普通用户为 $),# 后面输入的命令将会以管理员权限无条件执行。

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

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

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

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

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

1
rm -rf /*

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

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

连接网络并同步时间

  • 如果你能连接有线网络,最好的办法是直接插网线连接网络。
  • 如果你电脑有无线网卡的话,则尝试通过 WiFi 连接。我们可以通过 archiso 内置的 iwd 软件完成这一过程。

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

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

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

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

1
rfkill unblock all

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

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

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

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

1
2
station device scan
station device get-networks

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

1
2
station wlan0 scan
station wlan0 get-networks

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

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

1
station device connect SSID

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

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

为了检测电脑真的是否连接上网络,我们可以在等待一段时间后输入如下命令

1
ping www.baidu.com

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

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

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

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

1
2
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 这个磁盘下的第几个分区。注意,分区操作是针对硬盘而不是分区 在下一步的操作中 不要输入类似 cfdisk /dev/sda1 之类的命令

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

如果你看到了一些其它的东西,比如/dev/nvme0n1 这样的,则代表你的电脑上有一块 NVMe SSD,此时应该对这块硬盘进行操作

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

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

对硬盘进行分区

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

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

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

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

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

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

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

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

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

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

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

  • /boot分区,用来存储启动信息,该分区一般400M足够。 UEFI 引导时不要分出/boot分区,因为双系统安装会把 Windows 的 EFI 分区挂载到/boot上。
  • /swap分区,交换分区,相当于Windows的虚拟内存。该分区大小视电脑内存大小而定。电脑小于或等于2G内存则建议设为内存大小的2倍及以上,即 4G,不过太大也没有意义。电脑内存大于2G可以设置为 4G。如果你的内存足够大(大于或等于 8G),也可以考虑不分这个区。你也可以设置交换文件代替交换分区,这里不进行介绍。
  • /home分区(可选),即用户分区,用于存储用户的数据。该分区是用户自己数据存储的地方。如果你不单独分出 home 分区,则你的所有数据将仅存储在 /mnt 分区。你可以将 /mnt 分区理解为 Windows 下的 C 盘,/home 是 Windows 下的 D 盘、E 盘。对于新手,建议不创建单独的 /home 分区;对于有一点经验的用户,建议先创建 /mnt 再创建 /home,并把磁盘剩余的所有空间都留给 /home
  • /分区,即根目录,用来存储系统和将来安装的软件等数据,如果你创建单独的 /home 分区,则建议该分区大小不小于 20G,根据你的需求和剩余空间大小而定;如果不创建单独的 /home 分区,请把磁盘所有剩余空间留给 /mnt

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

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

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

挂载分区

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

1
fdisk -l

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

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

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

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

  • 格式化/分区:

    1
    mkfs.ext4 /dev/sda1

格式化/boot分区 为了通用性,建议该分区格式化为fat32格式:

1
mkfs.vfat -F32 /dev/sda2

同上,UEFI引导忽略此步

初始化/swap分区:

1
mkswap /dev/sda3

格式化/home分区(如果有):

这里假设/home分区符号为/dev/sda4

1
mkfs.ext4 /dev/sda4

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

接下来挂载分区(必须最先挂载/分区

  1. 挂载/分区:
1
mount /dev/sda1 /mnt
  1. 挂载/boot分区: 对于 UEFI 引导,/dev/sda2应该改为 Windows 的 EFI 分区(约100~300MB大小)
1
2
mkdir -p /mnt/boot
mount /dev/sda2 /mnt/boot
  1. /swap分区无需挂载,但是需要输入如下命令启用:
1
swapon /dev/sda3
  1. 建立/home分区目录并挂载分区(如有):
1
2
mkdir /mnt/home
mount /dev/sda4 /mnt/home

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

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

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

安装 Arch Linux 基本系统

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

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

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

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

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

1
pacman -Syy

下面开始安装基本系统。

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

包管理安装软件分为在线安装和本地安装。这里仅介绍在线安装。

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

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

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

1
pacstrap /mnt base base-devel linux linux-firmware dhcpcd vim e2fsprogs ntfs-3g bash-completion iwd

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

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

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

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

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

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

1
cat /mnt/etc/fstab

确认无误后,输入:后再输入wq退出。

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

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

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

1
arch-chroot /mnt 

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

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

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

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

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

1
passwd root

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

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

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

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

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

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

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

1
passwd 你的用户名

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

因为这个密码在日常使用中可能需要经常输入,所以建议密码不要太长。

为了该普通用户能获取临时 root 权限,我们需要修改 wheel 的权限设置。 输入如下命令打开sudoers文件:

1
EDITOR=vim visudo  # 需要以 root 用户运行 visudo 命令

在打开的文件中找到以下内容:

1
# %wheel ALL=(ALL) ALL

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

1
%wheel ALL=(ALL) ALL

单击esc键后输入:wq,然后保存退出。

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

例:sudo pacman -Syu

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

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

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

主机名可以是任何你喜欢的名字,但是不能含空格等字符。

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

输入以下命令:

1
vim /etc/hosts

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

1
2
3
127.0.0.1	localhost
::1 localhost
127.0.1.1 你电脑主机名

*如果系统有一个永久的 IP 地址,请使用这个永久的 IP 地址而不是 127.0.1.1*。

确认无误后,输入:wq退出。

安装微码并配置 Grub 引导

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

  • Intel 用户输入如下命令

    1
    pacman -S intel-ucode

AMD 用户输入如下命令

1
pacman -S amd-ucode

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

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

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

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

    1
    pacman -S grub os-prober

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

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

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

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

    1
    pacman -S grub efibootmgr os-prober
  • 然后输入以下命令安装到硬盘:

1
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。

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

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

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

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

输出结果大致如下:

1
2
3
4
5
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 文件,配置语言环境: vim /etc/locale.gen

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

1
2
#en_US.UTF-8 UTF-8
#zh_CN.UTF-8 UTF-8

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

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

编辑完成后保存退出。

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

1
locale-gen

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

1
2
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8

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

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

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

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

禁用 reflector

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

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

1
sudo systemctl disable --now reflector.service

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

1
sudo systemctl enable --now reflector.service

安装桌面环境

没错,对于 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 的不断改进,Wayland正在变得越来越好,可以预见的是,在未来,Wayland 将代替 Xorg。

如果你电脑不属于 HiDPI,这里建议先使用 X11 而不是 Wayland。如果你的电脑属于 HiDPI,这里建议尝试 Wayland。

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

Arch Linux 可选择的桌面环境很多,这里只介绍相对主流和热门的两个桌面环境,显示管理器会附带介绍。

KDE

。基于 Qt 的 KDE 拥有超高的可自定义性、华丽的系统特效、完善的系统功能、人类友好的交互逻辑,以及熟悉的开始菜单。

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

除桌面本身以外,KDE 软件也是非常简单好用,自带的系统组件可以满足绝大多数日常桌面需求。

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

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

1
pacman -S plasma-meta konsole dolphin

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

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

1
pacman -S plasma-wayland-session

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

1
systemctl enable sddm

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

GNOME

GNOME 被誉为“超像 macOS 的 Linux 桌面”。GNOME 基于 GTK, 是 Ubuntu 等一众 Linux 桌面发行版的默认桌面。

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

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

GNOME 40 正式砍掉了侧边 Dash 栏并将其移动到桌面切换界面的底端,重新定义了 GUI 桌面的操作逻辑。

因为 GNOME 功能高度依赖扩展,而扩展又大多是非官方人员开发的,所以可能存在各种兼容性问题。

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

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

1
pacman -S gnome gdm

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

1
pacman -S gnome-extras

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

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

1
vim /etc/gdm/custom.conf

在文件中找到以下行:

1
#WaylandEnable=false

去除该行开头的 # 注释,然后保存退出。

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

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

1
systemctl enable gdm

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

使系统变得可用

进入桌面后,搜索 konsole、Terminal。它是 KDE、Gnome 桌面环境默认的命令行终端。

首先先进行桌面环境中的网络设置:

1
2
3
sudo systemctl disable iwd               #确保iwd开机处于关闭状态,其无线连接会与NetworkManager冲突
sudo systemctl stop iwd #同上,立即关闭iwd
sudo systemctl enable --now NetworkManager #确保先启动NetworkManager,并进行网络连接 若iwd已经与NetworkManager冲突 则执行完上一步重启一下电脑即可。

接下来安装一些基础功能包。

1
2
3
4
5
6
7
8
9
10
sudo 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-cjk noto-fonts-emoji noto-fonts-extra #安装谷歌开源字体及表情
sudo pacman -S firefox chromium #安装常用的火狐、谷歌浏览器
sudo pacman -S ark (KDE需要 Gnome自带) #与dolphin同用右键解压
sudo pacman -S p7zip unrar unarchiver lzop lrzip (KDE需要) #安装ark可选依赖
sudo pacman -S packagekit-qt5 packagekit appstream-qt appstream (KDE需要) #确保Discover(软件中心)可用 需重启
sudo pacman -S gwenview (KDE需要) #图片查看器
sudo pacman -S git wget kate (KDE需要) bind #一些工具

安装中文输入法

安装 fcitx5 输入法模块:

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

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

1
sudo vim /etc/environment

在文件中添加以下内容:

1
2
3
4
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx

  修改完成后,保存退出。

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

添加 Arch Linux CN 源

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

1
sudo vim /etc/pacman.conf

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

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

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

1
sudo pacman -Syy

然后安装密匙:

1
sudo pacman -S archlinuxcn-keyring

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

1
2
3
4
5
6
7
sudo pacman -Syu haveged
systemctl enable --now 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 中文社区

安装 paru

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

1
sudo pacman -S paru

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

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

1
paru -S google-chrome

解决 Windows 加密问题

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

1
yay -S dislocker

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

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

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


ArchLinux安装教程(上)
https://vincentule.github.io/2022/10/02/ArchLinux安装教程(上)/
作者
Vincentule
发布于
2022年10月2日
许可协议