ArchLinux + GNOME 安装教程

前言

本安装教程是根据 ArchWiki—安装指南 Archlinux安装与美化全流程 以及笔者多次试验总结而成。如有遗漏或者错误请多指正。

一.准备工作

1.1 写入软件

当前市面上有许多U盘烧录工具,如Rufus、USBWriter、Ventoy等。笔者在这里强烈建议使用 Ventoy ,它是由国人制作的一款完全免费的开源工具,可以非常简单地部署启动镜像。在此贴上链接:Ventoy官网

1.2 镜像文件

当今网络非常发达,想要获取资源也有多个途径。简单给出镜像获取的两种途径:

  1. Arch Linux 官方网站下载 ISO 文件:Arch Linux Downloads

  2. 国内镜像仓库下载系统 ISO 文件:清华源阿里云源

由于 Arch Linux 系统采用的是滚动更新模式,因此在安装系统时更推荐选取最新的系统镜像。

1.3 镜像烧录

笔者使用 Ventoy 软件进行烧录。具体步骤如下:

  1. 在 Windows 系统环境下打开 Ventoy 软件,将分区类型选择为 GPT 格式
选择GPT分区格式
  1. 将 Ventoy 软件安装到 U 盘中
安装Ventoy驱动到U盘
  1. 根据下图可以看到安装 Ventoy 到 U 盘中后界面显示设备内部 Ventoy 软件版本
Ventoy安装后
  1. 安装了 Ventoy ,以后想部署任何系统可直接将对应的 ISO 镜像拷贝到 U 盘中即可,然后开机选择对应镜像即可进入。

二.安装系统

将写入系统镜像的U盘插到待安装系统的电脑上,开机选择U盘启动项即可开始安装。

不少主板有类似于 Secure Boot 的安全选项,如果开启可能导致已经安装 Windows 为第一系统的情况下安装 Linux系统失败,因此这一项应当 Disable 掉。

2.1 检查 UEFI 启动

首先应当明确一点就是,此主板是支持 BIOS 启动还是 UEFI 启动。因此可以通过如下命令查看详情:

1
ls /sys/firmware/efi/efivars

如果此命令显示一大堆文件夹,那么此主板的引导方式就是 UEFI ,否则便是 BIOS 。

2.2 联网

由于 Arch Linux 的安装是在线安装模式,网络状况将直接决定安装是否顺利。因此在正式安装前应当配置好网络。

2.2.1 启用网卡

如果不确定网卡是否启用,可以通过 rfkill 命令查看网卡状态

1
2
3
4
# 获取网卡列表及各网卡的状态
rfkill list
# 启用所有网卡
rfkill unblock all

2.2.2 有线网络

针对有线网络。可以直接使用 dhcpcd 命令获取路由器分配的 IP 上网。

2.2.3 无线网络

无线网络的配置稍显麻烦一点,可通过 iwctl 命令配置

1
2
3
4
5
6
7
8
9
10
# 进入配置界面
iwctl
# 获取网络设备列表
device list
# 扫描网络设备
station <device_name> scan # 如 wlan0
# 获取局域网 WiFi 列表
station <device_name> get-networks
# 将对应网络设备连接到指定 WiFi
station <device_name> connect <WiFi Name>

2.2.4 验证网络连通性

1
ping baidu.com

如果收到网络 icmp 回包则网络配置正确。

2.3 时间同步

在正式安装之前也应当配置时间同步,否则可能由于时间验证失败而导致下载安装包失败。

1
2
3
4
# 查看时间日期状态
timedatectl status
# 启用网络时间同步(NTP )
timedatectl set-ntp true

2.4 更换镜像源

由于国内访问国外网站可能会很慢或者失败的情况,因此更换国内镜像源显得尤为重要。可通过更改 /etc/pacman.d/mirrorlist 配置文件换源。

  1. 打开配置文件
