Arch Linux 虚拟机安装指南

本指南将详细引导您在虚拟机中完成 Arch Linux 的安装与配置,并完整保留了操作过程中的详细步骤与说明。


一、准备工作

步骤 1:下载 Arch Linux ISO 镜像

首先,您需要从官方网站获取 Arch Linux 的安装镜像 (ISO 文件)。这是最安全可靠的来源。

如何选择下载链接?

在下载页面,向下滚动找到 “HTTP Direct Downloads” 部分。这里列出了全球各地的镜像服务器。为获得最佳下载速度,建议中国大陆用户选择 “China” 分类下的镜像站点,例如:

  • 清华大学开源软件镜像站: https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/latest/
  • 中国科学技术大学开源软件镜像站: https://mirrors.ustc.edu.cn/archlinux/iso/latest/

进入镜像站点后,点击以 .iso 结尾的最新文件(如 archlinux-2025.08.01-x86_64.iso)即可开始下载。

步骤 2:配置虚拟机

在您的虚拟化软件(如 VMware, VirtualBox)中创建一个新的虚拟机。以下是关键配置步骤的图文说明。

  • 操作系统类型与命名

操作系统类型选择
虚拟机命名

  • 处理器与内存

分配的核心总数不要超过您电脑的逻辑处理器上限。内存建议分配 4GB 或以上

处理器配置
内存配置
虚拟机设置

  • 硬盘

选择”创建新的虚拟磁盘”,建议容量为 50GB 或以上

硬盘配置

因为我们是新建的虚拟机,所以选择创建新磁盘,而不是使用现有磁盘。

创建新磁盘
磁盘容量设置

  • 完成创建

后续步骤若无特殊需求,保持默认推荐选项即可。

完成虚拟机创建
虚拟机创建完成

  • 加载ISO并启动

在虚拟机设置中,将下载好的 Arch Linux ISO 文件加载到虚拟光驱中,然后启动虚拟机。

加载ISO文件

注意: 启动时如果出现如下提示,点击”否”即可。

启动提示

完成以上设置后,启动虚拟机。


二、系统安装

步骤 1:启动进入安装环境

启动虚拟机后,会看到一个启动菜单。选择第一个选项 Arch Linux install medium,系统将自动加载并进入一个临时的命令行安装环境。

Arch Linux 启动菜单

步骤 2:验证网络连接

Arch Linux 的安装过程需要网络连接。在虚拟机中,网络通常会自动配置好。您可以通过 ping 命令来测试网络连通性:

1
ping archlinux.org

如果能收到来自服务器的回复 (reply),则说明网络正常。按 Ctrl+C 可以停止 ping 命令。

步骤 3:磁盘分区 (cfdisk)

这是整个安装过程中最关键也最容易出错的一步。我们将使用 cfdisk 这个相对友好的工具来为虚拟硬盘分区。

在终端中输入以下命令启动分区工具:

1
cfdisk /dev/sda

3.1 选择分区表类型

cfdisk 首先会要求您选择分区表类型。对于现代计算机和UEFI启动,gpt 是唯一正确的选择。直接按回车键确认即可。

选择分区表类型

3.2 创建分区

您现在会看到 cfdisk 的主界面。我们将创建两个最核心的分区:一个用于启动 (EFI),一个用于存放系统 (根分区)。

cfdisk 主界面

第一步:创建 EFI 启动分区

这个分区是启动系统所必需的。

  1. 确保 >> Free space (空闲空间) 这一行被选中(它默认就是选中的)。
  2. 在键盘上,使用左右箭头键移动到屏幕下方的 [ New ] 选项上,然后按 回车 (Enter) 键。
  3. 它会提示您输入分区大小 Partition size。请输入 512M 然后按 回车。(512MB 对于启动分区来说绰绰有余)。
  4. 创建后,您会看到一个新的分区 /dev/sda1。现在需要把它标记为启动分区。确保 /dev/sda1 这一行被选中,然后移动到下方的 [ Type ] 选项,按 回车
  5. 在弹出的类型列表中,使用上下箭头键找到并选中 EFI System,然后按 回车

做完这一步,您的屏幕看起来应该像这样: Device Size Type /dev/sda1 512M EFI System

第二步:创建根 (Root) 分区

