VMware Workstation 17 Pro上的Arch Linux安装详解

前言

我在自己安装了Arch到笔记本上后尝试安装到VMware中,但我看到的教程可能有点过时或不太正确,所以我照着archlinux 简明指南文档编写了这篇教程,在开机后的步骤和物理机的装机可以通用,在安装时确保网络通畅,因为Arch的安装需要联网下载一些软件包和其他的依赖。

一、前置准备(镜像、虚拟机创建)

1.1 下载镜像

华为开源镜像站上下载最新的Arch Linux镜像,点击下载。
华为开源镜像站
然后在下载路径上看到这个镜像文件。
Arch Linux镜像文件信息
记住文件的位置,下面要用到。

1.2 在VMware中创建虚拟机

打开VMware,点击创建虚拟机。
创建虚拟机
选择典型,点击下一步。
创建虚拟机 典型
选择从镜像创建,点击浏览选择刚才下载的镜像,然后点击下一步。
选择镜像
客户机操作系统选择Linux,版本选择其他 Linux 6.x 内核 64 位,然后点击下一步。
选择客户机操作系统

添加一个虚拟机名称,用于在VMware中显示,我这里就写了Arch Linux,然后点击下一步。
虚拟机命名
输入磁盘大小,如果介意可以只分配20GB甚至更小,但要留足至少10GB用于安装系统文件和虚拟机内的操作,再预留运行内存x2的容量用于创建swap分区,不建议将虚拟硬盘分为多个文件,完成后点击下一步。
硬盘设置
到这一步就要分配运行内存和CPU了,点击自定义硬件。
创建运行配置
我的电脑配置较高,所以我分配的比较豪横,建议分配1核2GB(内存大小在下文有关联,修改时需要注意)
设置完硬件资源后点击关闭。
硬件资源
点击完成以创建虚拟机。
完成虚拟机创建

完成虚拟机创建后不要急着开机!!!

1.3 设置虚拟机的UEFI引导

虚拟机创建完成后的界面如下,点击编辑虚拟机设置
虚拟机
点击 选项 -> 高级 -> 固件类型 -> UEFI -> 确定,操作流程如下。
修改为UEFI
现在才算真正的完成了虚拟机创建!可以开始安装系统了。

二、启动系统与系统状态备份

2.1 启动虚拟机

点击开启此虚拟机进行开机。
开机
进入这个界面后如果不进行操作会默认选第一项,直接放着不管就行,如果不想等,可以在虚拟机内点击回车。
引导界面
在一阵命令行滚动后看到这个界面就可以开始操作了。
进入系统

2.1.0 外部链接

虚拟机内没法直接粘贴命令,我们可以通过邪修的方式将部分步骤提前,用外部命令行就可以边看本教程边粘贴命令到虚拟机外的命令行上,简化Arch Linux安装

我的物理机是Windows 11,所以我选择使用powershell的ssh链接到虚拟机内。

  1. 首先测试外部链接。
ping www.csdn.com

网络联通检测
如果是像图中一样出现了一些链接的信息就直接打断,证明网络没有问题,跳过以下的网络链接部分。

  1. 链接网络
iwctl # 进入交互式命令行
device list # 列出无线网卡设备名,比如无线网卡看到叫 wlan0
station wlan0 scan # 扫描网络
station wlan0 get-networks # 列出所有 wifi 网络
station wlan0 connect wifi-name # 进行连接,注意这里无法输入中文。回车后输入密码即可
exit # 连接成功后退出

输入iwctl进入命令行交互模式,准备进行网络链接。
iwctl
输入 device list 显示所有无线网卡的设备名。由于我是虚拟机进行演示的,所以没有无线网卡,如果的话名字就在第一列
无线网卡显示

后面与网络链接有关的命令都要用到设备名称!!!

