- A+
ArchLinux Vmware安装指北
在本文开始之前,首先允许我提前声明一点,Arch Linux的安装并不算难,但是绝对也算不上简单,中间的安装可能会遇到很多问题,本篇文章不能保证完全贴合你的真实机器环境,但是我会在我安装过程中遇到的一点点小问题都说出来,给大家避个坑,这里我安装Arch的时候参考的文章是https://arch.icekylin.online/guide/rookie/basic-install,大家也可以一并参考。
现在我会按照这篇文章的流程,开始说我是如何安装的。那么接下来,介绍一下需要的安装环境
-
Windows
-
VMware虚拟机
-
Vmware的NAT网络连接模式
-
一个清醒的大脑
-
一杯茶或者咖啡
毕竟是安装操作系统,第一步肯定获得Arch Linux操作系统的镜像包,关于其镜像包,由于官网给我们的是磁链和BT文件,所以网络环境和软件环境好的同学可以使用官网的下载方式,记得用BT的要做种哈,人人为我,我为人人。条件不允许的同志,可以选择使用镜像站来下载;这里贴出官网的下载方式和镜像站
官网: magnet:?xt=urn:btih:0cd42065571809961e9661db2123a87d77c33964&dn=archlinux-2024.07.01-x86_64.iso(磁链) https://archlinux.org/releng/releases/2024.07.01/torrent/(BT) 镜像站(阿里): https://mirrors.aliyun.com/archlinux/iso/2024.05.01/archlinux-2024.05.01-x86_64.iso
下载之后记得对比文件hash值(当然你不比较也可以,这一步只是确保我们使用的镜像是否是完整无损的),在官网的https://archlinux.org/download/页面即可找到镜像包的hash值。
新建虚拟机
对比完hash值确定文件是完整无损的之后,我们即可进入安装阶段,在安装之前,我们先来创建一个新的虚拟机。(如果这里你会,请跳过这部分)
这里我们选择典型即可,没有必要去自定义,典型就够用,随后下一步
随后选择我们的镜像文件,下一步
这里选择Linux-其他Linux 6.x内核64位,下一步
这里可以给我们的虚拟器来起一个名字,我们可以将其命名为你喜欢的任意名字,这里我使用ArchLinux作为这台虚拟机的名字;这里的“位置”指的是这台虚拟机的存放位置,建议脱离C盘去存放虚拟机。下一步
这里我们选择将虚拟磁盘文件储存为单个文件,方便后续管理,大小设置为20G。下一步
这里我们点一下自定义硬件,调整一下磁盘运行内存的大小,1~2GB均可,依照个人计算器情况来给即可,安装过程中建议不要低于1GB,取高不取低。网络控制器选项使用NAT,随后确定。一切完毕之后,我们点击一下我们的Arch
当显示为如此界面时,我们的基本配置算是完成了
正如我开头所说,我会按照我给出的文章的步骤来安装并且帮大家避开我安装时的坑,所以应该会有大量的步骤是和链接中师傅的文章相同,特此告知。
安装Arch
0.必要的设置项&一堆可能有点用的闲话
在安装之前,首先不要急着启动Arch,我们先到Arch虚拟机的储存位置修改一下.vmx文件,使用UEFI来引导系统启动。
在左侧窗格右键我们的Arch,选择打开虚拟目录
找到.vmx文件,使用记事本打开
在其中添加一行条目,firmware=”efi”,随后保存即可。随后我们再来启动Arch
点击开启此虚拟机即可开启我们的Arch
启动后如果显示为这样的界面,说明UEFI引导生效,选择第一项,我们来开始安装Arch
眼尖的朋友可能会发现,arch启动的时候这里有一个SSH的守护进程被启动了,也就是说我们安装Arch的时候是完全被允许使用SSH来远程连接的,关于我为什么要提这个问题,因为我们安装的时候是无法在虚拟机中粘贴的,如果我们能够使用物理机Shell工具远程连接到Arch的安装进程上,就可以正常的来粘贴命令了,这样的话将会起到事半功倍的效果。如果你没有相关的工具,那么也不影响后续的操作;如果你有,请使用root@xxx.xxx.xxx.xxx来进行连接,ip a命令可以查看Arch的IP,passwd可以修改root的密码。(即便如此,我还是建议从来没有安装过Arch的同志们手动敲一下命令,以便更深入的去理解命令的含义和Linux的内核;如果你是一个安装老手,那么这个方法将帮助你快速对Arch进行安装<说实话老手还会看这篇文章吗,wwwwwwwwww>)
ookk,闲话少说,基本的配置完成,我们还是步入正轨来安装Arch吧
1.首先来禁用reflector服务
systemctl stop reflector
如果执行没有报错,恭喜你,禁用成功了
2.随后来确保一下我们的确是处在UEFI的引导模式下
ls /sys/firmware/efi/efivars
如果能够输出一堆文件名,说明这里处在UEFI引导模式下,可以进行下一步操作
如果发生报错,提示文件不存在或者文件为空,说明你没有使用UEFI引导启动,请回到本小节开头位置学习如何修改.vmx文件,使Arch在UEFI模式下被引导启动。
3.连接网络
原文写这一步主要面向的是无线网络用户,这里由于我们使用的是虚拟机的虚拟网卡,这步可以直接跳过
4.测试网络状态
curl www.baidu.com
如果能够输出东西,有一堆HTML标签等等;而不是网络不可达、连接超时、不能连接到服务器、找不到主机等等报错,说明网络无异常,报错示例:
网络无异常的话我们来继续
5.更新系统时钟
正如原文所说,系统时间的准确是十分重要的,我们的SSL证书等等以及例如OTP等等很多服务,都是要建立在时间准确的前提下的,所以这一步是至关重要的。
使用命令同步系统时间
timedatectl set-ntp true
如果没有报错,说明执行成功,可以使用
timedatectl status
来查看同步后的时钟状态信息
=> arch时间
=> 我的物理机系统时间
由于我们国家处于东八区,这里的Time zone给出的是UTC+0,所以只要将其时间加上8H即可得出我们的时间,如果计算后的时间和我们的实际时间基本相吻合,那么这里就可以继续操作了(由于我截图中间有点操作时间,实际上计算过后时间是基本分毫不差的)
6.更改软件仓库下载源
这一步相信经常使用Linux的同志们都很清楚了,由于国外的软件仓库物理上距离我们就远,再加上各种各样的原因,我们下载软件包的时候,需要使用国内的下载镜像站来加速我们的下载,这里镜像站有很多,我们使用原文中给出的四个就完全够用了
运行命令,使用vim来修改软件仓库
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
添加完成之后,我们保存退出即可
(没用过vim的同志看过来,方向键可以调整光标位置,按i键之后即可进入编辑模式,此时可以写入内容,写入完成之后按下esc退出编辑模式,随后按下冒号<真的要按下冒号,要使用shift那种>,输入wq按回车即可保存退出;如果你嫌wq两个字母麻烦,可以直接输入x,随后回车退出,同样也是保存退出)
仓库源修改完毕之后,我们就可以继续下一步的操作啦
7.分区和格盘
安装系统必备的一步了属于是,由于这里我们是使用新开虚拟机操作,顾虑不用很多,不会刷写到我们物理机的磁盘。但是在这里我还是提一嘴嗷,数据无价,请谨慎操作。
使用命令
lsblk
查看一下我们当前的磁盘状态
可以看到我们分了20G的盘就在这里,我们要操作的就是这个盘,记住了,他叫做sda,这一步很重要,不要搞错了名字。(如何判断我们的盘是哪一个=>你新建虚拟机的时候分了多少的空间,这里哪一个吻合就是哪一个)
记住我们要操作的盘叫做sda后,接下来我们使用cfdisk来进行磁盘操作,运行命令
cfdisk /dev/sda
这里的sda就是你要安装Arch系统的系统盘的名字,由于这里我是sda,我将继续使用sda做演示
运行之后会弹出这样的窗口,选择gpt回车
之后会进入这样的页面,操作之前,我来说一下这东西怎么用
可以看到下面有一排操作选择,我们可以使用左右方向键来移动。
-
第一个New为新建,也就是从某个空间中拿出多少空间作为新建磁盘区。
-
第二个Quit为退出,即退出这个软件
-
第四个Write为写入,即保存修改
剩下的选项我们用不到,暂且不做讲述,知道如何使用之后,我们来继续操作
我们在Free space(空闲空间)中选择New选项,回车即可弹出左下角的提示信息,这里是在询问我们需要分配多少空间出来,我们首先分一个Swap分区出来,这个分区有点类似于Windows的交换文件,这个分区的大小可以是你运行内存大小的60%左右,这里我是分了2G的运存给虚拟机,所以就是2G*0.6=1.2G,我们首先分1.2G出来
可以看到这里就分了1.2G出来,名为sda1;但是我们先不管分出来的1.2G,我们继续来分Free space。现在我们还剩18.8G,现在我们要分efi的引导区大小,理论来说efi的引导分区不会用太多空间,这里我有点强迫症,剩下的800MB都分给它吧,我留下一个整的18G。
使用方向键上下调节上侧选选项卡位置到Free Space,继续New 800M出来
随后剩下的全分出来
分完之后,我们回头捋一下,sda1是Swap、sda2是efi引导区、sda3是Linux系统区。这里一定要记住每个分区是干嘛的,后面需要用到这几个名字
捋完之后,我们不要退出,可以看到我们分好磁盘空间之后,下方的选项卡就变了,我继续来说一下我们会用到的选项
-
第一个Delete是删除当前所选磁盘,删除之后,其空间会返回到Free space中,如果分错了可以选择这个删除重新分配
-
第三个Quit是退出,不用多说了
-
第四个Type是调整磁盘类型,一会我们会用到,这里先不展开细说
-
第六个Write为将修改写入磁盘,相当与“保存”功能
了解完成之后,我们继续操作,选择sda1,使用type功能,回车
可以看到这里打开一个选单页面,这里我们向上移动方向键,将sda1设置为Linux swap,回车
可以看到这里成功修改了,随后按照同样的步骤,将sda2设置为EFI system将sda3设置为Linux filesystem(严格按照之前分盘的sda1为swap、sda2为efi引导、sda3为文件系统来分配type)
设置完成之后,我们来选择write将操作写入磁盘
可以看到这里有个提示,我们确认无误后输入yes(一定要输入完整的“yes”,不要缩写输入y,这样不会保存)
当下方提示“The partition table has been altered.”后,说明修改成功,我们就可以选择Quit来退出了
随后我们来确保操作成功,运行命令
fdisk -l
查看分区状态
如果这里显示的和你设置的相一致,说明磁盘的分盘就已经完成了。我们可以进行格盘了
首先我们来格式化efi分区,运行命令
mkfs.fat -F32 /dev/sda2 #sda2切换成你的efi分区盘,后面有关硬盘的操作不再强调,请按照你的实际来选择硬盘
随后格式化Swap分区
mkswap /dev/sda1
格式化Btrfs分区(格式化系统分区)
mkfs.btrfs -L arch /dev/sda3
这里-L选项后的arch可以自定义一个名字,这个名字将作为分区的LABLE,请不要使用空格和特殊字符,这里我以arch这个名字作为分区的LABLE
至此磁盘格式化完成,如果没有问题,就可以来进行下一步操作
强调一下,从现在开始,每个盘是干嘛的还是要记住,后面要用到,用不到了的时候我会说
8.操作Btrfs分区
首先我们来挂载Btrfs分区(系统分区)到/mnt下
mount -t btrfs -o compress=zstd /dev/sda3 /mnt
检查挂载情况
df -h
挂载完成之后,继续来创建Btrfs子卷,依次运行命令
btrfs subvolume create /mnt/@ btrfs subvolume create /mnt/@home
检查子卷状态,运行命令
btrfs subvolume list -p /mnt
如果显示出来了相关ID信息等等,即子卷创建成功,显示的数据可能和我会有些出入,属于正常现象。
子卷创建成功后,我们就可以卸载/mnt,挂载子卷了,卸载/mnt命令
umount /mnt
上述操作无误后进入下一步
9.挂载
注意,我们的挂载是有顺序的,请按照下面的命令和提示依次运行命令挂载分区
mount -t btrfs -o subvol=/@,compress=zstd /dev/sda3 /mnt #挂载根目录,请使用Linux文件系统盘(我的是sda3) mkdir /mnt/home mount -t btrfs -o subvol=/@home,compress=zstd /dev/sda3 /mnt/home #挂载/home用户家目录,请使用Linux文件系统盘(我的是sda3) mkdir -p /mnt/boot mount /dev/sda2 /mnt/boot #挂载/boot启动引导区,请使用efi盘(我的是sda2) swapon /dev/sda1 #挂载/swap交换分区,请使用swap盘(我的是sda1)
注意,上面的六条命令一条不要少,挂载完成之后可以使用df命令查一下系统分区和efi引导分区是否挂载完成,运行命令
df -h
如上是没有问题
使用free命令可以查看swap挂载情况,运行命令
free
显示出了Swap且空间大小和我们设置的相吻合,说明没问题
上述操作全部设置完毕且无误后,我们就可以安装系统了
10.安装系统
运行命令
pacstrap /mnt base base-devel linux linux-firmware btrfs-progs
安装基础包
当看到上面的提示,并且出现进度条在跑,开始下载东西后,说明这一步完成啦,接下来会进入一段等待时间,因为系统正在执行你的下载安装命令。现在你可以中途休息一下,喝杯茶或者咖啡(希望你准备的茶或者咖啡到这一步没有冷掉),起身走走,眺望一下远处保护保护眼睛,等待进度条跑完后再回来继续操作即可……
跑完之后,我们继续来操作,下一步依旧是安装,我们来安装一下其他必要的工具,运行命令安装vim、sudo、zsh和zsh-completions
pacstrap /mnt networkmanager vim sudo zsh zsh-completions
紧接着又会是一段进度条在跑,不过这个“进度条不长”,相比于刚才的很快就会跑完
安装完成之后,我们继续来操作,我们的系统还没有完全安装完毕
11.生成fstab文件
fstab文件时用来定义硬盘分区的重要文件,是必不可少的文件之一。由于我们之前已经挂载了重要的磁盘分区sda1、sda2和sda3,这里我们可以使用genfstab命令来根据挂载情况自动生成并且写入fstab文件,运行命令
genfstab -U /mnt > /mnt/etc/fastab
运行之后如果没有返回任何信息,说明执行成功,由于是自动生成,为了确保无误,我们来看一下fastab中的信息,运行命令
cat /mnt/etc/fastab
最后一次调用你关于sda的记忆,看看对应的是否正确,如果正确,那么这一步就算是完成了,可以进行下一步操作了
好了好了,现在你可以忘掉那几个sdaxxx具体谁都是干嘛的啦~
12.切换工作区域
在说切换之前,我这里先声明好,一切操作都不需要重启
我们使用arch-chroot命令来切换到我们安装好的Arch系统环境中,运行命令
arch-chroot /mnt
当我们运行之后,shell会变成如上样式,此时的/mnt目录其实就相当于我们新安装系统的根目录/
进入完成之后,我们即可进行下一步的配置操作
13.设置系统的主机名和时区
首先我们来设置主机名,运行命令
vim /etc/hostname
在其中写你喜欢的主机名即可,注意不要特殊字符,写完保存即可,这里我给主机起名叫Arch了
接下来设置hosts文件,运行命令
vim /etc/hosts
打开后默认是这样的,我们添加几条条目
127.0.0.1 localhost ::1 localhost 127.0.0.1 arch.localdomain arch
注意这里的Arch.localdomain Arch中的Arch为你的主机名,请根据实际情况更改(主机名区分大小写,注意添加的条目前面不要有#)
主机名处理完毕后我们来更改系统的时区,运行命令
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
这样时区就设置完毕啦,如果没有问题,就继续吧,我们的安装马上就要完成了
14.设置硬件时间
有点计算机知识的同志应该清除,主板是有BIOS的,这个东西中本身就有时间,我们设置硬件时间就是为了让BIOS硬件时间和操作系统所同步(个人理解);运行命令
hwclock --systohc
不要泄气,安装马上结束
15.设置地区偏好
我们知道每个地区都有自己看时间的习惯,我们习惯使用年/月/日,但是有的地方不以这种方式;同样的,还有字符集ASCII和UTF-8等等问题,这里我们为了让操作系统适合我们自己来使用,需要设置一下地区偏好,运行命令
vim /etc/locale.gen
去掉en_US.UTF-8 UTF-8和zh_CN.UTF-8 UTF-8前面的#
随后保存,运行命令
locale-gen
当出现如上提示,就说明命令运行成功了,随后继续运行
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
16.设置root密码、安装微码和设置引导程序
root密码好设置,直接passwd root即可,运行命令
passwd root
输入密码的时候会让你输入两次,一次为输入,一次为验证,且输入的时候不会显示信息,成功修改之后会显示如上提示信息
root密码设置完毕之后,我们可以继续安装微码了,运行下面的命令可以安装对应芯片制造商的微码,根据实际情况选择即可
pacman -S intel-ucode #Intel微码 pacman -S amd-ucode #AMD微码
我的CPU是intel的,所以选择了intel的微码,运行安装命令之后会出现上述提示,这里确认安装直接回车即可,随后耐心等进度条跑完
跑完之后我们就可以来安装引导程序了
运行如下命令来安装引导程序
pacman -S grub efibootmgr os-prober
一样的,等进度条跑完
跑完之后将GRUB安装到EFI分区,运行命令
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH
如果出现No error reported,恭喜,GRUB此时已经成功安装到EFI磁盘分区了。最后我们做一下启动的优化小操作,使用vim编辑/etc/default/grub文件,运行命令
vim /etc/default/grub
修改GRUB_CMDLINE_LINUX_DEFAULT一行,将末尾的quite去掉,添加nowatchdog,并且修改loglevel=5。修改后的图如下
随后保存,保存完毕之后运行命令
grub-mkconfig -o /boot/grub/grub.cfg
至此,引导制作完成
17.最后的最后,完成安装
如果你到了这一步,恭喜你,安装已经进入尾声了
运行命令
exit
退出安装环境
如上就已经成功退出了安装环境,随后卸载/mnt分区,运行命令
umount -R /mnt
最后的最后,我们来运行此次安装要执行的最后命令
reboot
重启进行完毕关机操作之后记得将CD文件断开连接,VMware的右下角右键CD图标可以直接断开连接
18.结束安装与连接网络
重启之后我们就可以正常引导进入Arch系统了
如果重启完毕之后显示了如上的界面,那么恭喜你,成功的安装了ArchLinux,接下来输入账户名回车,密码回车即可进入操作系统啦~
既然是Arch,怎么能不运行fastfetch命令呢?来,我们使用pacman安装一下,安装之前,我们先来启动一下Arch的networkmanager服务,否则Arch是没有网络的哦,以此运行下面的命令
systemctl start NetworkManager #启动NetworkManager systemctl enable NetworkManager #将NetworkManager设置为开机自启
或者直接运行这一条
systemctl enable --now NetworkManager #立即启动NetworkManager并将其设置为开机自启
运行完enable出现上面的提示说明启动完成
我们curl一下网站看看有没有网络
ok,可以看到现在网络连接问题也解决了
随后我们来安装fastfetch吧,使用pacman安装,运行命令
pacman -S fastfetch
安装完成了,来运行一下fastfetch吧
fastfetch
自此,你的ArchLinux就彻彻底底的安装完毕了,恭喜你走到了这一步!