本文主要介绍 Arch Linux 的基本安装步骤。
Arch Linux 是一款基于 x86-64 架构的 Linux 发行版。系统主要由自由和开源软件组成,支持社区参与。
系统设计以 KISS 原则(保持简单和愚蠢)为总体指导原则,注重代码正确、优雅和极简主义,期待用户能够愿意去理解系统的操作。
# 安装前准备
说明:本教程安装的 Archlinux 只支持 X86 架构的 CPU。如果你的 Windows 为 Arm 架构,或者你的 MacOS 为 M 系列架构,请不要下载 x86_64 的 ArchLinux 镜像。
ARM 架构或者 M 系列架构的主机请百度搜索下载何种镜像,然后再继续本教程。
# 制作启动 U 盘
安装 archlinux 需要准备一个系统 U 盘,首先在 archlinux 官网 下载 iso 镜像文件,使用 rufuse 将下载的镜像写入到 U 盘中。
# 格式化磁盘
在 windows 桌面按下 win + X
并打开磁盘管理,将需要安装 archlinux 的磁盘空间位置,右键压缩卷,用以空出磁盘空间
# 解决双系统同步问题
仅针对双系统:windows 开机磁盘检查导致时间不一致,参考 blog:https://blog.csdn.net/zhouchen1998/article/details/108893660
解决方案:以管理员身份运行 powershell,输入以下命令后重启 windows
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1 |
这个命令的效果是将 Windows 识别硬件时间为 UTC-0 而不是现在的 UTC+8,方法是将注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\ 中添加一项数据类型为 REG_DWORD,名称为 RealTimeIsUniversal,值设为 1。
# 系统安装
将启动 U 盘插入电脑后进入 bios 界面,将启动项设置为系统 U 盘,之后,U 盘的系统会载入到内存中并启动 live 环境
Arch Linux 安装镜像不支持 UEFI 安全启动(Secure Boot)功能。使用安装介质引导时,需要禁用安全启动。
# 验证引导模式
要验证系统目前的引导模式,请检查 UEFI 固件位数:
cat /sys/firmware/efi/fw_platform_size |
如果命令结果为 64,则系统是以 UEFI 模式引导且使用 64 位 x64 UEFI。
如果命令结果为 32,则系统是以 UEFI 模式引导且使用 32 位 IA32 UEFI,虽然其受支持,但引导加载程序只能使用 systemd-boot 和 GRUB。
如果命令结果为 No such file or directory,则系统可能是以 BIOS 模式(或 CSM 模式,这两种模式通常出现在老旧的电脑或未经配置的虚拟机上)引导。
如果系统没有以您想要的模式(UEFI 或 BIOS)引导启动,请您参考自己的计算机或主板说明书。
# 禁用 PC 喇叭
在操作时能够听到喇叭提示音,如果不想听到提示音,可以通过在内核模块中移除 pcspkr
模块来完全禁用 PC 喇叭: rmmod pcspkr
# 连接至互联网
要在 Live 环境中配置网络连接,请遵循以下步骤:
用 ip link
检查系统的网络接口,或者用 ip addr
查看系统网卡获取到的 ip 信息
# 有线网络
对于有线网络,连接网线后可使用 dhcp 获取地址: systemctl start dhcpcd
# 无线网络
对于无线局域网(Wi-Fi)和无线广域网(WWAN),请确保网卡未被 rfkill 禁用: rfkill unblock wlan
使用 iwctl 连接无线网络
iwctl # 进入 iwctl | |
device list # 查看网卡名称 | |
station wlan0 scan # wlan0 是无线网卡名 | |
station wlan0 get-networks # 查看已被扫描的无线网络 | |
station wlan0 connect Ciallo # Ciallo 是网络名 | |
exit # 连接成功后退出 iwctl |
# 更换镜像源
禁用 Reflector 服务: systemctl stop reflector.service
reflector 是一个自动优化镜像源的服务,它会定期从 Arch Linux 官方镜像列表中筛选出速度快、更新及时的镜像,并自动更新 /etc/pacman.d/mirrorlist 文件。禁用 reflector.service 是为了避免其自动覆盖你手动配置的镜像源。
更换镜像源,编辑 /etc/pacman.d/mirrorlist
,在文件的最顶端添加:
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch | |
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch |
并执行 pacman -Syy
命令,更新仓库信息。
# 更新系统时间
启用 ntp 服务器并设置时区
timedatectl set-ntp true # 启用 ntp 服务 | |
timedatectl set-timezone Asia/Shanghai # 设置时区 | |
timedatectl status # 查看当前时间信息 |
# 磁盘分区
# 查看磁盘分区
使用 lsblk -pf
查看当前磁盘状态:
root@archiso ~ # lsblk -pf | |
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS | |
/dev/loop0 squashfs 4.0 0 100% /run/archiso/airootfs | |
/dev/sda | |
└─/dev/sda1 vfat FAT32 ARCH_202509 1821-3E1E | |
/dev/nvme0n1 | |
├─/dev/nvme0n1p1 vfat FAT32 1AA7-9AF2 | |
├─/dev/nvme0n1p2 | |
├─/dev/nvme0n1p3 ntfs 系统 DC66393C6639192A | |
├─/dev/nvme0n1p4 ntfs 新加卷 7AA23CE1A23CA393 | |
└─/dev/nvme0n1p5 ntfs 文档 42BA82FCBA82EC2B |
未分配空间将不会在 lsblk
中显示,因此,需要使用 fdisk
或者 parted
确认未分配分区
使用 fdisk
确认分区: sudo fdisk -l
在如下输出中,最后一个分区 ( nvme0n1p5
) 的结束扇区是 658,376,703,而磁盘总扇区数是 1,000,215,216。这意味着从扇区 658,376,704 到 1,000,215,216 * 之间的空间是未分配的。
root@archiso ~ # fdisk -l | |
Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors | |
Disk model: SAMSUNG MZVLB512HBJQ-000L2 | |
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: B7E44071-B020-40DC-A5CF-98AA16494D2E | |
Device Start End Sectors Size Type | |
/dev/nvme0n1p1 2048 616447 614400 300M EFI System | |
/dev/nvme0n1p2 616448 878591 262144 128M Microsoft reserved | |
/dev/nvme0n1p3 878592 313868287 312989696 149.2G Microsoft basic data | |
/dev/nvme0n1p4 313868288 315449343 1581056 772M Microsoft basic data | |
/dev/nvme0n1p5 315451392 658376703 342925312 163.5G Microsoft basic data | |
Disk /dev/sda: 57.62 GiB, 61865984000 bytes, 120832000 sectors | |
Disk model: USB Disk | |
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: dos | |
Disk identifier: 0x0099f852 | |
Device Boot Start End Sectors Size Id Type | |
/dev/sda1 * 2048 120831935 120829888 57.6G c W95 FAT32 (LBA) | |
Disk /dev/loop0: 946.71 MiB, 992702464 bytes, 1938872 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 |
# 分配磁盘空间
这是 UEFI 启动的分区的示例:
Device | Size | Size Type |
---|---|---|
/dev/sda1 | 500M | EFI System |
/dev/sda2 | 4G | Linux swap |
/dev/sda3 | 25G | Linux filesystem |
其中 swap 交换空间有两种方式:交换分区和交换文件,区别为:
- ** 交换分区 (swap partition)**:是一个独立的、专门用于交换空间的分区。它不需要挂载到文件系统树的某个目录下。只需要用
swapon
命令直接激活即可。系统会直接和这个分区设备进行数据交换。 - ** 交换文件 (swap file)**:是存放在某个已挂载的文件系统(如
/
或/swap
)中的一个普通文件。它需要先被创建为文件,然后才能被当作交换空间使用。
下文将介绍每种 swap 的配置方法,略显冗余。方便起见,你可以直接参考本文 ext4 分区方法进行配置。
使用 cfdisk 工具进行分区。执行命令 cfdisk /dev/nvme0n1
命令开始进行分区。


