ArchLinux Vmware安装指北

cnblogs 2024-07-19 16:45:01 阅读 63

ArchLinux Vmware安装指北

在本文开始之前,首先允许我提前声明一点,Arch Linux的安装并不算难,但是绝对也算不上简单,中间的安装可能会遇到很多问题,本篇文章不能保证完全贴合你的真实机器环境,但是我会在我安装过程中遇到的一点点小问题都说出来,给大家避个坑,这里我安装Arch的时候参考的文章是https://arch.icekylin.online/guide/rookie/basic-install,大家也可以一并参考。

现在我会按照这篇文章的流程,开始说我是如何安装的。那么接下来,介绍一下需要的安装环境

  • Windows

  • VMware虚拟机

  • Vmware的NAT网络连接模式

  • 一个清醒的大脑

  • 一杯茶或者咖啡

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

<code>官网:

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服务

<code>systemctl stop reflector

如果执行没有报错,恭喜你,禁用成功了

2.随后来确保一下我们的确是处在UEFI的引导模式下

<code>ls /sys/firmware/efi/efivars

如果能够输出一堆文件名,说明这里处在UEFI引导模式下,可以进行下一步操作

如果发生报错,提示文件不存在或者文件为空,说明你没有使用UEFI引导启动,请回到本小节开头位置学习如何修改.vmx文件,使Arch在UEFI模式下被引导启动。

3.连接网络

原文写这一步主要面向的是无线网络用户,这里由于我们使用的是虚拟机的虚拟网卡,这步可以直接跳过

4.测试网络状态

<code>curl www.baidu.com

如果能够输出东西,有一堆HTML标签等等;而不是网络不可达、连接超时、不能连接到服务器、找不到主机等等报错,说明网络无异常,报错示例:

网络无异常的话我们来继续

5.更新系统时钟

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

使用命令同步系统时间

<code>timedatectl set-ntp true

如果没有报错,说明执行成功,可以使用

<code>timedatectl status

来查看同步后的时钟状态信息

=> arch时间

=> 我的物理机系统时间

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

6.更改软件仓库下载源

这一步相信经常使用Linux的同志们都很清楚了,由于国外的软件仓库物理上距离我们就远,再加上各种各样的原因,我们下载软件包的时候,需要使用国内的下载镜像站来加速我们的下载,这里镜像站有很多,我们使用原文中给出的四个就完全够用了

运行命令,使用vim来修改软件仓库

<code>vim /etc/pacman.d/mirrorlist

打开后的页面是这样的,我们添加四条条目在最上面,在最上面的会优先被调用

<code>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.分区和格盘

安装系统必备的一步了属于是,由于这里我们是使用新开虚拟机操作,顾虑不用很多,不会刷写到我们物理机的磁盘。但是在这里我还是提一嘴嗷,数据无价,请谨慎操作。

使用命令

<code>lsblk

查看一下我们当前的磁盘状态

可以看到我们分了20G的盘就在这里,我们要操作的就是这个盘,记住了,他叫做sda,这一步很重要,不要搞错了名字。(如何判断我们的盘是哪一个=>你新建虚拟机的时候分了多少的空间,这里哪一个吻合就是哪一个)

记住我们要操作的盘叫做sda后,接下来我们使用cfdisk来进行磁盘操作,运行命令

<code>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来退出了

随后我们来确保操作成功,运行命令

<code>fdisk -l

查看分区状态

如果这里显示的和你设置的相一致,说明磁盘的分盘就已经完成了。我们可以进行格盘了

首先我们来格式化efi分区,运行命令

<code>mkfs.fat -F32 /dev/sda2

#sda2切换成你的efi分区盘,后面有关硬盘的操作不再强调,请按照你的实际来选择硬盘

随后格式化Swap分区

<code>mkswap /dev/sda1

格式化Btrfs分区(格式化系统分区)

<code>mkfs.btrfs -L arch /dev/sda3

这里-L选项后的arch可以自定义一个名字,这个名字将作为分区的LABLE,请不要使用空格和特殊字符,这里我以arch这个名字作为分区的LABLE

