Arch Linux 安装教程
根据 GNU Free Documentation License, 版本 1.3 或 Free Software Foundation 发布的任何后续版本之条款, 无 Invariant Sections, 无 Front-Cover Texts 及无 Back-Cover Texts, 授予复制, 分发和/或修改本文的许可
本文将介绍如何安装一个 基本的 Arch Linux 操作系统.
Arch Linux 被设计为可以运行在配置为最低 512 MiB 内存的 x86_64 架构的计算机上, 但如果是从安装介质启动系统并成功安装在计算机硬盘中, 则可能需要更多的内存. 基本安装方式将占用小于 2 GiB 的硬盘存储空间. 由于安装过程中需要从远程存储库获取软件包, 计算机将需要一个有效的互联网连接.
本文假设你正在一个使用 UEFI 固件 且 禁用了安全启动 的 符合要求 的计算机上安装 Arch Linux 系统.
1. 准备并启动到安装介质
1.1. 下载安装映像
打开 Arch Linux 的下载页面, 找到 HTTP Direct Downloads 一节, 在 Checksums and signatures 处下载用于 ISO 的 PGP 签名.
接着找一个合适的 镜像站, 下载对应的 ISO 文件, 一个正确的文件名应该形如 archlinux-yyyy-MM-dd-x86_64.iso.
对于中国大陆用户, 一个推荐的站点是 mirrors.mirrorz.org, 它会自动重定向到适合你所在地区的镜像站.
接着, 你应该验证 ISO 文件的 PGP 签名:
# 下载签名密钥
gpg --auto-key-locate clear,wkd -v --locate-external-key pierre@archlinux.org
# 验证签名 (注意将文件名替换为对应的)
gpg --verify archlinux-yyyy-MM-dd-x86_64.iso.sig archlinux-yyyy-mm-dd-x86_64.iso1.2. 准备安装介质
你可以通过 光盘, PXE 等多种方式来制作安装介质. 本文介绍如何将 ISO 文件刻录到你的 U 盘.
插入一个至少 2 GiB 且 无重要数据 的 U 盘, 此处假设它为 /dev/sdX.
可以使用 dd 等工具将 ISO 文件刻录到你的 U 盘, 你也可以使用 Ventoy.
dd \
if=/path/to/archlinux-yyyy-MM-dd-x86_64.iso \ # 替换为 ISO 文件所在的路径
of=/dev/sdX \ # 替换为你的 U 盘设备
bs=4M \
status=progress \
conv=fsync \
oflag=sync1.3. 启动到 Live 环境
从带有 Arch Linux 安装镜像的介质启动. 一般情况下, 你需要在计算机 开机自检 期间 按下某个热键 (常见的有 F12, F8 和 Delete). 具体请参考自己计算机或主板说明书.
当引导加载程序菜单出现时, 使用 方向键 选择 Arch Linux install medium, 并按 Enter 键进入安装环境.
2. 安装前的准备
你将以 root 身份登录到一个 虚拟控制台.
默认的 Shell 是 zsh. 可用的文本编辑器有 mcedit, nano 和 vim 等.
你可以使用 Alt+方向键 切换不同的控制台, 可用的网页浏览器包括 lynx.
2.1. 切换控制台字体
如果你认为控制台的字体大小不适合, 或不够清晰, 可以使用 setfont 命令修改字体.
可用的控制台字体位于 /usr/share/kbd/consolefonts/ 目录中.
例如, 要使用适配高 DPI 屏幕的字体, 请运行:
setfont ter-v32b
其中, ter- 代表 Terminus Font 字体; v (vertical) 代表宽高定义顺序是先垂直后水平; 32 代表字体的高度为 32 像素; b (bold) 代表使用粗体版本.
2.2. 确认引导模式为 UEFI
cat /sys/firmware/efi/fw_platform_size
这个命令打印了 UEFI 固件的指针大小. 如果结果为 No such file or directory, 则该系统可能以 非 UEFI 模式启动 (如 BIOS 或 CSM), 你应该参考计算机或主板说明书将引导模式修改为 UEFI.
2.3. 连接网络
使用 ip link 命令查看所有可用的 网络接口:
ip link
# 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
# link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
# 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
# link/ether 52:54:00:bc:8c:ae brd ff:ff:ff:ff:ff:ff
# altname enx525400bc8cae
如果使用 以太网, 请 连接网线.
如果使用 移动网卡, 请参考 英文 ArchWiki 页面 使用 mmcli 连接到移动网络.
如果使用 WiFi, 应该使用 iwctl 认证网络:
iwctl \
--passphrase <WiFi密码> \
station <无线网卡设备名> \
connect <WiFi名称>
如果你使用 隐藏的 SSID, 请使用 connect-hidden 代替 connect.
如果网络启用了 DHCP, 网络应该能够开箱即用.
否则, 如果需要配置 静态 IP, 参考 ArchWiki 上的配置教程.
随后可以通过 ping 命令检查网络连接:
-c 3指定了ping发送 3 个包.
ping -c 3 ping.archlinux.org
# PING redirect.archlinux.org (95.216.195.133) 56(84) bytes of data.
# 64 bytes from redirect.archlinux.org (95.216.195.133): icmp_seq=1 ttl=45 time=197 ms
# 64 bytes from redirect.archlinux.org (95.216.195.133): icmp_seq=2 ttl=45 time=196 ms
# 64 bytes from redirect.archlinux.org (95.216.195.133): icmp_seq=3 ttl=45 time=197 ms
# --- redirect.archlinux.org ping statistics ---
# 3 packets transmitted, 3 received, 0% packet loss, time 2002ms
# rtt min/avg/max/mdev = 196.299/196.773/197.050/0.336 ms2.4. 更新系统时间
正确的系统时间可以避免签名校验问题和 TLS 证书错误, 使用 timedatectl 配置时间同步:
# 对于非中国大陆用户, 应该将 Asia/Shanghai 替换为对应的 IANA 时区
timedatectl set-timezone Asia/Shanghai
# 开启 NTP 同步
timedatectl set-ntp true
# 确认系统时间
timedatectl
输出中的 Local time 应该显示正确的 当前时间.
2.5. 创建硬盘分区
这将清空硬盘上的所有数据.
2.5.1. 确定分区设备
任何识别到的内置硬盘, U 盘或者移动硬盘等类型磁盘, 会将其分配为一个 块设备.
可以使用 fdisk 等命令查看所有的块设备:
fdisk -l
# Disk /dev/vda: 20 GiB, 21474836480 bytes, 41943040 sectors
# Units: sectors of 1 * 512 = 512 bytes
# Sector size (logical/physical): 512 bytes / 512 bytes
# I/O size (minimum/optimal): 512 bytes / 512 bytes
#
# Disk /dev/loop0: 999.41 MiB, 1047961600 bytes, 2046800 sectors
# Units: sectors of 1 * 512 = 512 bytes
# Sector size (logical/physical): 512 bytes / 512 bytes
# I/O size (minimum/optimal): 512 bytes / 512 bytes
结果中以
rom,loop或airootfs结尾的设备可以被忽略; 以rpmb,boot0或boot1结尾的mmcblk*设备也可以被忽略.
在分区之前, 请检查 NVMe 驱动器 和 先进格式化 硬盘是否使用了 最佳逻辑扇区大小.
上述的输出结果中, /dev/vda 是一个 20 GiB 的块设备. 下文 假设 你需要在 /dev/vda 上安装 Arch Linux.
2.5.2. 确定分区方案
应该花时间规划一个 长期的分区方案, 以 避免将来需要有风险和复杂的转换或重新分区.
如果要从中启动的磁盘已经有一个 EFI 分区, 请 不要创建另一个 EFI 分区, 而是 使用现有分区.
常见的情况下, 以下分区是 必须的:
- 一个 根分区 (
/) - 一个 EFI 系统分区 (一般为
/boot)
本文将使用一个较为常见的 单系统 UEFI + GPT 分区表 的分区方案:
| 挂载点 | 分区 | 分区类型 | 建议大小 |
|---|---|---|---|
/boot1 | /dev/vda1 | EFI System | 1 GiB+ |
/ | /dev/vda2 | Linux filesystem | 设备剩余空间 |
[SWAP] | /dev/vda3 | Linux swap | 4 GiB+ |
其中 分区 应根据实际情况替换.
对于 Swap 分区, 若使用休眠, 则应至少等于物理内存大小, 否则推荐根据内存灵活分配.
另请参见 Farseerfc 翻译的 替 swap 辩护: 常见的误解.
2.5.3. 开始分区
有多种分区可以进行分区, 如 gdisk, parted, cfdisk, 本文使用 fdisk:
请注意替换
/dev/vda*文本.
fdisk /dev/vda
进入 fdisk 后顺序进行以下操作:
g: 创建 GPT 分区表.n创建 EFI 分区: 两次Enter使用默认值, 接着输入预期大小 (如+1G).n创建 根分区: 两次Enter使用默认值, 输入期望大小 (如-4G表示留出 4 GiB 空间).n创建 Swap 分区: 三次Enter使用所有剩余空间.t修改第 1 个分区类型: 输入1选择分区, 输入1选择 EFI System.t修改第 2 个分区类型: 输入2选择分区, 输入20选择 Linux filesystem.t修改第 3 个分区类型: 输入3选择分区, 输入19选择 Linux swap.w: 写入 并退出
接着再次使用 fdisk 确认分区情况:
fdisk -l /dev/vda
# Disk /dev/vda: 20 GiB, 21474836480 bytes, 41943040 sectors
# Units: sectors of 1 * 512 = 512 bytes
# Sector size (logical/physical): 512 bytes / 512 bytes
# I/O size (minimum/optimal): 512 bytes / 512 bytes
# Disklabel type: gpt
# Disk identifier: 6E40E1EC-D232-4E14-AD8F-359BEAD9EA66
#
# Device Start End Sectors Size Type
# /dev/vda1 2048 2099199 2097152 1G EFI System
# /dev/vda2 2099200 33554431 31455232 15G Linux filesystem
# /dev/vda3 33554432 41940991 8386560 4G Linux swap2.6. 格式化分区
考虑到性能, 稳定性与上手难度, 本文使用了 Ext4 作为根分区的文件系统.
如果你想使用其它文件系统 (如 Btrfs 和 XFS), 参阅 ArchWiki 上的 文件系统.
请注意替换
/dev/vda*文本.
创建分区后, 必须 使用合适的文件系统对每个新创建的分区进行格式化.
# 将 EFI 系统分区格式化为 FAT32
mkfs.fat -F 32 /dev/vda1
# 将根分区格式化为 Ext4
# -L 指定了分区的卷标
# -m 指定了预留空间百分比
mkfs.ext4 -L Arch_Linux -m 1 /dev/vda2
# 初始化 Swap 分区
mkswap /dev/vda32.7. 挂载分区
请注意替换
/dev/vda*文本.
将 根磁盘卷 挂载到 /mnt:
-o指定 挂载选项,
noatime禁止更新文件访问时间 以减少磁盘写入,
mount -o noatime /dev/vda2 /mnt
将 EFI 系统分区 挂载到 /mnt/boot:
--mkdir选项使mount创建指定的挂载点.
-o umask=0077将分区权限限制为仅 root 可访问.
mount --mkdir -o umask=0077 /dev/vda1 /mnt/boot
启用 Swap 卷:
-d参数在支持的设备上 启用 discard.
swapon -d /dev/vda3
稍后 genfstab 将自动检测挂载的文件系统和交换空间.
2.8. 配置 Pacman
Pacman 是 Arch Linux 的包管理器. 良好的 Pacman 配置可以缩短下载时间, 并提升用户体验.
2.8.1. pacman.conf
使用任意一个文本编辑器编辑 /etc/pacman.conf, 或使用以下命令直接修改配置.
# 开启 Color, 启用彩色输出
sed -i '/^#Color/s/#//' /etc/pacman.conf
# 开启 VerbosePkgLists, 显示每个包的版本和大小变化
sed -i '/^#VerbosePkgLists/s/#//' /etc/pacman.conf
# 开启并设置 ParallelDownloads 为 5, 启用并行下载
sed -i '/^#ParallelDownloads = 5/s/#//' /etc/pacman.conf2.8.2. mirrorlist
需安装的软件包会从文件 /etc/pacman.d/mirrorlist 中所列的镜像站下载. 下载软件包时, 列表中越靠前的镜像站会拥有越高的优先级.
在 默认的 Live 环境下, 配置文件启用了所有 HTTPS 镜像站. 位于文件顶端的是 全球镜像站, 在 一般 的网络环境下, 这些站点足够快.
但在某些特殊的网络环境 (例如, 在中国大陆), 默认的镜像站配置可能仍然很慢. 此时, 你应该 编辑 /etc/pacman.d/mirrorlist 文件, 可以在 Arch Linux 官方的 Pacman 镜像列表生成器 获取一份合适的镜像列表.
中国大陆可以直接通过以下命令配置一个足够快且稳定镜像站列表:
cat > /etc/pacman.d/mirrorlist << 'EOF' ## ## Arch Linux repository mirrorlist ## Updated: 2026-07-24 ## Server = https://mirrors.nju.edu.cn/archlinux/$repo/os/$arch Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch Server = https://mirrors.sustech.edu.cn/archlinux/$repo/os/$arch Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch Server = https://mirrors.mirrorz.org/archlinux/$repo/os/$arch EOF
参考
- https://wiki.archlinux.org/title/Installation_guide
- https://archlinux.org/download/
- https://mirrorz.org/_/
- https://codeberg.org/unixchad/arch-install-guide
- https://chrisdown.name/2018/01/02/in-defence-of-swap.html
- https://wiki.archlinux.org/title/Partitioning
- https://man.archlinux.org/man/fdisk.8
- https://wiki.archlinux.org/title/Arch_terminology
- https://wiki.archlinux.org/title/Pacman
- https://archlinux.org/mirrors/
-
如果引导加载程序能够从根磁盘卷中加载内核和 initramfs 映像 (如 GRUB, rEFInd), 则可以使用如
/efi等其他挂载点, 本文不做讲述. ↩