前言 本安装教程是根据 ArchWiki—安装指南 、 Archlinux安装与美化全流程 以及笔者多次试验总结而成。如有遗漏或者错误请多指正。
一.准备工作 1.1 写入软件 当前市面上有许多U盘烧录工具,如Rufus、USBWriter、Ventoy等。笔者在这里强烈建议使用 Ventoy ,它是由国人制作的一款完全免费的开源工具,可以非常简单地部署启动镜像。在此贴上链接:Ventoy官网 。
1.2 镜像文件 当今网络非常发达,想要获取资源也有多个途径。简单给出镜像获取的两种途径:
Arch Linux 官方网站下载 ISO 文件:Arch Linux Downloads
国内镜像仓库下载系统 ISO 文件:清华源 、阿里云源
注 :
由于 Arch Linux 系统采用的是滚动更新模式,因此在安装系统时更推荐选取最新的系统镜像。
1.3 镜像烧录 笔者使用 Ventoy 软件进行烧录。具体步骤如下:
在 Windows 系统环境下打开 Ventoy 软件,将分区类型选择为 GPT 格式
将 Ventoy 软件安装到 U 盘中
根据下图可以看到安装 Ventoy 到 U 盘中后界面显示设备内部 Ventoy 软件版本
安装了 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 验证网络连通性
如果收到网络 icmp 回包则网络配置正确。
2.3 时间同步 在正式安装之前也应当配置时间同步,否则可能由于时间验证失败而导致下载安装包失败。
1 2 3 4 # 查看时间日期状态 timedatectl status# 启用网络时间同步(NTP ) timedatectl set-ntp true
2.4 更换镜像源 由于国内访问国外网站可能会很慢或者失败的情况,因此更换国内镜像源显得尤为重要。可通过更改 /etc/pacman.d/mirrorlist
配置文件换源。
打开配置文件
1 2 # 打开镜像配置文件 nano /etc/pacman.d/mirrorlist
找到第一个 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
执行如下命令更新同步数据库
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
主目录
注:
交换分区无需分配挂载点,只需分区之后开启或者关闭即可
笔者有一个三星 SSD 硬盘以及一个西数的机械硬盘,因此会有两个编号:
三星 SSD 硬盘编号:/sda
西数 机械 硬盘编号:/sdb
有的 LiveCD 系统镜像没有 Linux home
分区类型,则可以使用 Linux filesystem
分区类型
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
进入新系统:
注 :
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
同步时间配置文件
3.3 本地化 完成本地化需要对两个文件进行处理: locale.gen
文件以及 locale.conf
文件
编辑 /etc/locale.gen
文件去掉两项内容注释:
1 2 # en_US.UTF-8 UTF-8 # zh_CN.UTF-8 UTF-8
然后使用 locale-gen
命令生成 Locale。
编辑 /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 文件
配置 hostname 文件
通过编辑 /etc/hostname
文件配置主机名,如果没有该文件则创建该文件。然后在该文件中按需写入主机名。
1 2 3 4 5 6 7 8 # ------------------------------------------------------------------------------ # 例如创建名为 ArchLinux 的主机 # 通过 vim 编辑器编辑 hostname 文件 vim /etc/hostname# ------------------------------------------------------------------------------ # 写入主机名 ArchLinux# ------------------------------------------------------------------------------
配置 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 3 4 # 添加新用户 useradd -m -G wheel <username># 为新用户修改密码 passwd <username>
注 :
上述命令中各个参数的含义:
-m
:创建新用户的同时创建其对应的家目录
-G
:指定附加组(wheel 附加组可以进行 sudo 提权操作)
<username>
:新建用户名,注意区分大小写
修改 /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 也是分不同的引导方式。
安装 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# ------------------------------------------------------------------------------
注 :
os-prober
的作用在于能发现 Windows 系统的引导
在最新版本的 Grub2 引导方式中,os-prober
默认被关闭,想要启用此功能需要在 /etc/default/grub
配置文件中将 # GRUB_DISABLE_OS_PROBER=false
字段取消注释。
配置 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> 为指定的一个分区 # ------------------------------------------------------------------------------
生成 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
文件进行一些配置:
如果是 GNOME on Xorg ,需要在上述文件中添加如下内容:
1 2 3 export XDG_SESSION_TYPE=x11 export GDK_BACKEND=x11 exec gnome-session
如果是 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
注 :
GDM 是包含在 gnome 基础包里面的
下面是在 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 界面