root@archiso ~ # lsblk -pf | |
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS | |
/dev/loop0 squashfs 4.0 0 100% /run/archiso/airootfs | |
/dev/sda | |
└─/dev/sda1 vfat FAT32 ARCH_202509 1821-3E1E | |
/dev/nvme0n1 | |
├─/dev/nvme0n1p1 vfat FAT32 1AA7-9AF2 | |
├─/dev/nvme0n1p2 | |
├─/dev/nvme0n1p3 ntfs 系统 DC66393C6639192A | |
├─/dev/nvme0n1p4 ntfs 新加卷 7AA23CE1A23CA393 | |
├─/dev/nvme0n1p5 ntfs 文档 42BA82FCBA82EC2B | |
├─/dev/nvme0n1p6 vfat FAT16 3058-81FC | |
├─/dev/nvme0n1p7 swap 1 abff7ae1-c87b-47c1-b6c6-1a897ec54b7e | |
└─/dev/nvme0n1p8 xfs fdb10d8a-431a-47de-938f-b6be2e62ef57 |
# 格式化分区并挂载
根分区的文件系统通常使用 ext4
或者 btrfs
,前者稳定可靠,数据损坏风险低,后者功能众多,如快照、透明压缩、子卷、RAID 等,此处可按需选择文件系统类型。
# ext4
格式化分区并将根分区文件类型设置为 ext4
mkfs.vfat -F 32 /dev/nvme0n1p6 # EFI 分区格式化成 vfat 文件系统,F 指定格式化为 FAT32 | |
mkswap /dev/nvme0n1p7 # 制作 swap 分区 | |
mkfs.xfs -f /dev/nvme0n1p8 # 根分区格式化成 xfs 文件系统 |
格式化后再使用 lsblk -f
确认分区情况
root@archiso ~ # lsblk -f | |
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS | |
loop0 squashfs 4.0 0 100% /run/archiso/airootfs | |
sda | |
└─sda1 vfat FAT32 ARCH_202509 1821-3E1E | |
nvme0n1 | |
├─nvme0n1p1 vfat FAT32 1AA7-9AF2 | |
├─nvme0n1p2 | |
├─nvme0n1p3 ntfs 系统 DC66393C6639192A | |
├─nvme0n1p4 ntfs 新加卷 7AA23CE1A23CA393 | |
├─nvme0n1p5 ntfs 文档 42BA82FCBA82EC2B | |
├─nvme0n1p6 vfat FAT32 F76C-91E2 | |
├─nvme0n1p7 swap 1 101638bb-e17e-466d-b4d5-29a9c86e4dd9 | |
└─nvme0n1p8 xfs 1e1a93b5-7111-446c-a354-5a1a444d3cdd |
接下来挂载分区
mount /dev/nvme0n1p8 /mnt # 挂载跟目录分区 | |
mkdir -p /mnt/boot/efi | |
mount /dev/nvme0n1p6 /mnt/boot/efi # 挂载 EFI 分区 | |
swapon /dev/nvme0n1p7 # 挂载 swap 分区 |
挂载完成后, lsblk
查看挂载情况
root@archiso ~ # mount /dev/nvme0n1p8 /mnt | |
root@archiso ~ # mkdir -p /mnt/boot/efi | |
root@archiso ~ # mount /dev/nvme0n1p6 /mnt/boot/efi | |
root@archiso ~ # swapon /dev/nvme0n1p7 | |
root@archiso ~ # lsblk | |
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS | |
loop0 7:0 0 946.7M 1 loop /run/archiso/airootfs | |
sda 8:0 1 57.6G 0 disk | |
└─sda1 8:1 1 57.6G 0 part | |
nvme0n1 259:0 0 476.9G 0 disk | |
├─nvme0n1p1 259:1 0 300M 0 part | |
├─nvme0n1p2 259:2 0 128M 0 part | |
├─nvme0n1p3 259:3 0 149.2G 0 part | |
├─nvme0n1p4 259:4 0 772M 0 part | |
├─nvme0n1p5 259:5 0 163.5G 0 part | |
├─nvme0n1p6 259:14 0 500M 0 part /mnt/boot/efi | |
├─nvme0n1p7 259:15 0 4G 0 part [SWAP] | |
└─nvme0n1p8 259:16 0 158.5G 0 part /mnt |
# btrfs
格式化分区并将根分区文件类型设置为 btrfs
mkfs.vfat -F 32 /dev/nvme0n1p6 # EFI 分区格式化成 vfat 文件系统,F 指定格式化为 FAT32 | |
mkswap /dev/nvme0n1p7 # 制作 swap 分区 | |
mkfs.btrfs -f /dev/nvme0n1p8 # 根分区格式化成 btrfs 文件系统 |
格式化后再使用 lsblk -f
确认分区情况
root@archiso ~ # lsblk -f | |
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS | |
loop0 squashfs 4.0 0 100% /run/archiso/airootfs | |
sda | |
└─sda1 vfat FAT32 ARCH_202509 1821-3E1E | |
nvme0n1 | |
├─nvme0n1p1 vfat FAT32 1AA7-9AF2 | |
├─nvme0n1p2 | |
├─nvme0n1p3 ntfs 系统 DC66393C6639192A | |
├─nvme0n1p4 ntfs 新加卷 7AA23CE1A23CA393 | |
├─nvme0n1p5 ntfs 文档 42BA82FCBA82EC2B | |
├─nvme0n1p6 vfat FAT32 2341-4737 | |
├─nvme0n1p7 swap 1 101638bb-e17e-466d-b4d5-29a9c86e4dd9 | |
└─nvme0n1p8 btrfs cb1a47c8-1e4c-4f49-a106-841f3a0aac65 |
接下来挂载分区
swap 为交换分区 (本文使用如下方式,后续输出均为此方式下的输出结果),采用如下方式挂载:
** 交换分区 (swap partition)**:是一个独立的、专门用于交换空间的分区。它不需要挂载到文件系统树的某个目录下。只需要用
swapon
命令直接激活即可。系统会直接和这个分区设备进行数据交换。
mount -t btrfs -o compress=zstd /dev/nvme0n1p8 /mnt # -t 指定文件系统,-o 指定参数,compress=zstd 指定采用透明压缩,压缩算法为 zstd | |
btrfs subvolume create /mnt/@ # 创建根目录子卷 | |
btrfs subvolume create /mnt/@home # 创建 home 目录子卷 | |
umount /mnt # 取消挂载 | |
mount -t btrfs -o subvol=/@,compress=zstd /dev/nvme0n1p8 /mnt # 挂载根分区 | |
mount --mkdir -t btrfs -o subvol=/@home,compress=zstd /dev/nvme0n1p8 /mnt/home # 挂载根分区下 home 目录 | |
mount --mkdir /dev/nvme0n1p6 /mnt/boot # 挂载 efi 分区 | |
swapon /dev/nvme0n1p7 # 挂载 swap 分区 | |
mount --mkdir /dev/sda1 /mnt/winboot # 挂载 windows 分区,仅在双系统场景下配置 |
swap 为交换文件,采用如下方式挂载(该步骤仅为子卷创建和挂载,创建 swap 交换文件参考后续步骤):
mount -t btrfs -o compress=zstd /dev/nvme0n1p8 /mnt # -t 指定文件系统,-o 指定参数,compress=zstd 指定采用透明压缩,压缩算法为 zstd | |
btrfs subvolume create /mnt/@ # 创建根目录子卷 | |
btrfs subvolume create /mnt/@home # 创建 home 目录子卷 | |
btrfs subvolume create /mnt/@swap # 创建 swap 子卷 | |
umount /mnt # 取消挂载 | |
mount -t btrfs -o subvol=/@,compress=zstd /dev/nvme0n1p8 /mnt # 挂载根分区 | |
mount --mkdir -t btrfs -o subvol=/@home,compress=zstd /dev/nvme0n1p8 /mnt/home # 挂载根分区下 home 目录 | |
mount --mkdir -t btrfs -o subvol=/@swap,compress=zstd /dev/nvme0n1p8 /mnt/swap # 挂载根分区下 swap 目录 | |
mount --mkdir /dev/nvme0n1p6 /mnt/boot # 挂载 efi 分区 | |
mount --mkdir /dev/nvme0n1p1 /mnt/winboot # 挂载 windows 分区,仅在双系统场景下配置 | |
btrfs filesystem mkswapfile --size 4g --uuid clear /mnt/swap/swapfile # 创建 swap 交换文件 | |
swapon /mnt/swap/swapfile # 挂载 swap 文件 |
挂载完成后, lsblk
和 df -h
查看挂载情况
root@archiso ~ # df -h | |
Filesystem Size Used Avail Use% Mounted on | |
dev 7.4G 0 7.4G 0% /dev | |
run 7.5G 9.7M 7.5G 1% /run | |
efivarfs 148K 98K 46K 69% /sys/firmware/efi/efivars | |
copytoram 12G 947M 11G 9% /run/archiso/copytoram | |
cowspace 256M 9.2M 247M 4% /run/archiso/cowspace | |
/dev/loop0 947M 947M 0 100% /run/archiso/airootfs | |
airootfs 256M 9.2M 247M 4% / | |
tmpfs 7.5G 0 7.5G 0% /dev/shm | |
tmpfs 7.5G 0 7.5G 0% /tmp | |
tmpfs 1.0M 0 1.0M 0% /run/credentials/systemd-journald.service | |
tmpfs 1.0M 0 1.0M 0% /run/credentials/systemd-resolved.service | |
tmpfs 7.5G 2.7M 7.5G 1% /etc/pacman.d/gnupg | |
tmpfs 1.0M 0 1.0M 0% /run/credentials/systemd-networkd.service | |
tmpfs 1.0M 0 1.0M 0% /run/credentials/getty@tty1.service | |
tmpfs 1.5G 8.0K 1.5G 1% /run/user/0 | |
/dev/nvme0n1p8 159G 5.9M 157G 1% /mnt | |
/dev/nvme0n1p8 159G 5.9M 157G 1% /mnt/home | |
/dev/nvme0n1p6 500M 4.0K 500M 1% /mnt/boot | |
/dev/nvme0n1p1 300M 34M 266M 12% /mnt/winboot | |
root@archiso ~ # lsblk | |
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS | |
loop0 7:0 0 946.7M 1 loop /run/archiso/airootfs | |
sda 8:0 1 57.6G 0 disk | |
└─sda1 8:1 1 57.6G 0 part | |
nvme0n1 259:0 0 476.9G 0 disk | |
├─nvme0n1p1 259:1 0 300M 0 part /mnt/winboot | |
├─nvme0n1p2 259:2 0 128M 0 part | |
├─nvme0n1p3 259:3 0 149.2G 0 part | |
├─nvme0n1p4 259:4 0 772M 0 part | |
├─nvme0n1p5 259:5 0 163.5G 0 part | |
├─nvme0n1p6 259:6 0 500M 0 part /mnt/boot | |
├─nvme0n1p7 259:7 0 4G 0 part [SWAP] | |
└─nvme0n1p8 259:8 0 158.5G 0 part /mnt/home | |
/mnt |
# 更新密钥
使用命令 pacman -Sy archlinux-keyring
用以更新密钥。
archlinux-keyring
:Arch Linux 的所有官方软件包在发布前,都会用一个唯一的 PGP 密钥进行数字签名。系统上存放可信公钥的集合即为 archlinux-keyring
包。当你用 pacman
安装软件时,它会自动用本地的密钥环验证软件包的签名。如果验证通过,说明软件包可信;如果失败, pacman
会拒绝安装。
# 安装系统软件包
使用 pacstrap
命令将指定的软件包安装到 /mnt
目录下,建议只安装系统必要软件包,其余非必须包在 Chroot 进入新系统后再 [安装软件包](# 安装软件包)。
pacstrap -K /mnt linux-zen linux-firmware linux-headers base vim xfsprogs networkmanager |
Note:
- 请根据分区类型选择安装
xfsprogs
还是btrfs-progs
。- 如果出现
failed to install packages to new root
,先检查包名有没有输错,再尝试更新密钥或者执行pacman-key --refresh-keys
常见的软件包:
linux
:标准 Linux 内核,负责管理 CPU、内存、设备驱动、系统调用等。linux-zen
:基于 linux 标准内核,优化了桌面用户体验、响应速度等,linux
和linux-zen
任选其一安装。base
:最基础的 Arch Linux 系统元包,只包含构成最小可用系统所必需的包。linux-firmware
:包含许多硬件设备所需的专有固件文件,许多硬件需要额外的微代码才能正常工作,这些微代码由该包提供。linux-headers
:Linux 内核的头文件,用于编译某些需要与内核直接交互的软件或驱动程序,如果你会用到编译内核模块的软件,就需要安装此包。vim
:文本编辑器,vi
编辑器的增强版。networkmanager
:网络管理服务,管理有线、Wi-Fi、PPPoE、移动宽带等网络连接。usb_modeswitch
:USB 网卡服务,部分 USB 无线网卡需要安装。xfsprogs
:提供用于管理和维护 XFS 文件系统的工具,分区采用 XFS 文件系统时需要安装。btrfs-progs
:提供用于管理和维护 btrfs 文件系统的工具,分区采用 btrfs 文件系统时需要安装。amd-ucode/intel-ucode
:微码更新包,根据 CPU 品牌选择安装。
# 生成 fstab 文件
生成 fstab
文件以使需要的文件系统(如启动目录 /boot
)在启动时被自动挂载,用 -U
或 -L
选项分别设置 UUID 或卷标:
genfstab -U /mnt >> /mnt/etc/fstab |
挂载完成后, cat /mnt/etc/fstab
检查生成的文件是否正确。
# chroot 到新系统
arch-chroot /mnt
进入到新安装的系统:
root@archiso ~ # arch-chroot /mnt | |
[root@archiso /]# |
arch-chroot /mnt
命令的作用是 “切换根目录”。它创建了一个虚拟的环境,将这个新系统的根目录 (/mnt
) 设置为这个新环境的根目录 (/
),可以直观的看到由~
到了/
,表示从live
环境切换到了/mnt
,而中括号则是不同 shell 风格不同导致的,仅做提示作用。
# 设置时间和时区
通过以下命令设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai/etc/localtime |
通过以下命令同步硬件时钟
hwclock --systohc |
# 区域和本地化设置
程序和库如果需要本地化文本,都依赖区域设置,后者明确规定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。
需要设置这两个文件: locale.gen
与 locale.conf
。
编辑 /etc/locale.gen
,然后取消掉 en_US.UTF-8 UTF-8
、 en_GB.UTF-8 UTF-8
、 zh_CN.UTF-8 UTF-8
,接着执行 locale-gen
以生成 locale 信息:
locale-gen
创建 locale.conf
并设置 LANG 变量
echo "LANG=en_GB.UTF-8" > /etc/locale.conf |
将系统 locale 设置为
en_US.UTF-8
,系统的日志就会用英文显示,这样更容易判断和处理问题;
- 也可以设置为
en_GB.UTF-8
[英语(英国)]或en_SG.UTF-8
[英语(新加坡)],附带以下特点:
- 进入桌面环境后以 24 小时制显示时间;
- LibreOffice 等办公软件的纸张尺寸会默认为
A4
而非Letter (US)
;- 可尽量避免不必要且可能造成处理麻烦的英制单位。
- 设置的 LANG 变量需与 locale 设置一致,否则会出现错误:
Cannot set LC_CTYPE to default locale: No such file or directory
# 网络配置
如果在 [安装系统软件包](# 安装系统软件包) 时没有安装 networkmanager
,可在此安装
pacman -S networkmanager |
安装完成后,设置网络管理开机启动
systemctl enable NetworkManager |
# ssh 服务配置
安装 ssh 服务并设置开机自启动
pacman -S openssh | |
systemctl enable sshd |
编辑并取下以下注释
Port 22 | |
AddressFamily any | |
ListenAddress 0.0.0.0 | |
ListenAddress :: | |
#PermitRootLogin prohibit-password # 允许公钥登录 root,禁止密码认证 | |
PermitRootLogin yes # 允许通过所有认证方式登录 root |
# 设置设备名称和密码
创建 hostname
文件用以指定计算机名称
echo "Amadeus" > /etc/hostname |
执行 passwd
命令并输入两次密码
[root@archiso /]# passwd | |
New password: | |
Retype new password: | |
passwd: password updated successfully |
# 创建新用户并赋予 sudo 权限
创建一个名为 user1
的用户并给其赋予 sudo
权限
useradd -m user1 # 创建用户名为 user1 的用户,并创建其家目录 | |
passwd user1 # 修改 user1 的密码 | |
# 把 user1 追加到 wheel 组中,让其可以使用 sudo 权限,你可以看到这里加入了很多组,因为这并非生产环境,没有过于要求最小权限 | |
usermod -aG wheel,users,uucp,storage,power,lp,adm,optical,audio,video,network,rfkill,input user1 |
执行命令 visudo
取消 % wheel ALL=(ALL:ALL) ALL
前的注释。
% wheel ALL=(ALL:ALL) ALL |
# 安装启动引导程序
需要安装 Linux 引导加载程序,才能在安装后启动系统,GRUB 是一个比较常见且通用的选择,通过以下命令安装 GRUB,其中 efibootmgr
用于管理 UEFI 启动项, efivar
是操作系统与主板 UEFI 固件中 EFI 变量交互的工具库, os-prober
用于搜索 windows 系统
pacman -S grub efibootmgr os-prober efivar |
使用 grub-install
配置启动引导,其中 --target
指定系统架构, --efi-directory
指定系统目录,即挂载的 efi
分区, --bootloader-id
指定启动项名称
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Amadeus |
建议确认挂载的系统目录名称,例如本文中采用
ext4
格式挂载到/mnt/boot/efi
,则此处为/boot/efi
,采用btrfs
格式挂载到/mnt/boot
,则此处为/boot
可选:编辑 grub
源文件,用以自定义生成的 grub
配置文件
- 启用开机日志并且禁用 watchdog,修改第六行:
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5 nowatchdog modprobe.blacklist=sp5100_tco" # amd 用户 | |
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5 nowatchdog modprobe.blacklist=iTCO_wdt" # intel 用户 |
- 去掉文件最后一行的注释,用以启动
os-prober
工具,允许 GRUB 在更新配置时自动扫描并添加其他硬盘上已存在的操作系统,双系统上建议取消注释
GRUB_DISABLE_OS_PROBER=false |
设置完成后,生成 grub
的配置文件
grub-mkconfig -o /boot/efi/grub/grub.cfg |
同样的,根据启动目录配置决定此处是
/boot
还是/boot/efi
# 取消挂载并重启
使用 exit
退出 change root
,拔掉 U 盘后输入 reboot
重启系统,重启时会自动取消挂载
[root@archiso /]# exit | |
root@archiso ~ # reboot |
# 基础配置
# 网络连接
在开始前,先用 systemctl status NetworkManager
确认网络服务运行状态,连接网络常用 nmcli
或 nmtui
命令,后者为 ui 操作,更加便捷,这里主要介绍 nmcli
连接网络的方法:
查看可用的有线网络接口,通输出中 TYPE
为 ethernet
的即为有线接口,为 wifi
的即为无线接口。
nmcli device status |
# 连接有线网络
有线网络通常默认会自动获取 IP(DHCP),如果未自动连接,可手动操作,假如有线网口为 enp0s3
# 启用接口(如果显示 disconnected) | |
nmcli device set enp0s3 managed yes | |
# 创建并激活一个 DHCP 连接(自动获取 IP) | |
nmcli connection add type ethernet ifname enp0s3 con-name "enp0s3" ipv4.method auto | |
nmcli connection up "enp0s3" |
# 连接无线网络
如果接口状态为 disconnected
或 unmanaged
,则先启动网口
nmcli radio wifi on # 开启 WiFi 开关 | |
nmcli device set wlp3s0 managed yes # 让 NetworkManager 管理接口(替换为你的 WiFi 接口名) |
扫描附近的 wifi,输出会显示 WiFi 名称(SSID)、信号强度、加密方式等。
nmcli device wifi list |
连接到加密的 WiFi(需要密码),假设 WiFi 名称为 MyWiFi
,密码为 12345678
:
# 创建并连接到 WiFi(自动使用 DHCP 获取 IP) | |
nmcli device wifi connect "MyWiFi" password "12345678" ifname wlp3s0 |
- 如果接口名唯一,可省略
ifname wlp3s0
- 连接成功后,会自动保存该连接(后续可直接通过名称激活)
查看已保存的连接:
nmcli connection show |
激活指定连接(假设连接名为 MyWiFi
):
nmcli connection up "MyWiFi" |
# nmcli 常用命令
断开当前连接
nmcli connection down "连接名称" # 如 "Wired-Connection" 或 "MyWiFi" |
删除已保存的连接
nmcli connection delete "连接名称" |
查看当前网络状态
nmcli general status # 整体网络状态 | |
nmcli connection show --active # 显示活跃的连接 |
# 安装软件包
下列出一些常用的软件包,可自行选择,使用 pacman -S 软件包名称
安装
pacman -S sudo git base-devel bash-completion flatpak fastfetch gvfs-smb |
sudo
:授权用户以另一个用户(默认是 root 超级用户)的身份执行命令,superuser do 的缩写。git
:分布式版本控制系统,下载和安装 AUR 包的必要工具,yay
/paru
等 AUR 助手底层使用git
来克隆软件仓库。base-devel
:包含编译软件所需的开发工具集(gcc、make、git 等),使用AUR (Arch User Repository)
安装软件,就需要安装此包。bash-completion
:为 Bash shell 提供可编程的自动补全功能,即按Tab
键时自动补全。flatpak
:跨 Linux 发行版的通用应用打包 / 运行框架(类似 Windows 的.exe
或 macOS 的.dmg
)。fastfetch
:快速获取硬件、操作系统、网络等关键信息。gvfs-smb
:smb 文件共享协议,安装完成后,在文件系统目录中使用smb://192.168.1.1
即可访问对应的文件共享服务。
# 配置桌面环境
本章节介绍 archlinux
一些常见的桌面环境和配置方法,任选其一即可。
# GNOME
# 安装 GNOME 桌面环境
使用 pacman -S gnome
可以直接安装 gnome
的全量包,或者可以只安装一些必要的包
pacman -S gnome-desktop gdm ghostty gnome-control-center gnome-software |
gnome-desktop
:GNOME 桌面环境的核心基础库和组件。gdm
:GNOME Display Manager(GNOME 显示管理器),GNOME 官方的登录管理器(图形化登录界面)。ghostty
:跨平台 GPU 加速终端模拟器。gnome-control-center
:GNOME 桌面的图形化系统设置面板(类似 Windows 的 “控制面板” 或 macOS 的 “系统设置”)。gnome-software
:GNOME 官方的图形化软件商店。
安装时会提示 Repository extra 1) jack2 2) pipewire-jack
,此时选择 2
这里的 1 和 2 是系统对
jack
音频框架依赖的不同实现,1. 传统的 JACK 音频连接套件,广泛用于专业音频制作场景。2. PipeWire 项目提供的 JACK 兼容层,兼容性更好,许多 Linux 发行版将其作为默认音频系统。
安装完成后,A 卡(AMD)用户可以直接设置开机自启并立即启动桌面环境
systemctl enable gdm --now |
N 卡用户需要安装显卡驱动,首先安装 linux 头文件 linux-headers
pacman -S linux-headers |
参考 NVIDIA - ArchWiki 选择显卡驱动,在 搜索页 搜索你的显卡名称并找到对应的类别,以 4060 为例,其所在的类为 Ada Lovelace

参考图表确认 4060 所对应的的显卡驱动
pacman -S nvidia nvidia-utils nvidia-settings |

安装完成后 reboot
重启系统,设置开机自启并立即启动桌面环境
systemctl enable gdm --now |