使用station wlan0 scan进行网络扫描,此处的wlan0替换为实际的name(上图中圈出来的实际值);
接着使用station waln0 get-networks显示附近的WiFi;
看到熟悉的WiFi名字后使用station wlan0 connect WiFiWiFi这个单词换成实际的WiFi名;
在链接命令输入后需要输入密码,特别注意的是这个状态是仅英文输入的;
链接成功后就可以输入exit退出这个状态了。
再次使用ping命令测试链接,此时应该就是可以联网的状态,可以进行后续的链接操作了。

  1. 设置root的密码
    输入passwd回车,然后输入密码,此处的密码是不显示的,所以放心大胆的输入进行了。
    修改root密码
  2. SSH链接
    使用ip addr命令显示IP地址
    显示Arch Linux的IP
    图中的显示的IP是192.168.220.142,这个IP将会用于在外部链接时使用。
    在Windows上使用Win+R快捷键输入powershell后回车,打开Power Shell。
    ps
    在power shell中输入ssh root@192.168.220.142并回车。
    ssh链接
    输入yes并输入密码,密码不显示所以尽量不要出错,然后可以看到和在arch安装界面相似的输出。
    在这里插入图片描述

在这个状态下可以复制命令并在power shell窗口右键快速粘贴(Windows Power Shell使用小技巧)

2.1.1 禁用 reflector 服务

2020 年,archlinux 安装镜像中加入了 reflector 服务,它会自己更新 mirrorlist(软件包管理器 pacman 的软件源)。在特定情况下,它会误删某些有用的源信息。这里进入安装环境后的第一件事就是将其禁用。也许它是一个好用的工具,但是很明显,因为地理上造成的特殊网络环境,这项服务并不适合启用。

通过以下命令将该服务禁用:

systemctl stop reflector.service

通过以下命令查看该服务是否被禁用,按下 q 退出结果输出:

systemctl status reflector.service

确认输出为下面圈出来的部分后可以按Q退出

就用reflector服务
然后可以输入clear命令清除终端面板。

2.1.2 更新系统时钟

使用 timedatectl 确保系统时间是准确的。这一步不是可选的,正确的系统时间对于部分程序来说非常重要:

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

我的物理机时区是东八区,所以Arch Linux的UTC标准时间和物理机时区正好相差8小时。
时间检查

2.1.3 更换国内软件仓库镜像源加快下载速度

使用 vim 编辑器修改 /etc/pacman.d/mirrorlist 文件。将 pacman 软件仓库源更换为国内软件仓库镜像源:

vim /etc/pacman.d/mirrorlist

进入编辑后如下,将光标移动到红线处新增行,新增时只需要按o键就会在当前光标处向下新增一行并进入编辑模式。
镜像源配置
将以下镜像仓库添进配置文件,如下所示。

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 # 兰州大学开源镜像站

添加国内镜像
由于配置文件有优先级,所以需要将想用的镜像源放到最上面,然后按Esc在输入:wq保存并退出。

2.2 快照操作

在安装过程中可能会有一些小意外,建议初学者或刚从其他Linux换到Arch的读者每个命令前都对虚拟机先进行一次快照备份,可以回溯,增加容错。

在VMware中依次点击。
快照拍摄
在弹出框内输入快照名称,记录安装进度方便回退
快照
如果安装过程出事了,可以进行状态回退,回到拍摄快照的时候,现在再进行一些安装操作就可以放心大胆的玩了!

三、分区

在对硬盘分区时确保至少有以下几个成分

成分大小作用
boot大于265MB引导分区
swap运行内存大小x2swap交换分区,在系统休眠时保存内存中的数据到硬盘
其他部分剩余容量主要的系统存储,主分区

因为在arch安装时是将系统直接载入内存,所以在加载出系统可交互命令行就可以将启动U盘拔出,系统引导也是在此后创建的。

3.1 硬盘检查

我为了模拟物理机的硬盘情况,在VMware中修改了一下硬盘配置,感兴趣的可以同步一下我的设置,但这需要将第二步的操作重走一次,不建议初学者同步,根据后续操作灵活变通即可

3.1.0 模拟真实的一个nvme固态+sata硬盘进行装机的状态

在虚拟机设置中删除原有配置并点击添加
删除
无盘状态

创建硬盘
确认添加的是nvme(作为系统盘),点击下一步。
nvme
创建新的虚拟硬盘即可,点击下一步
在这里插入图片描述
这个容量可以小一点,一般在VMware中设置成32是足够的,点击下一步。
设置nvme
虚拟硬盘的文件在文件系统中的文件名无关紧要,但建议加上后缀nvme便于标识,然后店家完成就创建了一个系统盘。
nvme完成

在用同样的方式创建一个10GB大小的SATA盘模拟拓展,容量不重要,在于了解初始化,同样的在文件后面添加命名的后缀。
sata选择
sata添加

3.2 硬盘分区