至此磁盘格式化完成,如果没有问题,就可以来进行下一步操作

强调一下,从现在开始,每个盘是干嘛的还是要记住,后面要用到,用不到了的时候我会说

8.操作Btrfs分区

首先我们来挂载Btrfs分区(系统分区)到/mnt下

<code>mount -t btrfs -o compress=zstd /dev/sda3 /mnt

检查挂载情况

<code>df -h

挂载完成之后,继续来创建Btrfs子卷,依次运行命令

<code>btrfs subvolume create /mnt/@

btrfs subvolume create /mnt/@home

检查子卷状态,运行命令

<code>btrfs subvolume list -p /mnt

如果显示出来了相关ID信息等等,即子卷创建成功,显示的数据可能和我会有些出入,属于正常现象。

子卷创建成功后,我们就可以卸载/mnt,挂载子卷了,卸载/mnt命令

<code>umount /mnt

上述操作无误后进入下一步

9.挂载

注意,我们的挂载是有顺序的,请按照下面的命令和提示依次运行命令挂载分区

<code>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挂载情况,运行命令

<code>free

显示出了Swap且空间大小和我们设置的相吻合,说明没问题

上述操作全部设置完毕且无误后,我们就可以安装系统了

10.安装系统

运行命令

<code>pacstrap /mnt base base-devel linux linux-firmware btrfs-progs

安装基础包

当看到上面的提示,并且出现进度条在跑,开始下载东西后,说明这一步完成啦,接下来会进入一段等待时间,因为系统正在执行你的下载安装命令。现在你可以中途休息一下,喝杯茶或者咖啡(希望你准备的茶或者咖啡到这一步没有冷掉),起身走走,眺望一下远处保护保护眼睛,等待进度条跑完后再回来继续操作即可……

跑完之后,我们继续来操作,下一步依旧是安装,我们来安装一下其他必要的工具,运行命令安装vim、sudo、zsh和zsh-completions

<code>pacstrap /mnt networkmanager vim sudo zsh zsh-completions

紧接着又会是一段进度条在跑,不过这个“进度条不长”,相比于刚才的很快就会跑完

安装完成之后,我们继续来操作,我们的系统还没有完全安装完毕

11.生成fstab文件

fstab文件时用来定义硬盘分区的重要文件,是必不可少的文件之一。由于我们之前已经挂载了重要的磁盘分区sda1、sda2和sda3,这里我们可以使用genfstab命令来根据挂载情况自动生成并且写入fstab文件,运行命令

<code>genfstab -U /mnt \> /mnt/etc/fastab

运行之后如果没有返回任何信息,说明执行成功,由于是自动生成,为了确保无误,我们来看一下fastab中的信息,运行命令

<code>cat /mnt/etc/fastab

最后一次调用你关于sda的记忆,看看对应的是否正确,如果正确,那么这一步就算是完成了,可以进行下一步操作了

好了好了,现在你可以忘掉那几个sdaxxx具体谁都是干嘛的啦~

12.切换工作区域

在说切换之前,我这里先声明好,一切操作都不需要重启

我们使用arch-chroot命令来切换到我们安装好的Arch系统环境中,运行命令

<code>arch-chroot /mnt

当我们运行之后,shell会变成如上样式,此时的/mnt目录其实就相当于我们新安装系统的根目录/

进入完成之后,我们即可进行下一步的配置操作

13.设置系统的主机名和时区

首先我们来设置主机名,运行命令

<code>vim /etc/hostname

在其中写你喜欢的主机名即可,注意不要特殊字符,写完保存即可,这里我给主机起名叫Arch了

接下来设置hosts文件,运行命令

<code>vim /etc/hosts

打开后默认是这样的,我们添加几条条目

<code>127.0.0.1 localhost

::1 localhost

127.0.0.1 arch.localdomain arch