这个分区用来存放整个操作系统。

  1. 使用向下箭头键,选中剩下的那一行 Free space (大约 49.5G)。
  2. 和刚才一样,移动到下方的 [ New ] 并按 回车
  3. 它会再次提示输入分区大小。这次我们想用掉所有剩余空间,所以直接按回车即可,不需要输入任何数字。
  4. 创建后,您会看到第二个分区 /dev/sda2。它的默认类型 Linux filesystem 就是我们想要的,无需更改

第三步:保存并写入更改 (最关键!)

到目前为止,所有的操作都还只是预演。必须执行”写入”操作才会真正生效。

  1. 移动到屏幕下方的 [ Write ] 选项,按 回车
  2. 它会用英文警告您,这个操作会把分区表写入磁盘。它会问 Are you sure you want to write the partition table to disk? (您确定要把分区表写入磁盘吗?)。
  3. 输入 yes 然后按 回车 确认。

写入分区表确认

当您完成以上所有步骤后,您的分区方案如下:

分区 (设备) 大小 (Size) 类型 (Type) 用途
/dev/sda1 512M EFI System 启动分区 (存放引导程序)
/dev/sda2 约 49.5G Linux 文件系统 根分区 (存放操作系统)

第四步:退出分区工具

  1. 移动到屏幕下方的 [ Quit ] 选项,按 回车
  2. 您将会退出 cfdisk 工具,并返回到黑色的命令行界面。

步骤 4:格式化分区和挂载

分区完成后,需要对它们进行格式化,然后挂载到指定目录。

  • 格式化 EFI 分区:

    1
    mkfs.fat -F32 /dev/sda1
  • 格式化根分区:

    1
    mkfs.ext4 /dev/sda2

关于交换空间 (Swap) 怎么办?

您不用担心。我们可以在系统安装完成之后,在根分区里创建一个swapfile(交换文件),这是比创建独立 swap 分区更现代、更灵活的方式。现在请先不要处理 swap 的问题。

接下来,开始挂载。

第一步:挂载根分区

这个命令告诉系统,/mnt 目录就是我们即将安装的 Arch Linux 的根目录 (/)。

1
mount /dev/sda2 /mnt

(执行这条命令后,如果没报错,就说明成功了)

第二步:创建启动挂载点

在刚刚挂载好的根目录里,创建一个叫 boot 的文件夹。

1
mkdir /mnt/boot

第三步:挂载 EFI 启动分区

将您的 EFI 启动分区 (/dev/sda1) 挂载到刚刚创建的 /mnt/boot 目录上。

1
mount /dev/sda1 /mnt/boot

第四步:检查挂载状态

当您完成以上全部三步操作后,可以输入以下命令来检查挂载状态:

1
lsblk

您应该会看到类似下面的输出,sda1sda2 都有了对应的 MOUNTPOINT (挂载点):

1
2
3
4
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 512M 0 part /mnt/boot
└─sda2 8:2 0 49.5G 0 part /mnt

如果您的输出和这个结构类似,就说明挂载圆满成功,您可以进行下一步了。

步骤 5:更新镜像列表(可选但推荐)

为了在安装基本系统时获得更快的下载速度,建议先更新软件源镜像列表,优先使用国内的服务器。

1
reflector --verbose --country China --age 12 --protocol https --sort rate --latest 6 --save /etc/pacman.d/mirrorlist

步骤 6:安装基本系统 (pacstrap)

现在,我们使用 pacstrap 命令将 Arch Linux 的核心软件包安装到刚刚挂载好的根分区 (/mnt) 中。

1
pacstrap -K /mnt base linux linux-firmware

关于安装过程中的警告信息:

您可能会在屏幕上看到许多黄色的 WARNING: Possibly missing firmware for module: ... 信息。

  • 这是什么? 这是因为 linux-firmware 包包含了海量硬件的固件,而安装程序检测到您的虚拟机环境并不需要其中大部分(例如服务器专用网卡的固件)。
  • 需要处理吗? 完全不需要。 这些警告是正常现象,可以安全地忽略,对您的系统没有任何影响。

三、系统配置

步骤 1:进入新系统 (arch-chroot)

安装完基本系统后,我们需要进入到这个新系统中进行配置。arch-chroot 命令可以让我们仿佛”登录”到 /mnt 目录下的新系统里。