1
2
# 打开镜像配置文件
nano /etc/pacman.d/mirrorlist
  1. 找到第一个 Server 关键字,并在前方添加需要的镜像站链接
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 添加开源镜像站链接
# 中国科学技术大学
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
# 重庆邮电大学
Server = https://mirrors.cqupt.edu.cn/archlinux/$repo/os/$arch
# 重庆大学
Server = https://mirrors.cqu.edu.cn/archlinux/$repo/os/$arch
# 南方科技大学
Server = https://mirrors.sustech.edu.cn/archlinux/$repo/os/$arch
# 华中科技大学
Server = https://mirrors.hust.edu.cn/archlinux/$repo/os/$arch
# 北京外国语大学
Server = https://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch

# 华为开源镜像站
Server = https://mirrors.huaweicloud.com/archlinux/$repo/os/$arch
#Server = https://repo.huaweicloud.com/archlinux/$repo/os/$arch
# 阿里云镜像站
Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch
  1. 执行如下命令更新同步数据库
1
pacman -Sy

2.5 硬盘分区

对硬盘进行分区是安装 Linux 系统最重要的一步,如有不注意可能导致该盘数据丢失,因此这一步需要格外小心谨慎地操作。可通过 Windows 系统上的 DiskGenius 软件划出一块空闲的硬盘空间,然后进入 Arch Linux 的 LiveCD 之后使用 cfdisk 命令分区完成,举例得到如下几个分区表:

大小 分区 分区类型 挂载点 备注
512M /dev/sdb1 EFI System /mnt/boot 引导分区
8G /dev/sdb4 Linux swap 交换分区
100G /dev/sdb5 Linux root (x86-64) /mnt 根分区
100G /dev/sdb6 Linux filesystem 或 Linux home /mnt/home 主目录

注:

  1. 交换分区无需分配挂载点,只需分区之后开启或者关闭即可

  2. 笔者有一个三星 SSD 硬盘以及一个西数的机械硬盘,因此会有两个编号:

    1. 三星 SSD 硬盘编号:/sda
    2. 西数 机械 硬盘编号:/sdb
  3. 有的 LiveCD 系统镜像没有 Linux home分区类型,则可以使用 Linux filesystem分区类型

  4. Legacy 引导方式无需创建 boot 分区,UEFI 引导方式则需要创建 boot 分区。

2.5.1 格式化分区

在使用之前应当要格式化分区

1
2
3
4
5
6
7
8
9
10
11
12
13
# ------------------------------------------------------------------------------ #
# 查看需要分区列表确定需要格式化的分区
lsblk -T
# ------------------------------------------------------------------------------ #
# 格式化引导分区
mkfs.fat -F 32 /dev/sdb1
# 格式化交换分区
mkswap /dev/sdb4
# 格式化根分区
mkfs.ext4 /dev/sdb5
# 格式化主目录分区
mkfs.ext4 /dev/sdb6
# ------------------------------------------------------------------------------ #

2.5.2 挂载分区

挂载分区的思路是先创建挂载点,然后将指定目录挂载

1
2
3
4
5
6
7
8
9
10
11
12
13
# ------------------------------------------------------------------------------ #
# 查看需要分区列表确定需要挂载的分区
lsblk -T
# ------------------------------------------------------------------------------ #
# 挂载引导分区
mount --mkdir /dev/sdb1 /mnt/boot
# 开启交换分区
swapon /dev/sdb4
# 挂载根分区
mount /dev/sdb5 /mnt
# 挂载主目录分区
mount --mkdir /dev/sdb6 /mnt/home
# ------------------------------------------------------------------------------ #

分区挂载完一定要查看是否挂载成功,否则后续装入系统可能会出现各种问题

2.6 安装基础系统

使用 pacstrap命令可以安装 Arch Linux 的基本系统

1
pacstrap -K /mnt base base-devel linux linux-firmware linux-headers

  • base 包:基础包

  • base-devel 包:如使用 yay 需要安装此包

  • linux 包:linux 内核包,尽量安装阶段不动,也可替换为 Wiki内核页面介绍的如 linux-lts 的其他内核软件包

  • linux-firmware 包:linux 内核固件包

  • linux-headers 包:linux 内核头文件包

PS: base base-devel linux linux-firmware 为最基础的四个包

