Arch Linux 无图形化操作系统安装指南

在本文开始之前,首先允许我提前声明一点,Arch Linux的安装并不算难,但是绝对也算不上简单,中间的安装可能会遇到很多问题,本篇文章不能保证完全贴合你的真实机器环境,但是我会在我安装过程中遇到的一点点小问题都说出来,给大家避个坑,那么接下来,介绍一下本文用到的安装环境:

  • Windows
  • VMware虚拟机
  • Vmware的NAT网络连接模式

至于在个人电脑上安装 Arch Linux 与虚拟机安装不同的地方,我会当前步骤前后标注出来。

毕竟是安装操作系统,第一步肯定获得Arch Linux操作系统的镜像包,关于其镜像包,由于官网给我们的是磁链和BT文件,所以网络环境和软件环境好的同学可以使用官网的下载方式。条件不允许的同志,可以选择使用镜像站来下载;这里贴出官网的下载方式和镜像站:

下载完成后,还需要在 archlinux 下载页面(https://archlinux.org/iso/2025.03.01/archlinux-2025.03.01-x86_64.iso.sig)下载`PGP signature`签名文件(不要从镜像源下载签名文件),将签名文件和 iso 镜像置于同一文件夹,随后进行对镜像的签名校验,以保证下载的镜像是完整,无错误的,未被篡改的。若你使用 Linux,执行以下命令,确保输出完好的签名。具体镜像名根据名字自行修改。

1
gpg --keyserver-options auto-key-retrieve --verify archlinux-2025.03.01-x86_64.iso.sig

如果你使用 Windows 系统,可使用 7-zip 工具验证哈希校验和,首先下载官网提供的 sha256sums.txt 文件,然后选择你所下载完成的 ISO 镜像文件,右键 > 7-zip > CRC SHA > SHA-256,验证其结果是否与 sha256sums.txt 文件内容相同。

注意,这里的签名校验非常重要,这可以保证你的安装镜像是未被篡改的,同时也能及时发现文件是否损坏。

01. 新建虚拟机

新建虚拟机的过程很简单,这里不过多赘述,主要注意的几个点已经在下图中标注,这里磁盘的大小仅为参考,一般来说个人日常使用的 linux 分配 100G 已经够用了。如果你的存储资源有限,那么最小建议不小于 50G,磁盘过小会造成无法更新系统软件包等问题。

注意:在安装之前,首先不要急着启动 Arch,我们先到 Arch 虚拟机的设置中修改一下,使用UEFI来引导系统启动。(由于当前 UEFI 已普及十余年,安装将全部以 UEFI+GPT 的形式进行,传统 BIOS 方式不再赘述。)

看到这里,使用虚拟机的同学就可以准备启动 Arch 进行接下来的安装了。而对于需要在 PC 端安装的同学还需要以下准备:

  1. 确保网络环境
    如果你可以使用路由器分接出来的网线,以 dhcp 的方式直接上网,那么不用准备什么。如果你的环境只能使用无线网络安装,需要事先把自己所用的 wifi 名称改成自己能记住的英文名称。因为安装时无法显示和输入中文名的 wifi,你会看到一堆不知道是什么的方块,并且在安装过程中你将没有办法输入中文的无线名称进行连接。虽然通过一些繁琐的步骤可以解决终端中文的问题,但是显然这么做在安装 Arch Linux 时毫无必要。
    其次,有些笔记本电脑上存在无线网卡的硬件开关或者键盘控制,开机后安装前需要确保你的无线网卡硬件开关处于打开状态。

  2. 刻录启动优盘
    准备一个 2G 以上的优盘,刻录一个安装启动盘。Windows 下推荐使用 ventoy 或者 Rufus 或者 etcher 进行优盘刻录。三者皆为自由软件。Linux 下可以直接用 dd 命令进行刻录。注意 of 的参数为 sdx,不是 sdx1 sdx2 等。

1
sudo dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress oflag=sync

bs=4M 指定一个较为合理的文件输入输出块大小。
status=progress 用来输出刻录过程总的信息。
oflag=sync 用来控制写入数据时的行为特征。确保命令结束时数据及元数据真正写入磁盘,而不是刚写入缓存就返回。

  1. 进入主板 BIOS 进行设置
    插入优盘并开机。在开机的时候,按下 F2/F8/F10/DEL 等(取决与你的主板型号,具体请查阅你主板的相关信息,我的微星主板使用的是 DEL)按键,进入主板的 BIOS 设置界面。
  2. 关闭主板设置中的 Secure Boot
    在类似名为 security 的选项卡中,找到一项名为 Secure Boot(名称可能略有差异)的选项,选择 Disable 将其禁用。
  3. 调整启动方式为 UEFI
    在某些旧的主板里,需要调整启动模式为 UEFI,而非传统的 BIOS/CSM。在类似名为 boot 的选项卡中,找到类似名为 Boot Mode 的选项,确保将其调整为 UEFI only,而非 legacy/CSM。
  4. 调整硬盘启动顺序
    在类似名为 boot 的选项卡中,找到类似名为 Boot Options(名称可能略有差异)的设置选项,将 USB 优盘的启动顺序调至首位。对于微星主板,可以在计算机启动加电自检时(出现那个MSI logo 时)按下 F11 选择优盘作为启动盘。
  5. 准备安装
    最后保存 BIOS 设置并退出,一般的按键是 F10。此时系统重启,不出意外你应该已经进入 archlinux 的安装界面。

02. Arch Linux 基础安装

本节从安装最基础的无图形化 ArchLinux 系统开始。

(官方指南:https://wiki.archlinux.org/title/Installation_guide)

开机后应显示如下界面:您将会以 root 身份登录进入一个虚拟控制台,默认的 Shell 是 Zsh。

如果您觉得用命令行安装过于繁琐,可以试试官方的安装脚本 archinstall。详情可参见 archinstall

  1. SSH 远程连接
    我们安装 Arch 的时候是完全被允许使用 SSH 来远程连接的,关于我为什么要提这个问题,因为我们安装的时候是无法在虚拟机或物理机中粘贴的,如果我们能够使用 Shell 工具远程连接到Arch的安装进程上,就可以正常的来粘贴命令了,这样的话将会起到事半功倍的效果。

在物理机上安装时,此时要先连接网络,否则无法建立 SSH 连接,对于有线网络无需任何设置(安装环境中 DHCP 服务是默认开启的)。对于 WIFI 网络,需要执行以下命令:

1
2
3
4
5
6
7
iwctl                           #执行iwctl命令,进入交互式命令行
device list #列出设备名,比如无线网卡看到叫 wlan0
station wlan0 scan #扫描网络
station wlan0 get-networks #列出网络 比如想连接YOUR-WIRELESS-NAME这个无线
station wlan0 connect YOUR-WIRELESS-NAME #进行连接 输入密码即可
exit #成功后exit退出
ping www.baidu.com #测试网络

如果你没有相关的工具,那么也不影响后续的操作;如果你有,请使用root@xxx.xxx.xxx.xxx来进行连接,ip a 命令可以查看 Arch 的 IP,passwd 可以修改 root 的密码(记得检查小键盘数字锁是否打开)。闲话少说,基本的配置完成,我们还是步入正轨来安装Arch吧。

1
2
3
4
#查看 IP
ip a
#修改 root 密码
passwd root
  1. 禁用 reflector

    reflector 会为你选择速度合适的镜像源,但其结果并不准确,同时会清空配置文件中的内容,对于新人来讲并不适用,我们首先对其进行禁用。

    1
    systemctl stop reflector.service
  2. 再次确保是否为 UEFI 模式

    在一系列的信息刷屏后,可以看到已经以 root 登陆安装系统了,此时可以执行的命令:

    1
    ls /sys/firmware/efi/efivars

    若输出了一堆东西,即 efi 变量,则说明已在 UEFI 模式。否则请确认你的启动方式是否为 UEFI。

  3. 连接网络

    对于使用虚拟机的同学,curl 百度进行测试,如果能够输出东西,有一堆HTML标签等等,说明网络无异常。对于在物理机安装的同学,一般来说,你连接的网络几乎均可以通过 DHCP 的方式来进行 IP 地址和 DNS 的相关设置(由 systemd-networkdsystemd-resolved 提供功能),无需进行额外操作。在没有合适网络的情况下,使用手机的移动热点也是很方便的选择。如果你的网络环境需要配置静态 IP 和 DNS,请自行参考网络配置#静态 IP 地址进行操作。

    对于有线连接来说,直接插入网线即可。

    对于无线连接(已经在 SSH 远程连接章节完成网络配置的同学请忽略),则需进行如下操作进行网络连接。

    无线连接使用 iwctl 命令进行,按照如下步骤进行网络连接:

    1
    2
    3
    4
    5
    6
    iwctl                           #执行iwctl命令,进入交互式命令行
    device list #列出设备名,比如无线网卡看到叫 wlan0
    station wlan0 scan #扫描网络
    station wlan0 get-networks #列出网络 比如想连接YOUR-WIRELESS-NAME这个无线
    station wlan0 connect YOUR-WIRELESS-NAME #进行连接 输入密码即可
    exit #成功后exit退出

    可以等待几秒等网络建立链接后再进行下面测试网络的操作。

    1
    ping www.baidu.com

    如果你不能正常连接网络,首先确认系统已经启用网络接口

    1
    2
    ip link  #列出网络接口信息,如不能联网的设备叫wlan0
    ip link set wlan0 up #比如无线网卡看到叫 wlan0

    如果随后看到类似Operation not possible due to RF-kill的报错,继续尝试rfkill命令来解锁无线网卡。

    1
    rfkill unblock wifi

    **注意:**默认情况下,安装映像在启动时已经预先配置好并启用了 systemd-networkdsystemd-resolvediwdModemManager。但在已经安装完成了的系统之中并非如此。

  4. 更新系统时钟

    系统时间的准确是十分重要的,我们的 SSL 证书等等以及例如 OTP 等等很多服务,都是要建立在时间准确的前提下的,所以这一步是至关重要的。使用命令同步系统时间:

    1
    2
    timedatectl set-ntp true    #将系统时间与网络时间进行同步
    timedatectl status #检查服务状态


    由于我们国家处于东八区,这里的Time zone给出的是UTC+0,所以只要将其时间加上8H即可得出我们的时间,如果计算后的时间和我们的实际时间基本相吻合,那么这里就可以继续操作了。

  5. 分区

    由于这里我们是使用新开虚拟机操作,顾虑不用很多,不会刷写到我们物理机的磁盘。但是在这里我还是提一嘴,数据无价!

    这里总共设置三个分区,是一个我们认为较为通用的方案。此步骤会清除磁盘中全部内容,请事先确认。

    • EFI 分区: /efi 800M(建议 1 GiB)

    • Swap 分区:4GiB(Swap 交换空间也可以在 Swap#交换文件 上为支持它的文件系统设置)

    • 根分区: / 剩余全部(至少 50 GiB)

    首先将磁盘转换为 gpt 类型,这里假设比如你想安装的磁盘名称为 sdx。如果你使用 NVME 的固态硬盘,你看到的磁盘名称可能为 nvme0n1。

    1
    2
    3
    4
    5
    lsblk                       #显示分区情况 找到你想安装的磁盘名称
    parted /dev/sdx #执行parted,进入交互式命令行,进行磁盘类型变更
    (parted)mktable #输入mktable
    New disk label type? gpt #输入gpt 将磁盘类型转换为gpt 如磁盘有数据会警告,输入yes即可
    (parted)quit #最后quit退出parted命令行交互

    接下来使用 cfdisk 命令对磁盘分区。进入 cfdisk 后的操作很直观,用键盘的方向键、Tab 键、回车键配合即可操作分配各个分区的大小与格式。一般建议将 EFI 分区设置为磁盘的第一个分区,据说有些主板如果不将 EFI 设置为第一个分区,可能有不兼容的问题。其中 EFI 分区选择EFI System类型,Swap 分区选择Linux swap 类型,根分区选择Linux filesystem类型。

    1
    2
    cfdisk /dev/sdx #来执行分区操作,分配各个分区大小,类型
    fdisk -l #分区结束后, 复查磁盘情况

    注意:最后一定要点击Write,以更改分区表,当下方提示 “The partition table has been altered.” ,说明修改成功,选择 Quit 退出。

  6. 格式化

    建立好分区后,需要对分区用合适的文件系统进行格式化。这里用mkfs.vfat命令格式化 EFI 分区,使用mkswap命令格式化 swap 分区,用mkfs.btrfs命令格式化根分区,。如下命令中的 sdax 中,x 代表分区的序号。格式化命令要与上一步分区中生成的分区名字对应才可以。

    磁盘若事先有数据,会提示你: ‘proceed any way?’ 按 y 回车继续即可。

    1
    2
    3
    4
    mkfs.vfat  /dev/sda1            #格式化efi分区
    mkswap /dev/sda2 #格式化swap分区
    mkfs.btrfs /dev/sda3 #格式化根分区
    lsblk -f #查看分区结果
  7. 挂载分区

    在挂载时,挂载是有顺序的,先挂载根分区,再挂载 EFI 分区。 这里的 sdax 只是例子,具体根据你自身的实际分区情况来。

    1
    2
    3
    4
    mount /dev/sda3 /mnt
    mkdir /mnt/boot #创建efi目录
    mount /dev/sda1 /mnt/boot/efi
    swapon /dev/sda2
  8. 镜像源选择

    使用如下命令编辑镜像列表:

    1
    vim /etc/pacman.d/mirrorlist

    其中的首行是将会使用的镜像源。添加中科大或者清华的放在最上面即可。

    1
    2
    Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
    Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch

    如果其速度不佳,可以手动指定其他镜像源。完整的镜像源列表可参考官方镜像源生成器

    这里使用中国境内的镜像源以提高访问速度。然而这存在问题,镜像源(如 arch linux 清华镜像源)以及第三方源(如 archlinux-cn)可以知道你的 ip 是什么,什么时候更新了系统,什么时候检查了系统,什么时候更新了什么软件,你安装的软件列表是什么。在威权国家的镜像源维护者完全有可能根据威权当局的要求提供这些数据,很多维护者在网络上几乎是实名上网的,他们没有任何抵抗能力,进一步的,威权国家可以根据这些元数据与你产生的其他元数据进行比对,从而对你进行进一步的定位与辨识。简单举一个例子,要求维护者提供或监视安装了 v2ray/qv2ray 等软件包的使用者的 ip,以及安装时间,以及其全部软件列表。

    如果你在安装 arch linux 时的网络已经处于代理模式下,可以选择一个与你代理位置较近的,非威权国家的镜像源来使用。如果你在安装 arch linux 时的网络环境没有代理,那么在安装结束后,需要尽快更换一个非威权国家的镜像源来使用。如下列举一些较为优质的国际源。

    1
    2
    3
    4
    5
    Server = https://mirror.archlinux.tw/ArchLinux/$repo/os/$arch   #东亚地区:中华民国
    Server = https://mirror.0xem.ma/arch/$repo/os/$arch #北美洲地区:加拿大
    Server = https://mirror.aktkn.sg/archlinux/$repo/os/$arch #东南亚地区:新加坡
    Server = https://archlinux.uk.mirror.allworldit.com/archlinux/$repo/os/$arch #欧洲地区:英国
    Server = https://mirrors.cat.net/archlinux/$repo/os/$arch #东亚地区:日本
  9. 安装系统

    必须的基础包

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

    注意,目前需要首先确保等待 pacman-init.service 服务启动后,才能执行 pacstrap 或 pacman 命令安装包,否则会引发错误使得安装过程无法进行。使用systemctl status pacman-init.service命令来检查当前服务状态。

    必须的功能性软件

    1
    2
    pacstrap /mnt dhcpcd iwd vim bash-completion btrfs-progs    
    #一个有线所需(iwd也需要dhcpcd) 一个无线所需 一个编辑器 一个补全工具 一个Btrfs文件系统工具集
  10. 生成 fstab 文件

fstab 用来定义磁盘分区

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

复查一下 /mnt/etc/fstab 确保没有错误,此时可以手动修改 /mnt/etc/fstab 添加挂载选项

1
cat /mnt/etc/fstab
  1. change root

    把环境切换到新安装的系统

    1
    arch-chroot /mnt
  2. 时区设置

    设置时区,在 /etc/localtime 下用 /usr 中合适的时区创建符号连接。如下设置上海时区

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

    随后进行硬件时间设置,将当前的正确 UTC 时间写入硬件时间

    1
    hwclock --systohc
  3. 设置 Locale 进行本地化

    Locale 决定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。

    首先使用 vim 编辑 /etc/locale.gen,去掉 en_US.UTF-8 所在行以及 zh_CN.UTF-8 所在行的注释符号(#)。

    1
    vim /etc/locale.gen

    然后使用如下命令生成 locale

    1
    locale-gen

    最后向 /etc/locale.conf 导入内容

    1
    echo 'LANG=en_US.UTF-8'  > /etc/locale.conf
  4. 设置主机名

    首先在/etc/hostname设置主机名

    1
    vim /etc/hostname

    加入你想为主机取的主机名,这里比如叫 myarch。

    接下来在/etc/hosts设置与其匹配的条目。

    1
    vim /etc/hosts

    加入如下内容

    1
    2
    3
    127.0.0.1   localhost
    ::1 localhost
    127.0.1.1 myarch

    某些情况下如不设置主机名,在 KDE 下可能会存在网络情况变更时无法启动 GUI 应用的问题,在终端中出现形如No protocol specified qt.qpa.xcb: could not connect to display的错误,这种情况较为少见。

  5. 安装微码

    1
    2
    pacman -S intel-ucode   #Intel
    pacman -S amd-ucode #AMD
  6. 安装引导程序

    1
    2
    3
    4
    pacman -S grub efibootmgr  
    #安装引导程序。grub 是启动引导器,efibootmgr 被 grub 脚本用来将启动项写入 NVRAM 。
    grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
    #将 GRUB 安装到 EFI 分区

    接下来编辑/etc/default/grub 文件,去掉GRUB_CMDLINE_LINUX_DEFAULT一行中最后的 quiet 参数,同时把 log level 的数值从 3 改成 5。这样是为了后续如果出现系统错误,方便排错。同时在同一行加入 nowatchdog 参数,这可以显著提高开关机速度。

    1
    vim /etc/default/grub

    最后生成 GRUB 所需的配置文件

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

    若在物理机安装:

    使用 N 卡的同学需要注意,KDE6 默认使用 wayland session 为默认,如果你需要使用 wayland,则需开启 DRM。同样编辑 /etc/default/grub 文件,在GRUB_CMDLINE_LINUX_DEFAULT一行中最后的加入参数:nvidia_drm.modeset=1

    我们在之前的命令中指定了 bootloader-id 为 GRUB,这一般不会出现问题。然而在某些主板安装完成后,你会发现没有 nvme 启动条目。这是因为某些主板的 UEFI 固件在显示 UEFI NVRAM 引导条目之前,需要在特定的位置存放可引导文件,不支持自定义存放 efi 文件。解决方式是使用--removable 参数解决一些主板 NVRAM 的兼容性问题。

    1
    2
    grub-install --target=x86_64-efi --efi-directory=/boot/efi --removable
    grub-mkconfig -o /boot/grub/grub.cfg

    除此之外,如果你的主板是一些较老的型号,如 intel 9 系列以下或者较老 AMD 的主板,它们很可能不支持从 nvme 启动系统,虽然可以通过修改 BIOS 加入 NVME 支持模块来解决,但这不在本文讨论范围内。

  7. 添加 root 密码

    1
    passwd
  8. 安装 openssh 服务和 networkmanager 服务并设置开机自启

    1
    2
    3
    4
    pacman -S openssh
    pacman -S networkmanager
    systemctl enable sshd
    systemctl enable NetworkManager
  9. 完成安装

    1
    2
    3
    exit                # 退回安装环境#
    umount -R /mnt # 卸载新分区
    reboot # 重启

    至此,无图形化 ArchLinux 系统安装完成。

    在物理机安装的同学注意,重启前要先拔掉优盘,否则你重启后还是进安装程序而不是安装好的系统。重启后,开启 dhcp 服务,即可连接网络

    1
    2
    systemctl start dhcpcd  #立即启动dhcp
    ping www.gnu.org #测试网络连接

    若为无线链接,则还需要启动 iwd 才可以使用 iwctl 连接网络

    1
    2
    3
    4
    5
    6
    7
    systemctl start iwd #立即启动iwd
    iwctl #和之前的方式一样,连接无线网络
    device list #列出设备名,比如无线网卡看到叫 wlan0
    station wlan0 scan #扫描网络
    station wlan0 get-networks #列出网络 比如想连接YOUR-WIRELESS-NAME这个无线
    station wlan0 connect YOUR-WIRELESS-NAME #进行连接 输入密码即可
    exit #成功后exit退出

    archlinux 在 2021 年 4 月在安装镜像中内置了一个安装脚本,提供一些选项,即可快速安装。其和所有一键安装脚本类似,提供自动化,且不灵活的安装过程。不建议使用这种安装脚本,除了不灵活的原因,初学者也无法在这种安装过程中学到任何东西。如果你的确需要快速启动一个基础的 archlinux 环境,那么可以尝试此脚本。

  10. 示例:使用 pacman 安装 fastfetch

    1
    2
    pacman -S fastfetch	#安装
    fastfetch #运行


Arch Linux 无图形化操作系统安装指南
https://wxwdaydayup.top/Arch Linux 无图形化操作系统安装指南/
作者
Nail Clipper
发布于
2025年3月2日
许可协议