注意这里的Arch.localdomain Arch中的Arch为你的主机名,请根据实际情况更改(主机名区分大小写,注意添加的条目前面不要有#)

主机名处理完毕后我们来更改系统的时区,运行命令

<code>ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

这样时区就设置完毕啦,如果没有问题,就继续吧,我们的安装马上就要完成了

14.设置硬件时间

有点计算机知识的同志应该清除,主板是有BIOS的,这个东西中本身就有时间,我们设置硬件时间就是为了让BIOS硬件时间和操作系统所同步(个人理解);运行命令

hwclock --systohc

不要泄气,安装马上结束

15.设置地区偏好

我们知道每个地区都有自己看时间的习惯,我们习惯使用年/月/日,但是有的地方不以这种方式;同样的,还有字符集ASCII和UTF-8等等问题,这里我们为了让操作系统适合我们自己来使用,需要设置一下地区偏好,运行命令

<code>vim /etc/locale.gen

去掉en_US.UTF-8 UTF-8和zh_CN.UTF-8 UTF-8前面的#

随后保存,运行命令

<code>locale-gen

当出现如上提示,就说明命令运行成功了,随后继续运行

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

16.设置root密码、安装微码和设置引导程序

root密码好设置,直接passwd root即可,运行命令

<code>passwd root

输入密码的时候会让你输入两次,一次为输入,一次为验证,且输入的时候不会显示信息,成功修改之后会显示如上提示信息

root密码设置完毕之后,我们可以继续安装微码了,运行下面的命令可以安装对应芯片制造商的微码,根据实际情况选择即可

<code>pacman -S intel-ucode #Intel微码

pacman -S amd-ucode #AMD微码

我的CPU是intel的,所以选择了intel的微码,运行安装命令之后会出现上述提示,这里确认安装直接回车即可,随后耐心等进度条跑完

跑完之后我们就可以来安装引导程序了

运行如下命令来安装引导程序

<code>pacman -S grub efibootmgr os-prober

一样的,等进度条跑完

跑完之后将GRUB安装到EFI分区,运行命令

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

如果出现No error reported,恭喜,GRUB此时已经成功安装到EFI磁盘分区了。最后我们做一下启动的优化小操作,使用vim编辑/etc/default/grub文件,运行命令

<code>vim /etc/default/grub

修改GRUB_CMDLINE_LINUX_DEFAULT一行,将末尾的quite去掉,添加nowatchdog,并且修改loglevel=5。修改后的图如下

随后保存,保存完毕之后运行命令

<code>grub-mkconfig -o /boot/grub/grub.cfg

至此,引导制作完成

17.最后的最后,完成安装

如果你到了这一步,恭喜你,安装已经进入尾声了

运行命令

<code>exit

退出安装环境

如上就已经成功退出了安装环境,随后卸载/mnt分区,运行命令

<code>umount -R /mnt

最后的最后,我们来运行此次安装要执行的最后命令

<code>reboot

重启进行完毕关机操作之后记得将CD文件断开连接,VMware的右下角右键CD图标可以直接断开连接

18.结束安装与连接网络

重启之后我们就可以正常引导进入Arch系统了

如果重启完毕之后显示了如上的界面,那么恭喜你,成功的安装了ArchLinux,接下来输入账户名回车,密码回车即可进入操作系统啦~

既然是Arch,怎么能不运行fastfetch命令呢?来,我们使用pacman安装一下,安装之前,我们先来启动一下Arch的networkmanager服务,否则Arch是没有网络的哦,以此运行下面的命令

<code>systemctl start NetworkManager \#启动NetworkManager

systemctl enable NetworkManager \#将NetworkManager设置为开机自启

或者直接运行这一条

systemctl enable --now NetworkManager \#立即启动NetworkManager并将其设置为开机自启

运行完enable出现上面的提示说明启动完成

我们curl一下网站看看有没有网络

ok,可以看到现在网络连接问题也解决了

随后我们来安装fastfetch吧,使用pacman安装,运行命令

<code>pacman -S fastfetch

安装完成了,来运行一下fastfetch吧

<code>fastfetch

自此,你的ArchLinux就彻彻底底的安装完毕了,恭喜你走到了这一步!



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。