2.7 安装系统常用软件

使用 pacstrap命令安装 Arch Linux 系统的常用软件

1
pacstrap -K /mnt networkmanager dhcpcd openssh iwd  vim nano neofetch sudo ntfs-3g

  • networkmanager 包:网络管理软件

  • dhcpcd 包:DHCP 协议 IP 分发客户端

  • openssh 包:远程终端登陆软件

  • iwd 包:提供了客户端程序 iwctl、守护程序 iwd 和 WiFi 监控工具 iwmon

  • vim、nano 包:编辑器

  • neofetch 包:查看系统信息软件

  • sudo 包:超级用户权限管理软件

  • ntfs-3g 包:提供 ntfs 文件系统的支持

2.8 生成文件系统表

通常情况下,UEFI 引导搭配的是 GPT 分区格式,而早前的 BIOS 引导则是搭配的 MBR 分区格式。因此,在生成文件系统表时会根据不同搭配使用不同命令。

1
2
3
4
5
6
7
8
9
10
# ------------------------------------------------------------------------------ #
# 生成文件系统表
# 1. UEFI + GPT
genfstab -U /mnt >> /mnt/etc/fstab
# 2. BIOS + MBR
genfstab -p /mnt >> /mnt/etc/fstab
# ------------------------------------------------------------------------------ #
# 查看文件系统表是否生成
cat /mnt/etc/fstab
# ------------------------------------------------------------------------------ #

在生成文件系统分区表后一定要查看是否生成,否则万一 boot 分区表没有写入 fstab 文件的话后续配置 Grub 可能会失败

三.配置系统

第二章节的操作保证了 Arch Linux 基本系统的安装,我们还需要进入新安装的系统内部进行一些更细致的配置。通过 arch-chroot 进入新系统:

1
arch-chroot /mnt

chroot 的意思就是 change root 的含义,arch-chroot 这条指令的意思就是将操作权从 LiveCD 的启动系统转交给新安装的系统,方便在新系统内部进行更多的配置。

3.1 开机自启服务

第二章第七节 安装了许多除系统基础软件包之外的额外软件包,而有的软件服务是需要开机自启的。下面的命令便是启动开机服务:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# ------------------------------------------------------------------------------ #
# systemctl 几个参数的含义
# 1. enable:设置开机自启,反之为 disable
# 2. start:设置本次启动,反之为 stop
# 3. status:查看服务状态
# ------------------------------------------------------------------------------ #
# 开启网络服务
systemctl enable NetworkManager.service
systemctl start NetworkManager.service
# ------------------------------------------------------------------------------ #
# 开启 dhcpcd 服务
systemctl enable dhcpcd.service
systemctl start dhcpcd.service
# ------------------------------------------------------------------------------ #
开启 ssh 服务
systemctl enable sshd.service
systemctl start sshd.service
# ------------------------------------------------------------------------------ #

3.2 设置时区

使用如下指令设置时区

1
2
3
ln -sf /usr/share/zoneinfo/Region地区名/City城市名 /etc/localtime
# 举例如下所示
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

然后使用 hwclock 命令生成 /etc/adjtime 同步时间配置文件

1
hwclock --systohc

3.3 本地化

完成本地化需要对两个文件进行处理: locale.gen 文件以及 locale.conf 文件

  1. 编辑 /etc/locale.gen 文件去掉两项内容注释:
1
2
# en_US.UTF-8 UTF-8
# zh_CN.UTF-8 UTF-8

然后使用 locale-gen 命令生成 Locale。

  1. 编辑 /etc/locale.conf 文件,更改为如下内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# ------------------------------------------------------------------------------ #
