Loading... ## 前言 今天带你们装个Arch虚拟机(真机也差不多)玩玩 至于真机安装,以后再说,其实下面步骤都差不多 ## 下载 ### ArchLinux镜像 地址1:[重庆大学开源软件镜像站](https://mirrors.cqu.edu.cn/archlinux/iso/2023.03.01/) 地址2:[兰州大学开源社区镜像站](http://mirror.lzu.edu.cn/archlinux/iso/2023.03.01/) 地址3:[网易开源镜像站](http://mirrors.163.com/archlinux/iso/2023.03.01/) 地址4:[中国科学技术大学开源软件镜像](https://mirrors.ustc.edu.cn/archlinux/iso/2023.03.01/) 地址5:[上海科技大学开源镜像站](https://mirrors.shanghaitech.edu.cn/archlinux/iso/2023.03.01/) 什么?你跟我说上面都用不了~~(下载很慢?)~~,那你自己去官网找吧:[Arch Linux - Downloads](https://archlinux.org/download/)(如果你需要海外的下载地址,也请从这里找下载地址) 进去后找到 `archlinux-20XX.XX.XX-x86_64.iso` ,下载即可 百度网盘:<div class="hideContent">此处内容需要评论回复后(审核通过)方可阅读。</div> ### VMware® Workstation 16 Pro: 百度网盘:<div class="hideContent">此处内容需要评论回复后(审核通过)方可阅读。</div> 解压密码:<div class="hideContent">此处内容需要评论回复后(审核通过)方可阅读。</div> ## 前戏 ### 1、新建虚拟机 ![image.png](https://capiry.life/usr/uploads/2023/03/3643833135.png) ### 2、安装客户机操作系统 ![image.png](https://capiry.life/usr/uploads/2023/03/2022120622.png) 选择你刚刚下载的 ISO 镜像文件即可,并会提示:(无视,继续下一步) ![image.png](https://capiry.life/usr/uploads/2023/03/3494980311.png) ### 3、选择客户机操作系统 ![image.png](https://capiry.life/usr/uploads/2023/03/3891798524.png) ### 4、命名虚拟机 自行设置虚拟机名称,及自定义位置即可(记得选定的磁盘空间要满足虚拟机的空间大小) ![image.png](https://capiry.life/usr/uploads/2023/03/73518156.png) ### 5、指定磁盘容量 自己设置虚拟机的容量大小,我这里设置 10 GB大小,建议别小于它建议的大小(8 GB) 这里一定要给多点空间,不要想我一样就给个`10GB`,我这一套装完后发现,空间已经用了`72.4GB`了,还没装其他有趣的软件呢😭 ![image.png](https://capiry.life/usr/uploads/2023/03/1870552149.png) 如果不打算移动你的虚拟机的话,可以选择“存储为单个文件”,如果你的虚拟机会“移来移去”的,那就选“拆分为多个文件” ### 6、已准备好创建虚拟机 ![image.png](https://capiry.life/usr/uploads/2023/03/2187994421.png) 点击“自定义硬件” ### 7、自定义硬件 ![image.png](https://capiry.life/usr/uploads/2023/03/820108865.png) 可以在这个页面调整虚拟机的内存、处理器、空间容量等 点击`网络适配器`,将`网络连接`模式更改为`桥接模式` ![image.png](https://capiry.life/usr/uploads/2023/03/2104243124.png) 然后点击上面的`选项` 点击`高级`,将`固件类型`更改为`UEFI`,最后点击`确定`,完成虚拟机的创建操作 ![image.png](https://capiry.life/usr/uploads/2023/03/4228814604.png) ## 正文 ### 1、进入安装环境 选择第一个然后键盘`回车`,继续下一步 ![image.png](https://capiry.life/usr/uploads/2023/03/1714237841.png) 之后你将会看到这个节目,恭喜你,基础的算是弄完了🥳 ![image.png](https://capiry.life/usr/uploads/2023/03/1628558796.png) ### 2、禁用 reflector 服务 > 2020 年,archlinux 安装镜像中加入了 `reflector` 服务,它会自己更新 `mirrorlist`(软件包管理器 `pacman` 的软件源)。在特定情况下,它会误删某些有用的源信息。这里进入安装环境后的第一件事就是将其禁用。也许它是一个好用的工具,但是很明显,因为地理上造成的特殊网络环境,这项服务并不适合启用。 1. 通过以下命令将该服务禁用: ``` systemctl stop reflector.service ``` 2. 通过以下命令查看该服务是否被禁用,按下 `q` 退出结果输出: ``` systemctl status reflector.service ``` ![image.png](https://capiry.life/usr/uploads/2023/03/548690412.png) <div class="tip inlineBlock warning"> 啥?你说能不能直接复制进去,不想一个字一个字的敲是吗?这不是问题: ![image.png](https://capiry.life/usr/uploads/2023/03/2301867513.png) 看着没,在这呢,直接粘贴就行了 </div> <div class="tip inlineBlock warning"> 啥?你又嫌页面的内容太多,眼花了?这不是问题,只需要输入`clear`并`回车`即可将屏幕内容清除 同时,你可以使用 `Tab` 键在输入命令的时候对命令、参数或文件路径进行自动补全,提高效率的同时降低输入错误的风险。 </div> ### 3、再次确认是否为 UEFI 模式 禁用 `reflector` 服务后,我们再来确认一下是否为 `UEFI` 模式: ``` ls /sys/firmware/efi/efivars ``` ![image.png](https://capiry.life/usr/uploads/2023/03/2577179386.png) <div class="tip inlineBlock warning"> 如果提示你没有该文件,那么应该就是 BIOS 模式了,恭喜你,弄错了~~(不是)~~ </div> ### 4、连接网络 <div class="tip inlineBlock warning"> archlinux 的安装**必须**要求网络环境。 </div> #### 若使用无线连接(虚拟机大概可以不用管这个,如果是真机的话就请看看) 使用 `iwctl` 进行连接: ``` iwctl # 进入交互式命令行 device list # 列出无线网卡设备名,比如无线网卡看到叫 wlan0 station wlan0 scan # 扫描网络 station wlan0 get-networks # 列出所有 wifi 网络 station wlan0 connect wifi-name # 进行连接,注意这里无法输入中文。回车后输入密码即可 exit # 连接成功后退出 ``` > <div class="tip inlineBlock warning"> > > 若无线网卡无法显示,请按 **确保你的无线网卡硬件开关处于打开状态** 。 > > 你可以使用如下命令查看内核是否加载了你的无线网卡驱动。 > > ``` > lspci -k | grep Network > ``` > > 以我的硬件为例,输出如下: > > ``` > 00:14.3 Network controller: Intel Corporation Wi-Fi 6 AX201 (rev 20) > ``` > > 如果你的 BIOS 没有开启无线网卡的开关可以参考下列的命令来开启 `WIFI` > > ``` > rfkill list #查看无线连接 是否被禁用(blocked: yes) > ip link set wlan0 up #比如无线网卡看到叫 wlan0 > ``` > > 若看到类似`Operation not possible due to RF-kill`的报错,继续尝试`rfkill unblock wifi`来解锁无线网卡。 > > ``` > rfkill unblock wifi > ``` > > 部分无线网卡不兼容,请考虑使用有线连接安装 archlinux。 > > </div> #### 若使用有线连接 正常来说,只要插上一个已经联网的路由器分出的网线(DHCP),直接就能联网。 可以等待几秒等网络建立连接后再进行下一步测试网络的操作。 若笔记本没有网线接口请使用带网线接口的扩展坞。 ### 5、测试网络连通性 通过 `ping` 命令测试网络连通性: ``` ping -c 4 www.baidu.com ``` ![image.png](https://capiry.life/usr/uploads/2023/03/3708933204.png) 稍等片刻,若能看到数据返回,即说明已经联网。 ### 6、更新系统时钟 使用 `timedatectl` 确保系统时间是准确的。这一步**<span style='color:6495ED'>不是</span> **可选的,正确的系统时间对于部分程序来说非常重要: ``` timedatectl set-ntp true # 将系统时间与网络时间进行同步 timedatectl status # 检查服务状态 ``` ![image.png](https://capiry.life/usr/uploads/2023/03/3139251246.png) ### 7、更换国内软件仓库镜像源加快下载速度 使用 `vim` 编辑器修改 `/etc/pacman.d/mirrorlist` 文件。将 `pacman` 软件仓库源更换为国内软件仓库镜像源: ``` 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 # 兰州大学开源镜像站 ``` 修改完成的 `/etc/pacman.d/mirrorlist` 文件如图所示。 <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-1f8a8fc4bc16bd64222809d1d070f94471" aria-expanded="true"><div class="accordion-toggle"><span style="">具体操作步骤(大佬勿进😁)</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-1f8a8fc4bc16bd64222809d1d070f94471" class="collapse collapse-content"><p></p> 提示: ![image.png](https://capiry.life/usr/uploads/2023/03/1099260947.png) 进入后,点击键盘上的`i`,即可进入输入模式: ![image.png](https://capiry.life/usr/uploads/2023/03/2531987658.png) 我们选择一个镜像站填入其中: ![image.png](https://capiry.life/usr/uploads/2023/03/30278559.png) 编辑完成后,点击键盘的`Esc`,然后输入`wq`并回车即可保存并退出文件 ![image.png](https://capiry.life/usr/uploads/2023/03/4283027511.png) PS:如果你文件改错了,请将上面的`wq`换成`q`,然后重新使用命令打开该文件 退出后: ![image.png](https://capiry.life/usr/uploads/2023/03/1622387746.png) <p></p></div></div></div> ### 8、分区和格式化(使用 Btrfs 文件系统) #### 8.1分区 <div class="tip inlineBlock error"> 分区操作的部分命令具有危险性!除非你知道每一个命令在干什么,否则请不要执行! 同时,请提前做好数据备份,防止数据丢失! </div> > 本指南考虑到多数情况,在这里首先介绍 win10 和 archlinux 在一个磁盘上双系统的分区配置。 > > * `/` 根目录:`>= 128GB`(和用户主目录在同一个 `Btrfs` 文件系统上) > * `/home` 用户主目录:`>= 128GB`(和根目录在同一个 `Btrfs` 文件系统上) > * `/boot` EFI 分区:`256MB`(由电脑厂商或 Windows 决定,无需再次创建) > * Swap 分区:`>= 电脑实际运行内存的 60%`(设置这个大小是为了配置休眠准备) <div class="tip inlineBlock warning"> 因为采用 `Btrfs` 文件系统,所以根目录和用户主目录实际在一个分区上,只是在不同的子卷上而已。这里根目录和用户主目录的大小仅为参考,一般来说日常使用的 linux 分配 128GB 已经够用了。 </div> 1. 通过 `lsblk` 命令,区分要安装 archlinux 的磁盘(通过观察磁盘的大小、已存在的分区情况等判断)并显示当前磁盘的分区情况: ``` lsblk # 显示当前分区情况 ``` ![image.png](https://capiry.life/usr/uploads/2023/03/3499722797.png) 此处要分区和安装 archlinux 的磁盘即为 `sda`。请根据你的实际情况判断! <div class="tip inlineBlock warning"> 注意此处并不会显出出未分配的磁盘空间!只有在使用 `cfdisk` 执行分区操作后才会显示出来。 </div> <div class="tip inlineBlock warning"> 如果你的硬盘是 NVME 协议的固态硬盘,那么将不是 `sdx` 而是 `nvmexn1`。 </div> 2. 接下来使用 `cfdisk` 命令对磁盘分区(对于 SATA 协议的硬盘,`x` 为字母 `a`、`b` 或 `c` 等等;对于 NVME 协议的硬盘,`x` 为数字 `0`、`1` 或 `2` 等等,请根据实际情况判断): <div class="flex-column"><div class="flex-block" style="flex:50%">SATA ``` cfdisk /dev/sdx # 对安装 archlinux 的磁盘分区 ``` </div><div class="flex-block" style="flex:50%">NVME ``` cfdisk /dev/nvmexn1 # 对安装 archlinux 的磁盘分区 ``` </div></div> 一进去后,可能会看到如下界面,选择`gpt`即可 ![image.png](https://capiry.life/usr/uploads/2023/03/4121066961.png) 进入 `cfdisk` 分区工具之后,你会看到如图所示的界面。通过方向键 `↑` 和 `↓` 可以在要操作磁盘分区或空余空间中移动;通过方向键 `←` 和 `→` 在对当前高亮的磁盘分区或空余空间要执行的操作中移动。 3. 首先创建 Swap 分区。选中 `Free space` > 再选中操作 `[New]` > 然后按下回车 `Enter` 以新建 `swap` 分区(类似 Windows 的交换文件) ![image.png](https://capiry.life/usr/uploads/2023/03/238530127.png) 4. 按下回车后会提示输入 `分区大小`,Swap 分区建议为 **电脑内存大小的 60%** ,或者和内存大小相等 > 然后按下回车 `Enter` ![image.png](https://capiry.life/usr/uploads/2023/03/569366519.png) <div class="tip inlineBlock warning"> 单位可以自行输入,如 `GB`、`MB` 等等。 </div> 5. 默认新建的类型是 `Linux filesystem`,我们需要将类型更改为 `Linux swap`。选中操作 `[Type]` > 然后按下回车 `Enter` > 通过方向键 `↑` 和 `↓` 选中 `Linux swap` > 最后按下回车 `Enter` ![image.png](https://capiry.life/usr/uploads/2023/03/3289004962.png) ![image.png](https://capiry.life/usr/uploads/2023/03/4162157355.png) 上面的`EFI System`是引导分区用的,应该是双系统用户会用到 6. 我们再只需要一个分区即可(因为使用 `Btrfs` 文件系统,所以根目录和用户主目录在一个分区上),所以类似的:选中 `Free space` > 再选中操作 `[New]` > 然后按下回车 `Enter` 以新建分区 ![image.png](https://capiry.life/usr/uploads/2023/03/4270441165.png) 7. 输入 `分区大小`(默认是剩余的全部空间。请根据实际情况输入)> 然后按下回车 `Enter` ![image.png](https://capiry.life/usr/uploads/2023/03/3801230802.png) 8. 分区类型默认即可,无需更改。接下来选中操作 `[Write]` 并回车 `Enter` > 输入 `yes` 并回车 `Enter` 确认分区操作 ![image.png](https://capiry.life/usr/uploads/2023/03/1388733269.png) ![image.png](https://capiry.life/usr/uploads/2023/03/2258629933.png) <div class="tip inlineBlock warning"> 只有执行力该步骤后分区表才会更改。 </div> ![image.png](https://capiry.life/usr/uploads/2023/03/682743843.png) <div class="tip inlineBlock error"> 再次提醒!请仔细检查命令和操作的正确性,否则将出现不可预料的情况。最危险的是可能造成数据丢失! 常见的错误包括不小心把 Windows 的分区删掉了 😥。 </div> 10. 分区完成后,使用 `fdisk` 或 `lsblk` 命令复查分区情况: <div class="flex-column"><div class="flex-block" style="flex:50%"> ``` fdisk -l # 复查磁盘情况 ``` </div><div class="flex-block" style="flex:50%"> ``` lsblk # 复查磁盘情况 ``` </div></div> ![image.png](https://capiry.life/usr/uploads/2023/03/1691836243.png) ![image.png](https://capiry.life/usr/uploads/2023/03/4199682845.png) #### 8.2、格式化并创建 Btrfs 子卷 ##### 8.2.1、格式化 EFI 分区 <div class="flex-column"><div class="flex-block" style="flex:50%">SATA ``` mkfs.fat -F32 /dev/sdxn ``` </div><div class="flex-block" style="flex:50%">NVME ``` mkfs.fat -F32 /dev/nvmexn1pn ``` </div></div> <div class="tip inlineBlock warning"> 如果目标是双系统(Win10/Win11 + Arch Linux),并且 Win10/Win11 和 Arch Linux 将要共存在一个硬盘上的话,不要重新格式化原有的 EFI 分区,因为它可能包含启动其他操作系统所需的文件。 </div> ##### 8.2.2、格式化 Swap 分区 <div class="flex-column"><div class="flex-block" style="flex:50%">SATA ``` mkswap /dev/sdxn ``` </div><div class="flex-block" style="flex:50%">NVME ``` mkswap /dev/nvmexn1pn ``` </div></div> ![image.png](https://capiry.life/usr/uploads/2023/03/3634725988.png) ##### 8.2.3、格式化 Btrfs 分区 1. 首先我们需要将整一个分区格式化为 `Btrfs` 文件系统。使用如下命令进行格式化: <div class="flex-column"><div class="flex-block" style="flex:50%">SATA ``` mkfs.btrfs -L myArch /dev/sdxn ``` </div><div class="flex-block" style="flex:50%">NVME ``` mkfs.btrfs -L myArch /dev/nvmexn1pn ``` </div></div> > 命令参数说明: > > * `-L` 选项后指定该分区的 `LABLE`,这里以 `myArch` 为例,也可以自定义,但不能使用特殊字符以及空格,且最好有意义 ![image.png](https://capiry.life/usr/uploads/2023/03/2233551420.png) 2. 为了创建子卷,我们需要先将 `Btrfs` 分区挂载到 `/mnt` 下: <div class="flex-column"><div class="flex-block" style="flex:50%">SATA ``` mount -t btrfs -o compress=zstd /dev/sdxn /mnt ``` </div><div class="flex-block" style="flex:50%">NVME ``` mount -t btrfs -o compress=zstd /dev/nvmexn1pn /mnt ``` </div></div> > 命令参数说明: > > * `-t` 选项后指定挂载分区文件系统类型 > * `-o` 选项后添加挂载参数: > * `compress=zstd` —— 开启透明压缩 3. 使用 `df` 命令复查挂载情况: ``` df -h # -h 选项会使输出以人类可读的单位显示 ``` ![image.png](https://capiry.life/usr/uploads/2023/03/3295807610.png) ##### 8.2.4、创建 Btrfs 子卷 1. 通过以下命令创建两个 `Btrfs` 子卷,之后将分别挂载到 `/` 根目录和 `/home` 用户主目录: ``` btrfs subvolume create /mnt/@ # 创建 / 目录子卷 btrfs subvolume create /mnt/@home # 创建 /home 目录子卷 ``` ![image.png](https://capiry.life/usr/uploads/2023/03/1007791007.png) <div class="tip inlineBlock warning"> 除非你清楚你的操作产生的后果,否则请保持子卷名称和结构与本指南一致,因为在后面我们会设置的快照工具 `timeshift` 只支持这种子卷布局。 </div> 2. 通过以下命令复查子卷情况: ``` btrfs subvolume list -p /mnt ``` ![image.png](https://capiry.life/usr/uploads/2023/03/3471630414.png) 3. 子卷创建好后,我们需要将 `/mnt` 卸载掉,以挂载子卷: ``` umount /mnt ``` ![image.png](https://capiry.life/usr/uploads/2023/03/4198152436.png) ### 9、挂载 1. 在挂载时,挂载是有顺序的,需要从根目录开始挂载。使用如下命令挂载子卷: <div class="flex-column"><div class="flex-block" style="flex:50%">SATA ``` mount -t btrfs -o subvol=/@,compress=zstd /dev/sdxn /mnt # 挂载 / 目录 mkdir /mnt/home # 创建 /home 目录 mount -t btrfs -o subvol=/@home,compress=zstd /dev/sdxn /mnt/home # 挂载 /home 目录 mkdir -p /mnt/boot # 创建 /boot 目录 mount /dev/sdxn /mnt/boot # 挂载 /boot 目录 swapon /dev/sdxn # 挂载交换分区 ``` </div><div class="flex-block" style="flex:50%">NVME ``` mount -t btrfs -o subvol=/@,compress=zstd /dev/nvmexn1pn /mnt # 挂载 / 目录 mkdir /mnt/home # 创建 /home 目录 mount -t btrfs -o subvol=/@home,compress=zstd /dev/nvmexn1pn /mnt/home # 挂载 /home 目录 mkdir -p /mnt/boot # 创建 /boot 目录 mount /dev/nvmexn1pn /mnt/boot # 挂载 /boot 目录 swapon /dev/nvmexn1pn # 挂载交换分区 ``` </div></div> ![image.png](https://capiry.life/usr/uploads/2023/03/409778383.png) 2. 使用 `df` 命令复查挂载情况: ``` df -h ``` ![image.png](https://capiry.life/usr/uploads/2023/03/341135506.png) 3. 使用 `free` 命令复查 Swap 分区挂载情况: ``` free -h # -h 选项会使输出以人类可读的单位显示 ``` ![image.png](https://capiry.life/usr/uploads/2023/03/3607069068.png) ### 10、安装系统 1. 通过如下命令使用 `pacstrap` 脚本安装基础包: ``` pacstrap /mnt base base-devel linux linux-firmware btrfs-progs # 如果使用btrfs文件系统,额外安装一个btrfs-progs包 ``` > 命令参数说明: > > * `base-devel` —— `base-devel` 在 `AUR` 包的安装过程中是必须用到的 > * `linux` —— 内核软件包,这里建议先不要替换为其它内核 如果提示 GPG 证书错误,可能是因为使用的不是最新的镜像文件,可以通过更新 `archlinux-keyring` 解决此问题 ``` pacman -S archlinux-keyring ``` 2. 通过如下命令使用 `pacstrap` 脚本安装其它必要的功能性软件: ``` pacstrap /mnt dhcpcd networkmanager vim sudo zsh zsh-completions ``` > 命令参数说明: > > * `zsh` —— `zsh-completions` 如果你是 bash 的爱好者,请把这两个包换成`bash-completion` > * 如果你是第一次接触*nix 系统的新手,不建议换成 bash 经过一系列安装时提示信息的刷屏,这些包就安装好了。 <div class="tip inlineBlock warning"> 在执行命令前,请仔细检查命令的拼写正确;同时注意不要漏装东西。 很多人在后续的步骤中报错就是因为这里漏装了东西。 如果报错,请 **检查拼写** ,同时请确保之前的步骤 更换国内软件仓库镜像源加快下载速度中 **没有**添加 `archlinuxcn` 源。 </div> ### 11、生成 fstab 文件 1. `fstab` 用来定义磁盘分区。它是 Linux 系统中重要的文件之一。使用 `genfstab` 自动根据当前挂载情况生成并写入 `fstab` 文件: ``` genfstab -U /mnt > /mnt/etc/fstab ``` 2. 复查一下 `/mnt/etc/fstab` 确保没有错误: ``` cat /mnt/etc/fstab ``` ![image.png](https://capiry.life/usr/uploads/2023/03/2984823216.png) 若为 NVME 协议的硬盘,输出结果应该与此类似: ``` # /dev/nvme0n1p6 / btrfs rw,relatime,compress=zstd:3,ssd,space_cache,subvolid=256,subvol=/@,subvol=@ 0 0 UUID=d01a3ca5-0798-462e-9a30-97065e7e36e1 / btrfs rw,relatime,compress=zstd:3,ssd,space_cache,subvolid=256,subvol=/@,subvol=@ 0 0 # /dev/nvme0n1p1 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2 UUID=522C-80C6 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2 # /dev/nvme0n1p6 /home btrfs rw,relatime,compress=zstd:3,ssd,space_cache,subvolid=257,subvol=/@home,subvol=@home 0 0 UUID=d01a3ca5-0798-462e-9a30-97065e7e36e1 /home btrfs rw,relatime,compress=zstd:3,ssd,space_cache,subvolid=257,subvol=/@home,subvol=@home 0 0 # /dev/nvme0n1p5 none swap defaults 0 0 UUID=8e40dbed-590f-4cb8-80de-5cef8343a9fc none swap defaults 0 0 ``` ### 12、change root 使用以下命令把系统环境切换到新系统下: ``` arch-chroot /mnt ``` 此时,原来安装盘下的 `/mnt` 目录就变成了新系统的 `/` 目录。同时,可以发现命令行的提示符颜色和样式也发生了改变。 ### 13、设置主机名与时区 1. 首先在 `/etc/hostname` 设置主机名: 具体操作步骤就不详述了,忘记了的请去上面一个操作文件的地方查看 ``` vim /etc/hostname ``` ![image.png](https://capiry.life/usr/uploads/2023/03/628406734.png) 加入你想为主机取的主机名,这里比如叫 myarch。 <div class="tip inlineBlock warning"> 主机名不要包含特殊字符以及空格。 </div> 2. 接下来在 `/etc/hosts` 设置与其匹配的条目: ``` vim /etc/hosts ``` ![image.png](https://capiry.life/usr/uploads/2023/03/1758599045.png) <div class="tip inlineBlock warning"> 某些情况下如不设置主机名,在 KDE 下可能会存在网络情况变更时无法启动 GUI 应用的问题,在终端中出现形如 `No protocol specified qt.qpa.xcb: could not connect to display` 的错误。这种情况极为少见。 但不管如何,即使没有问题,我们都应该设置好主机名。 </div> 3. 随后设置时区,在 `/etc/localtime` 下用 `/usr` 中合适的时区创建符号链接: ``` ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ``` ### 14、硬件时间设置 使用如下命令将系统时间同步到硬件时间: ``` hwclock --systohc ``` ### 15、设置 Locale `Locale` 决定了软件使用的语言、书写习惯和字符集。 1. 编辑 `/etc/locale.gen`,去掉 `en_US.UTF-8 UTF-8` 以及 `zh_CN.UTF-8 UTF-8` 行前的注释符号(`#`): ``` vim /etc/locale.gen ``` 一个在 171 行,另一个在 496 行 <div class="tip inlineBlock warning"> 有几个选项极具迷惑性,请不要取消注释错了。 </div> 2. 然后使用如下命令生成 `locale`: ``` locale-gen ``` ![image.png](https://capiry.life/usr/uploads/2023/03/1532251362.png) 3. 向 `/etc/locale.conf` 输入内容: <div class="tip inlineBlock warning"> 不推荐在此设置任何中文 `locale`,会导致 `tty` 乱码。 </div> ### 16、为 root 用户设置密码 ``` passwd root ``` ![image.png](https://capiry.life/usr/uploads/2023/03/3499348196.png) <div class="tip inlineBlock warning"> 输入的密码是看不见的,所以千万别输错了 </div> ### 17、安装微码 通过以下命令安装对应芯片制造商的微码: ``` pacman -S intel-ucode # Intel pacman -S amd-ucode # AMD ``` 电脑是哪个芯片,就用哪条命令,别二个都输了一边 如果你不知道的话,就去查 <div class="tip inlineBlock warning"> 🎉 恭喜你!这是你在新系统中第一次使用 `pacman` 软件包管理器安装软件!在这里一路回车完成安装即可。 </div> ### 18、安装引导程序 1. 安装相应的包: ``` pacman -S grub efibootmgr os-prober ``` > 命令参数说明: > > * `-S` 选项后指定要通过 `pacman` 包管理器安装的包: > * `grub` —— 启动引导器 > * `efibootmgr` —— `efibootmgr` 被 `grub` 脚本用来将启动项写入 NVRAM > * `os-prober` —— 为了能够引导 win10,需要安装 `os-prober` 以检测到它 2. 安装 GRUB 到 EFI 分区: ``` grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH ``` ![image.png](https://capiry.life/usr/uploads/2023/03/1558123339.png) 3. 接下来使用 `vim` 编辑 `/etc/default/grub` 文件: ``` vim /etc/default/grub ``` 进行如下修改: * 去掉 `GRUB_CMDLINE_LINUX_DEFAULT` 一行中最后的 `quiet` 参数 * 把 `loglevel` 的数值从 `3` 改成 `5`。这样是为了后续如果出现系统错误,方便排错 * 加入 `nowatchdog` 参数,这可以显著提高开关机速度 ![image.png](https://capiry.life/usr/uploads/2023/03/3465493839.png) * 为了引导 win10,则还需要添加新的一行 `GRUB_DISABLE_OS_PROBER=false` ``` # GRUB boot loader configuration GRUB_DEFAULT=0 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="Arch" GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5 nowatchdog" GRUB_CMDLINE_LINUX="" GRUB_DISABLE_OS_PROBER=false ... ``` 4. 最后生成 `GRUB` 所需的配置文件: ``` grub-mkconfig -o /boot/grub/grub.cfg ``` ![image.png](https://capiry.life/usr/uploads/2023/03/71694610.png) 若引导了 win10,则输出应该包含倒数第二行: ![os-prober-1](https://arch.icekylin.online/assets/os-prober-1.d6dd12a6.png) <div class="tip inlineBlock warning"> 在某些主板安装完成后,你会发现没有启动条目。这是因为某些主板的 UEFI 固件在显示 UEFI NVRAM 引导条目之前,需要在特定的位置存放可引导文件,不支持自定义存放 `efi` 文件(如微星 Z170-A Gaming PRO)。解决方案是在默认启动路径下安装 `GRUB`。重新插入安装优盘,按原先顺序挂载目录(不需要再次创建文件夹了),`chroot` 到 `/mnt`,然后你可以直接把已经生成好的 `efi` 文件移动到默认目录下,如下命令所示。只有安装完成后你的主板不出现启动条目才需要尝试如下命令,正常安装无需执行。 ``` mv /boot/EFI/grub /boot/EFI/BOOT mv /boot/EFI/GRUB/grubx64.efi /boot/EFI/BOOT/BOOTX64.EFI ``` </div> ### 19、完成安装 1. 输入以下命令: ``` exit # 退回安装环境 umount -R /mnt # 卸载新分区 reboot # 重启 ``` ![image.png](https://capiry.life/usr/uploads/2023/03/1839727440.png) <div class="tip inlineBlock warning"> 注意, **重启前要先拔掉优盘** ,否则你重启后还是进安装程序而不是安装好的系统。 虚拟机直接重启即可。 </div> ![image.png](https://capiry.life/usr/uploads/2023/03/522460445.png) 如图即为 GRUB 引导界面。 <div class="tip inlineBlock warning"> 若引导了 win10 也会显示出来。 </div> 2. 重启后使用 root 账户登录系统: ![image.png](https://capiry.life/usr/uploads/2023/03/1610643044.png) <div class="tip inlineBlock warning"> 开机后,键盘的`数字锁定`默认是锁定的,需点击一下解锁,不然无法输入数字 </div> <div class="tip inlineBlock warning"> 先输入账户,然后才是输入密码,别弄错了 </div> 3. 设置开机自启并立即启动 networkmanager 服务,即可连接网络: ``` systemctl enable --now NetworkManager # 设置开机自启并立即启动 NetworkManager 服务 ping -c 4 www.baidu.com # 测试网络连接 ``` 4. 若为无线连接,则需要在启动 `networkmanager` 后使用 `nmcli` 连接网络: ``` nmcli dev wifi list # 显示附近的 Wi-Fi 网络 nmcli dev wifi connect "Wi-Fi名(SSID)" password "网络密码" # 连接指定的无线网络 ``` 5. `neofetch` 可以将系统信息和发行版 logo 一并打印出来。通过 `pacman` 安装 `neofetch`: ``` pacman -S neofetch ``` 6. 使用 `neofetch` 打印系统信息: ``` neofetch ``` ![image.png](https://capiry.life/usr/uploads/2023/03/3467239763.png) ## 🎉 祝贺!🎉 到此为止,一个基础的、无图形界面的 archlinux 已经安装完成了!这时你应该可以感到满满的满足感(即使你还没有见到图形化的界面)。好好享受一下成功安装 archlinux 的喜悦吧! 如果你对本节的部分步骤不理解,请仔细阅读下一节 基础安装详解。在此之后,我们来安装图形界面。 <div class="tip inlineBlock warning"> 你可以使用以下命令关机: ``` shutdown -h now ``` 当然虚拟机可以直接用虚拟机提供的按钮来关机 </div> 最后修改:2023 年 04 月 12 日 © 允许规范转载 赞 1 如果觉得我的文章对你有用,请随意赞赏