使用lsblk命令检查硬盘状态,红框分别是SATA和NVME,后面需要用到他们的名字,所以我用蓝框标出了硬盘名称。
硬盘状态

我的情况是nvme(系统盘)+SATA(扩容盘),我的教程会将NVME作为系统盘进行分区,SATA不划分分区直接挂载。
先处理系统盘(NVME)

使用cfdisk /dev/nvme0n1对NVME进行操作,因为Linux的设备管理方案会将外部设备先显示在/dev目录下,所以前面的/dev被默认隐藏了,使用cfdisk /den/nvme0n1后进入以下界面。
nvme管理

如果有选择标签类型的界面就默认选择第一项GPT就行了,如下:
GPT

此时用键盘上的 在下方的操作中选择,目前又32GB的自由空间,选择[New]创建一个分区,调整容量为256MB,这个部分是给引导的(即/boot目录),如下:
uefi大小
回车后创建了一个256M的分区,然后选到[Type]上回车并选择第一项将这个分区修改为/boot的EFI引导分区,然后回车。
修改引导分区类型
选择EFI
现在的硬盘状态应该和下面一样:
创建出了EFI
使用 选择到自由空间再次新建,这次要创建的是swap分区,注意容量一定要是内存的两倍,当前虚拟机内存是4GB,所以要创建8G,步骤如下:
选择空间准备创建swap
分配大小给swap
创建出了swap分区
调整分区类型为swap
完成swap的创建
将剩余空间创建成主分区,步骤如下:
不修改大小,全部分配给主分区
以下是NVME创建完后的效果,选择写入[Write]
完成NVME的创建
cfdisk会弹出一个写入确认,输入yes回车即可。
写入NVME
写入后选择退出[Quit]再回车,完成了对NVME的分盘操作
退出NVME
对SATA进行NVME主分区一样操作即可,因为挂载是在安装完系统才进行的。
SATA

3.3 分区格式化

完成了3.2部分的分区后再次使用lsblk命令检查硬盘就能看到以下分区情况
分盘情况

3.3.1 EFI引导分区格式化

使用mkfs.fat命令对EFI分区进行格式化,根据实际情况对硬盘分区进行格式化,在我这里就是/dev/nvme0n1p1
格式化EFI

3.3.2 格式化swap分区

使用mkswap对swap分区进行格式化,在我这里的swap分区是/dev/nvme0n1p2
格式化SWAP分区

3.3.3 格式化主分区

使用mkfs.btrfs对存储的主分区进行格式化,这个命令可以带几个参数,也可以不带任何参数。

  • -L 添加标签,相当于在win中的卷名称本地磁盘,在进入系统后
    分区标签
  • -c 指定文件系统的压缩算法
  • -f 强制格式化设备(即使设备上已有文件系统)
  • -d 指定数据块的 RAID 策略。如 raid0、raid1、raid5、raid6、raid10、single(单盘)等。

系统盘
存储盘

四、挂载目录和子卷创建

为了创建子卷需要先将主分区挂载到/mnt下,在挂载前检查以下硬盘分区状态。
硬盘状态

4.1 挂载到目录

mount命令将硬盘挂载到目录上,挂载完成后可以检查以下目录大小确保挂载成功。

mount -t btrfs -o compress=zstd /dev/nvme0n1p3 /mnt
 # nvme0n1p3是这个分区策略的主要存储分0区
 # 需要根据实际情况调整
 # 挂载后使用df命令查看目录情况
 df -h # -h 选项会使输出以人类可读的单位显示

挂载结果
现在完成了目录的挂载,可以开始子卷创建和挂载了。

4.2 创建子卷

当前硬盘在初始化时使用的文件系统是btrfsbtrfs的子卷操作使用的命令是btrfs subvolume,我们需要根据前文提到的分区进行子卷创建

btrfs subvolume create /mnt/@ # 创建 / 目录子卷
btrfs subvolume create /mnt/@home # 创建 /home 目录子卷

创建完成应该是这样的,在使用btrfs subvolume检查子卷状态:

btrfs subvolume list -p /mnt

应该会有以下输出:
子卷创建和子卷状态检查

我的swap创建属于失误,读者不需要创建swap子卷

现在子卷创建完成,我们需要先卸载掉硬盘,才能进行子卷的挂载。

umount /mnt

4.3 挂载子卷

现在的目录中没有挂载硬盘,系统还完全在内存中,需要将刚才创建的子卷挂载到目录上,我们可以在mount命令中使用--mkdir命令让挂载操作自动创建挂载目录。