1
arch-chroot /mnt

关键变化: 执行此命令后,您会发现命令提示符从 root@archiso ~ # 变成了 [root@archiso /]#。这个变化标志着您已经成功进入了硬盘上的新系统。从现在起,所有命令都将直接作用于您的系统。

步骤 2:设置时区

将系统时区设置为上海,并同步硬件时钟。

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

步骤 3:本地化 (Localization)

此步骤用于配置系统的语言和字符集。

  1. 安装文本编辑器:

    1
    pacman -S nano
  2. 编辑 /etc/locale.gen 文件:

    1
    nano /etc/locale.gen

    nano 编辑器中,您需要找到并取消注释(即删除行首的 #)以下两行:

    • en_US.UTF-8 UTF-8
    • zh_CN.UTF-8 UTF-8

    Nano 操作技巧:

    • 使用 Ctrl + W 搜索关键字(如 en_US.UTF-8)。
    • 使用方向键和退格键删除 #
    • 完成后,按 Ctrl + X 退出,程序会提示是否保存,按 Y 确认,然后按回车键确认文件名。
  3. 生成 Locale:

    1
    locale-gen
  4. 创建 locale.conf 文件:

    此文件用于设定系统的默认语言。这里我们设为美式英语。

    1
    echo "LANG=en_US.UTF-8" > /etc/locale.conf

步骤 4:设置主机名

主机名是您的计算机在网络中的名字。

1
echo "my-arch-vm" > /etc/hostname

您可以将 my-arch-vm 替换为您喜欢的任何名字。

步骤 5:设置 Root 用户密码

root 是系统的超级管理员用户,必须为其设置一个安全的密码。

1
passwd

按照提示,输入两次新密码。注意,输入时屏幕不会有任何显示,这是正常的安全机制。

步骤 6:安装并配置引导加载程序 (GRUB)

引导加载程序(Bootloader)是开机时第一个运行的软件,负责加载操作系统。

  1. 安装 GRUB 和相关工具:

    1
    pacman -S grub efibootmgr
  2. 部署 GRUB 到 EFI 分区:

    1
    grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
  3. 生成 GRUB 配置文件:

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

四、完成安装与首次启动

步骤 1:退出 Chroot 环境并关机

所有配置已完成。现在可以安全地退出并关机了。

  1. 退出 Chroot:

    1
    exit

    此时,命令提示符会恢复为 root@archiso ~ #

  2. 卸载分区:

    1
    umount -R /mnt
  3. 关机:

    1
    shutdown now

步骤 2:移除 ISO 并重启

在虚拟机完全关机后,务必在虚拟机设置中移除或断开 ISO 镜像文件,否则下次开机又会进入安装环境。

完成此操作后,重新启动虚拟机。

步骤 3:登录新系统

如果一切顺利,您将看到黑色的命令行登录界面。

  1. 输入用户名:login: 提示符后,输入 root,按回车。
  2. 输入密码: 输入您之前为 root 用户设置的密码,按回车。

成功登录后,您将看到 [root@my-arch-vm ~]# 这样的命令提示符。

恭喜!您已成功安装并登录了您亲手打造的 Arch Linux 系统。


五、网络配置故障排除

一、问题现象

在 Arch Linux 虚拟机完成基础安装后,执行以下操作时出现典型网络故障:

  1. 尝试更新系统时失败:

    1
    2
    3
    # pacman -Syu
    error: failed retrieving file 'core.db' from mirrors...
    warning: failed to retrieve some files
  2. 尝试进行域名解析时失败:

    1
    2
    # ping archlinux.org
    ping: archlinux.org: Temporary failure in name resolution

此时,系统虽然具备基础网络功能,但无法访问互联网资源,表现为软件源连接失败和 DNS 解析错误。


二、根本原因分析

通过分层排查,我们可以定位问题的根源:

网络层次 命令/操作 现象/输出 结论
应用层 pacman -Syu failed retrieving file 无法访问软件源
DNS 解析层 ping archlinux.org Temporary failure in name resolution DNS 配置缺失或错误
网络管理服务 systemctl status NetworkManager Unit NetworkManager.service could not be found 未安装网络管理工具
物理链路层 ip link show ens33: DOWN 网卡未被管理或处于关闭状态

核心矛盾:系统因未安装网络管理服务(如 NetworkManager)而无法自动配置网络;而安装网络管理工具又必须依赖网络连接。这形成了一个典型的”初始网络配置死锁”。


三、解决方案

我们将分三个阶段解决此问题:

  1. 第一阶段:手动启用 systemd-networkd 服务,建立临时网络连接。
  2. 第二阶段:解决 pacman 镜像源访问缓慢或失败的问题。
  3. 第三阶段:安装并切换到功能更强大的 NetworkManager 作为永久网络方案。

第一阶段:激活网卡并配置 systemd-networkd

这是解决问题的核心步骤。我们将手动激活网卡,并使用系统内置的 systemd-networkd 服务来自动获取 IP 和 DNS。

  1. 激活网络接口

    运行以下命令,将名为 ens33 的网卡从 DOWN 状态切换为 UP 状态。

    1
    ip link set ens33 up
  2. 创建网络配置文件

    使用 nano 编辑器创建一个新的网络配置文件。

    1
    nano /etc/systemd/network/20-wired.network

    提示:如果提示目录 /etc/systemd/network 不存在,请先创建它:mkdir -p /etc/systemd/network

  3. 写入配置内容

    在打开的 nano 编辑器中,输入以下内容。这会告诉系统对 ens33 接口使用 DHCP(动态主机配置协议)来自动获取网络配置。

    1
    2
    3
    4
    5
    [Match]
    Name=ens33

    [Network]
    DHCP=yes

    完成后,按 Ctrl+X 保存,接着按 Y 确认,最后按 Enter 退出。

  4. 启动网络与 DNS 服务

    启动 systemd-networkd (负责网络连接) 和 systemd-resolved (负责 DNS 解析) 两个核心服务。

    1
    2
    systemctl start systemd-networkd
    systemctl start systemd-resolved
  5. 建立永久网络连接

    要建立永久网络连接,需要启用服务以便在系统启动时自动启动:

    1
    2
    systemctl enable systemd-networkd
    systemctl enable systemd-resolved

    说明start 命令只在当前会话中启动服务,而 enable 命令会创建符号链接,使服务在系统启动时自动启动,从而建立永久网络连接。

  6. 配置 DNS 解析文件

    这是确保域名能被正确解析的关键一步。运行以下命令,将系统的 DNS 解析配置链接到 systemd-resolved 生成的配置文件。

    1
    ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
  7. 验证网络连接

    稍等几秒钟,然后测试网络。如果一切顺利,你应该能看到来自服务器的回应。

    1
    ping archlinux.org

    看到回应后,按 Ctrl+C 停止 ping。这表示临时网络已成功建立。


四、创建普通用户(推荐)

出于安全考虑,在日常使用中应避免以 root 用户身份登录系统。我们需要创建一个普通用户,并赋予其使用 sudo 命令获取管理员权限的能力。

创建用户账户

使用 useradd 命令创建一个新用户。我们以创建名为 myuser 的用户为例(请将 myuser 替换为您想要的用户名):

1
useradd -m -G wheel -s /bin/bash myuser

参数说明:

  • useradd:创建用户的命令
  • -m:非常重要!同时创建用户的家目录(通常是 /home/myuser)
  • -G wheel:将用户添加到 wheel 组,该组在 Arch Linux 中默认被配置为可以通过 sudo 获得 root 权限
  • -s /bin/bash:设置用户的默认登录 shell 为 bash
  • myuser:要创建的用户名

设置用户密码

创建用户后,必须为其设置密码:

1
passwd myuser

系统会提示您输入两次新密码。输入时密码不会显示出来。

现在,您已经成功创建了一个具有 sudo 权限的普通用户。

使用普通用户登录

完成用户创建后,您可以使用新创建的用户登录系统:

  1. 输入用户名:login: 提示符后,输入您创建的用户名(如 myuser),按回车。
  2. 输入密码: 输入您之前为该用户设置的密码,按回车。

成功登录后,您将看到 [myuser@my-arch-vm ~]$ 这样的命令提示符。

如果您需要执行管理员操作,可以使用 sudo 命令,例如:sudo pacman -Syu

通过使用普通用户账户,您可以提高系统的安全性,遵循最小权限原则。