#LANG=en_US.UTF-8
LANG=zh_CN.UTF-8
# ------------------------------------------------------------------------------ #
LC_CTYPE=zh_CN.UTF-8 # 字符输入
LC_NUMERIC=zh_CN.UTF-8 # 数字
LC_TIME=zh_CN.UTF-8 # 时间显示格式
LC_COLLATE=zh_CN.UTF-8 # 比较和排序习惯
LC_MONETARY=zh_CN.UTF-8 # 货币单位
LC_MESSAGES=zh_CN.UTF-8 # 信息
LC_PAPER=zh_CN.UTF-8 # 默认纸张尺寸方式
LC_NAME=zh_CN.UTF-8 # 姓名书写方式
LC_ADDRESS=zh_CN.UTF-8 # 地址书写方式
LC_TELEPHONE=zh_CN.UTF-8 # 电话号码书写方式
LC_MEASUREMENT=zh_CN.UTF-8 # 度量衡表达方式
LC_IDENTIFICATION=zh_CN.UTF-8 # 对 locale 自身包含信息概述
# ------------------------------------------------------------------------------ #
# LC_ALL=zh_CN.UTF-8
# ------------------------------------------------------------------------------ #

LC_ALL、LC_* 和 LANG 优先级的关系:LC_ALL > LC_* > LANG

3.4 配置 hostname 和 hosts 文件

  1. 配置 hostname 文件

通过编辑 /etc/hostname 文件配置主机名,如果没有该文件则创建该文件。然后在该文件中按需写入主机名。

1
2
3
4
5
6
7
8
# ------------------------------------------------------------------------------ #
# 例如创建名为 ArchLinux 的主机
# 通过 vim 编辑器编辑 hostname 文件
vim /etc/hostname
# ------------------------------------------------------------------------------ #
# 写入主机名
ArchLinux
# ------------------------------------------------------------------------------ #
  1. 配置 hosts 文件

通过编辑 /etc/hosts 文件编辑 hosts,如果没有该文件则创建该文件。然后在该文件中写入如下内容:

1
2
3
4
5
6
7
8
9
10
11
# ------------------------------------------------------------------------------ #  
# 通过 vim 编辑器编辑 hosts 文件
vim /etc/hosts
# ------------------------------------------------------------------------------ #
# 写入如下内容
# Standard host addresses
127.0.0.1 localhost
::1 localhost
# This host address
127.0.1.1 ArchLinux.localdomain ArchLinux
# ------------------------------------------------------------------------------ #

3.5 新建用户

使用系统前端时,开机会有一个用户登陆界面,默认只有一个 root 用户,在使用 root 用户登陆之后可以添加一个新用户。

在新建用户并重启系统之前一定要更改 root 用户的密码,具体操作命令为:

1
2
># 使用该命令修改密码
>passwd root

然后需要重复输入密码,修改成功会有提示。

  1. 添加新用户的具体操作如下:
1
2
3
4
# 添加新用户
useradd -m -G wheel <username>
# 为新用户修改密码
passwd <username>

上述命令中各个参数的含义:

  1. -m :创建新用户的同时创建其对应的家目录
  2. -G :指定附加组(wheel 附加组可以进行 sudo 提权操作)
  3. <username> :新建用户名,注意区分大小写
  1. 修改 /etc/sudoer 配置文件

访问 /etc/sudoer 并取消 # %wheel ALL=(ALL) ALL 这一行注释。

%wheel 的百分号表示用户组前缀;第一个 ALL 表示任意主机名;第二个 ALL 表示任意用户名;第三个 ALL 表示可执行任意命令。

3.6 安装引导

3.6.1 平台驱动安装

针对 Intel 平台和 AMD 平台的 CPU 开机引导加载驱动程序会有所不同,因此要按需安装对应驱动程序:

1
2
3
4
5
6
7
8
9
10
# ------------------------------------------------------------------------------ #
# 查看本机 CPU 型号
cat /proc/cpuinfo
# ------------------------------------------------------------------------------ #
# 1. Intel CPU 安装
pacman -S intel-ucode

# 2. AMD CPU 安装
pacman -S amd-ucode
# ------------------------------------------------------------------------------ #

3.6.2 Grub 配置

在配置 Grub 之前还应当安装对应的软件包,同样的 Grub 也是分不同的引导方式。

  1. 安装 Grub 相关软件