# 挂载 / 根目录目录
mount -t btrfs -o subvol=/@,compress=zstd /dev/nvme0n1p3 /mnt
# 创建并挂载 /home 用户主目录
mount --mkdir -t btrfs -o subvol=/@home,compress=zstd /dev/nvme0n1p3 /mnt/home
# 创建并挂载 /boot 目录
mount --mkdir /dev/nvme0n1p1 /mnt/boot
# 挂载交换分区
swapon /dev/nvme0n1p2

目录挂载
将SATA盘挂载到/mnt/elisya目录,在检查一下目录情况。
全部挂载

五、安装Linux系统内核以及基础软件

5.1 内核安装

pacstrap /mnt base base-devel linux linux-firmware btrfs-progs
  • base 系统基础组件,用于运行基本命令。
  • base-devel 开发编译工具链,用于源码编译。
  • linux 默认 Linux 内核。
  • linux-firmware 硬件固件支持,提高设备兼容性。
  • linux-headers 内核头文件,用于编译内核模块。(可选,非开发者无需这个部分)
  • btrfs-progs Btrfs 文件系统管理工具。

输入上面的命令后可以看到这样的输出:
安装内核
在等待一阵后看到以下结果:
完成内核安装

如果提示 GPG 证书错误,可能是因为使用的不是最新的镜像文件,可以通过更新 archlinux-keyring 解决此问题

pacman -S archlinux-keyring

5.2 基础软件安装

使用以下命令安装一些基础系统管理和使用的软件。

pacstrap /mnt networkmanager vim sudo bash bash-completion
  • networkmanager 网络管理
  • vim 在终端编辑文件的文件编辑器,建议单独学习vim的用法
  • sudo root权限工具,对Linux有经验的应该都知道sudo的重要性
  • bash 终端命令行执行工具
  • bash-completion bash配套的,加上就行了
  • git(可选)项目版本管理

基础软件安装
安装成功的输出大概是以下的样子:
基础软件安装成功
到这一步,Arch Linux最核心的系统层已经安装完成了,这个时候适合拍摄一个虚拟机快照记录以下还活着的虚拟机。

六、生成 fstab 文件

  1. fstab 用来定义磁盘分区。它是 Linux 系统中重要的文件之一。使用 genfstab 自动根据当前挂载情况生成并写入 fstab 文件:

    genfstab -U /mnt > /mnt/etc/fstab
    
  2. 复查一下 /mnt/etc/fstab 确保没有错误:

    cat /mnt/etc/fstab
    

    在这里插入图片描述
    现在可以正式的进入系统了,这些操作做完后就是在当前这个红色root中最后的时光了(雾)。

七、进入系统内的必要设置

现在需要输入arch-chroot /mnt进入到arch中;
效果如下,会看到用户名和主机已经被方括号包起来了。
进入arch

7.1 设置主机名与时区

现在的主机名是默认的,没有设置的状态,可以通过以下命令设置主机名。

echo "Arch-Linux" >> /etc/hostname

设置主机名
主机名需要重新进入终端才会应用,先不管,继续使用下面的命令进行时区设置。

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

设置时区

7.2 硬件时间设置

使用如下命令将系统时间同步到硬件时间:

hwclock --systohc

同步硬件时间

7.3 设置系统语言

Locale 决定了软件使用的语言、书写习惯和字符集。

