VMware下ArchLinux的安装与配置
工具2025-10-12在 VMware 虚拟机里从零安装 Arch Linux:UEFI 启动、Btrfs 分区与子卷、GRUB 引导,到装好系统后的基础设置。Incohua
••4 分钟阅读
本文仅为作者记录备忘使用,还原作者安装时思路环境,实际配置请结合自身环境修正
前言#
作者在使用了 macOS 后,深感类 unix 系统的 gooood 之处,决定加入 Arch-Linux 神教,所以开始了这个折腾之旅。
由于早有 ArchLinux "难入门的耳闻",所以准备先在虚拟机上试一下,避免火葬场。
正文#
1. VMware 虚拟机安装#
真的以为我会写 VMware 怎么安装吗?
哈哈
补充一下:VMware 记得调整一下网络设置
编辑 -> 🛜虚拟网络编辑器
新建的虚拟机中,网络如果有问题的话,也要自己手动调整一下。 虚拟机 -> 设置 -> 网络适配器 参考教程
还有个槽点:
VMware 安装后,默认的启动方式应该是 BIOS 启动。 现在的挺多教程应该都是 UEFI 启动,所以要注意下(因为没注意看跟着教程翻车了)。
虚拟机 -> 设置 -> 选项 -> 高级 -> 固件类型 -> UEFI
2. ArchLinux 安装#
- 官方 Wiki:https://wiki.archlinux.org
- 官方 Wiki (CN):https://www.archlinuxcn.org
- 作者跟着的教程:https://arch.icekylin.online/guide/rookie/basic-install
1. 进入安装环境#
如果是 UEFI 启动的话,正常的启动是这样的:

2. 确定是否为 UEFI 模式#
作者这一步没有确认好,所以上一次的安装翻车了。
ls /sys/firmware/efi/efivars
3. 禁用 reflector 服务#
这里按照教程的原话:
2020 年,archlinux 安装镜像中加入了
reflector服务,它会自己更新mirrorlist(软件包管理器pacman的软件源)。在特定情况下,它会误删某些有用的源信息。 这里进入安装环境后的第一件事就是将其禁用。也许它是一个好用的工具,但是很明显,因为地理上造成的特殊网络环境,这项服务并不适合启用。
systemctl stop reflector.service
systemctl status reflector.service当然,有条件的宝宝可以配置一下代理。
什么? 你问我哪里来的代理? 没准翻翻我前面的文章能看出来点什么端倪。
export https_proxy=http://127.0.0.1:6152
export http_proxy=http://127.0.0.1:6152
export all_proxy=socks5://127.0.0.1:61534. 测试网络联通性#
这还用说吗哈哈(
ping www.baidu.com5. 更新系统时钟#
timedatectl set-ntp true # 将系统时间与网络时间进行同步
timedatectl status # 检查服务状态
6. 更换国内软件源#
输入以下命令进行编辑:
由于是虚拟机环境,所以这里图方便就直接编辑了。 生产环境建议先备份后操作!
vim /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 # 清华大学开源软件镜像站
Server = https://repo.huaweicloud.com/archlinux/$repo/os/$arch # 华为开源镜像站
Server = http://mirror.lzu.edu.cn/archlinux/$repo/os/$arch # 兰州大学开源镜像站7. 硬盘分区#
7.1 分区#
这里按照教程使用 Btrfs 文件系统。
我们按照 ArchWiki 上的教程,一般来说需要三个分区(根目录和用户主目录视作一个就好了):
/根目录/home用户主目录/bootEFI 分区[SWAP]分区
我们首先使用 lsblk 进行查看下硬盘:

我们需要使用 nvme0n1 这一硬盘安装。
cfdisk /dev/nvme0n1创建三个分区如下:

之后使用 fdisk -l / lsblk 进行查看分区的情况:

7.2 格式化并创建 Btrfs 子卷#
首先格式化 EFI 分区:
mkfs.fat -F32 /dev/nvmexn1p1虚拟机才可以这么干,双系统一般 EFI 分区已经有系统的文件了。
格式化 Swap 分区:
mkswap /dev/nvmexn1p1
格式化 Btrfs 分区:
mkfs.btrfs -L arch /dev/nvme0n1p3
创建子卷,把 Btrfs 分区挂载到 /mnt 下, 再使用 df -h 查看下挂载情况:
mount -t btrfs -o compress=zstd /dev/nvme0n1p3 /mnt
通过以下命令创建两个 Btrfs 子卷,之后将分别挂载到 / 根目录和 /home 用户主目录:
btrfs subvolume create /mnt/@ # 创建 / 目录子卷
btrfs subvolume create /mnt/@home # 创建 /home 目录子卷
btrfs subvolume list -p /mnt # 查看子卷情况
子卷创建好后,将 /mnt 卸载掉,以挂载子卷:
umount /mnt8. 挂载#
挂载有顺序,需要从根目录开始挂载。
mount -t btrfs -o subvol=/@,compress=zstd /dev/nvme0n1p3 /mnt # 挂载 / 目录
mkdir /mnt/home # 创建 /home 目录
mount -t btrfs -o subvol=/@home,compress=zstd /dev/nvme0n1p3 /mnt/home # 挂载 /home 目录
mkdir -p /mnt/boot # 创建 /boot 目录
mount /dev/nvmexn1pn /mnt/boot # 挂载 /boot 目录
swapon /dev/nvmexn1pn # 挂载交换分区然后使用 df -h 查看挂载情况:

再使用 free -h 查看下 Swap 的情况:

9. 安装系统#
安装系统:
# 如果使用 btrfs 文件系统,额外安装一个 btrfs-progs 包
pacstrap /mnt base base-devel linux linux-firmware btrfs-progs安装基础组件:
pacstrap /mnt networkmanager vim sudo zsh zsh-completions10. 生成 fstab 文件#
fstab 用来定义磁盘分区。它是 Linux 系统中重要的文件之一。使用 genfstab 自动根据当前挂载情况生成并写入 fstab 文件:
genfstab -U /mnt > /mnt/etc/fstab检查一下:
cat /mnt/etc/fstab
11. 切换到新系统#
arch-chroot /mnt3. 新系统的设置#
1. 设置主机名与时区#
vim /etc/hostname
vim /etc/hosts设置时区:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime硬件时间设置:
hwclock --systohc2. 设置 Locale (语言)#
编辑 /etc/locale.gen 文件:
vim /etc/locale.gen取消以下行的注释:
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8然后生成 locale:
locale-gen向 /etc/locale.conf 输入内容:
echo 'LANG=en_US.UTF-8' > /etc/locale.conf3. 为 root 用户设置密码#
passwd root4. 安装引导程序#
安装引导程序对应的包:
pacman -S grub efibootmgr os-prober安装 GRUB 到 EFI 分区:
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH编辑 grub:
vim /etc/default/grub进行如下修改:
- 去掉
GRUB_CMDLINE_LINUX_DEFAULT一行中最后的quiet参数 - 把
loglevel的数值从3改成5。这样是为了后续如果出现系统错误,方便排错 - 加入
nowatchdog参数,这可以显著提高开关机速度
生成 GRUB 所需的配置文件:
grub-mkconfig -o /boot/grub/grub.cfg
5. 完成安装#
exit
umount -R /mnt
reboot6. 进入系统后的设置#
密码账号就是刚刚设置的。
当然,更推荐再创建一个非 root 用户进行操作。
systemctl enable --now NetworkManager # 启用网络
ping www.baidu.com
我们也可以安装一个"必玩"项目:
pacman -S fastfetch
恭喜你,已经安装好 ArchLinux 啦~
结语#
其实没什么想说的,只是在折腾的路上,记录一下自己的学习过程。
学习永无止境。
评论 0
按时间排序