1
2
3
4
5
6
7
# ------------------------------------------------------------------------------ #
# 1. UEFI + GPT
pacman -S grub efibootmgr efivar os-prober
# ------------------------------------------------------------------------------ #
# 2. BIOS + MBR
pacman -S grub efivar os-prober
# ------------------------------------------------------------------------------ #

  1. os-prober 的作用在于能发现 Windows 系统的引导
  2. 在最新版本的 Grub2 引导方式中,os-prober 默认被关闭,想要启用此功能需要在 /etc/default/grub 配置文件中将 # GRUB_DISABLE_OS_PROBER=false 字段取消注释。
  1. 配置 Grub 启动引导
1
2
3
4
5
6
7
8
9
# ------------------------------------------------------------------------------ #
# 1. UEFI + GPT
grub-install --target=x86_64-efi --efi-directory=<EFI Dir> --bootloader-id=Arch --removable
# <EFI Dir> 通常情况下为 /boot 分区
# ------------------------------------------------------------------------------ #
# 2. BIOS + MBR
grub-install --target=i386-pc <Dir> --removable --force
# <Dir> 为指定的一个分区
# ------------------------------------------------------------------------------ #
  1. 生成 Grub 引导配置文件

这一步是通过下面指令实现的,这一配置文件的修改都是通过 /etc/default/grub 修改并 grub-mkconfig 生成到此配置文件的。

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

3.7 重启系统

至此 ArchLinux 的命令行安装方式到此结束。先退出 arch-chroot (exit 或者 quit 都可以),然后卸载挂载点。

1
2
3
4
5
6
7
8
9
10
11
12
13
# ------------------------------------------------------------------------------ #
# 卸载引导分区
umount /dev/sdb1
# 关闭交换分区
swapoff /dev/sdb4
# 卸载根分区
umount /dev/sdb5
# 挂载主目录分区
umount /dev/sdb6
# ------------------------------------------------------------------------------ #
# 查看需要分区列表确定需要挂载的分区
lsblk -T
# ------------------------------------------------------------------------------ #

在确认卸载挂载点完毕之后便可重新启动系统,注意重启屏幕点亮之前一定要拔掉 U 盘。

四.GNOME 桌面环境安装

4.1 Xorg 服务安装

由于 GNOME 桌面环境默认使用了 Wayland 的显示服务器协议。Wayland 采用了 Xwayland 子协议以兼容 X 协议。由于 Wayland 现阶段的兼容性问题,笔者还是采用了更传统的基于 X 协议的 Xorg 服务。具体安装也非常简单,仅需如下命令安装 Xorg 服务器端程序:

1
sudo pacman -S xorg-server

Xorg 程序是对于 X11(也叫X Window 或 X)协议的实现

想要正常使用 Xorg 服务,还需要对 ~/.xinitrc 文件进行一些配置:

  1. 如果是 GNOME on Xorg ,需要在上述文件中添加如下内容:
1
2
3
export XDG_SESSION_TYPE=x11
export GDK_BACKEND=x11
exec gnome-session
  1. 如果是 GNOME Classic ,需要在上述文件中添加如下内容:
1
2
3
export XDG_CURRENT_DESKTOP=GNOME-Classic:GNOME
export GNOME_SHELL_SESSION_MODE=classic
exec gnome-session

4.2 gnome 包安装

要想使用 GNOME 桌面环境,安装对应的软件包如下:

1
sudo pacman -S gnome gnome-tweaks gnome-terminal dconf-editor

  1. GDM 是包含在 gnome 基础包里面的

  2. 下面是在 gnome-extra 包中较常用到的包:

为保证 GNOME 桌面环境正常使用,需要开机启动 GDM 服务。

1
2
3
4
5
6
# 开机自启 GDM 服务
systemctl enable gdm.service
# 本次启动 GDM 服务
systemctl start gdm.service
# 查看 GDM 服务状态
systemctl status gdm.service

gdm-settings gdm 的部分设置 GUI 界面


ArchLinux + GNOME 安装教程
http://example.com/2024/04/06/ArchLinux+GNOME安装/
作者
DustWind
发布于
2024年4月6日
许可协议