编辑 /etc/locale.gen,去掉 en_US.UTF-8 UTF-8 以及 zh_CN.UTF-8 UTF-8 行前的注释符号(#):

vim /etc/locale.gen # 编辑语言生成配置文件

进入后输入/进行搜索:
在这里插入图片描述
然后回车并按一下Esc,将光标移到行首时按下键盘上的Delete,中文行也是一样的操作,最终显示应该是没有注释的样子,如下(下图中仅显示了中文的部分):
效果
如果设置完成后可以按下键盘上的Esc再输入:wq保存并退出。
使用locale-gen命令生成语言文件。

locale-gen

生成语言文件
/etc/locale.conf 输入内容:

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

7.4 安装微码

通过以下命令安装对应芯片制造商的微码:

pacman -S intel-ucode # Intel
pacman -S amd-ucode # AMD

不是两条都需要执行!!!
选择你的CPU对应的那一行执行安装即可
我的是蓝U,所以是第一行
出现以下的命令时输入y并回车就像了,这个只是安装确认
安装确认

7.5 安装引导程序

现在的系统还是在内存里面呆着,需要安装引导在下一次开机时自动载入系统,所以需要安装引导程序。

  1. 安装相应的包:

    pacman -S grub efibootmgr
    

    📑 命令参数说明:
    -S 选项后指定要通过 pacman 包管理器安装的包:
    grub —— 启动引导器
    efibootmgr —— efibootmgrgrub 脚本用来将启动项写入 NVRAM

  2. 安装 GRUB 到 EFI 分区:

    grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH
    

📑 命令参数说明:
--efi-directory=/boot —— 将 grubx64.efi 安装到之前的指定位置(EFI 分区)
--bootloader-id=ARCH —— 取名为 ARCH,非必须参数

引导安装

  1. 接下来使用 vim 编辑 /etc/default/grub 文件:

    vim /etc/default/grub
    

    进入vim后按下键盘上的字母A进入编辑模式
    修改前:
    grub修改前
    修改后(AMD版):
    AMD grup
    修改后(Intel版):
    Intel grup
    以上是有区别的部分,在文件末尾最后一行注释需要删除:
    修改前:
    末尾
    修改后:
    grup
    最后按下Esc并输入:wq保存并退出。

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

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

    最后的结果会是以下这样
    生成grup的配置项

ℹ️ 提示

  1. 在某些主板安装完成后,你会发现没有启动条目。这是因为某些主板的 UEFI 固件在显示 UEFI NVRAM 引导条目之前,需要在特定的位置存放可引导文件,不支持自定义存放 efi 文件(如微星 Z170-A Gaming PRO)。解决方案是在默认启动路径下安装 GRUB。重新插入安装优盘,按原先顺序挂载目录(不需要再次创建文件夹了),chroot/mnt,然后你可以重新用 --removable 安装grub2,如下命令所示。只有安装完成后你的主板不出现启动条目才需要尝试如下命令,正常安装无需执行。如有需要可以参考 ArchWiki 对应内容
	grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH --removable
  1. os-prober 在 chroot 环境中可能无法正常运作。如果遇到这种情况,重启并引导进入系统后再次尝试生成配置文件。

现在完成了系统的全部安装,只需要记录快照后进行以下操作即可,建议现在再重新设置一次root用户的密码:

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

重启后看到这个界面就是arch安装成功了:
grup引导界面
这个是引导的进入界面,输入用户名和密码就可以登入arch进行使用了。
登录
然后在执行以下命令让网络服务开机自启即可开机联网。

systemctl enable --now NetworkManager

此时还只有命令行,对于大多数用户都不太友好,我们还需要图形化桌面的安装,我会另外写文章讲述桌面的安装,因为桌面可以有多个选择,所以是分支,链接会在我将桌面安装的教程写完后贴到此处。
GNOME桌面环境安装(需要完成下面部分的非root用户创建步骤)

八、创建非root普通用户

  1. 通过以下命令添加用户,比如新增加的用户叫 myusername:

    useradd -m -G wheel -s /bin/bash myusername
    

    📑 命令参数说明:

    • -m 创建用户的同时创建用户家目录
    • -G 选项后指定附加组
    • wheel —— wheel 附加组可 sudo 进行提权
    • -s 选项后指定 shell 程序
    • myusername —— 用户名(请自定义,但不要包含空格和特殊字符)
  2. 通过以下命令根据提示设置新用户 myusername 的密码:

    passwd myusername
    

    ℹ️ 提示
    弱密码已经不被接受,请设置一个较为复杂的密码,如 i_love_archlinux。

    创建非root账户并登入到非root账户
    再设置一下root的默认编辑器

    # 写入环境变量
    echo "export EDITOR='vim'" >> ~/.bash_profile
    # 检查是否成功
    cat ~/.bash_profile
    # 刷新文件,让配置立即生效
    source ~/.bash_profile
    

    修改编辑器
    然后需要让wheel用户组拥有sudo的执行权

    # 进入配置文件
    visudo
    

    再使用/wheel搜索wheel所在的那一行,如下:
    wheel所在
    修改成下面这样(取消wheel的注释):
    修改wheel
    最后保存并退出,下一次启动的时候就可以用非root进入了!

附录:参考资料

Arch Linux简明指南
Arch Linux Wiki

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值