前言
之前一直再用Ubuntu和Debian,正好最近在学nginx,想试试在其他Linux发行版里部署配置nginx,于是就想挑战一下早有所耳闻的Arch,果然不出所料,光安装Arch就花了我不少时间,踩了不少的坑。这里记录一下我的安装过程,防止后续再踩坑,也希望帮助更多想尝试Arch的新手小白。
提醒
本教程仅适用于 BIOS 与 GPT 磁盘分区方案,如果你不知道这些是什么意思,你只想在VMware中装Arch,可以继续看本教程。
如果你是UEFI 与 GPT 磁盘分区方案,想要在自己的主机上装Windows和Arch Linux双系统建议看这篇知乎文章《Arch Linux 详细安装教程,萌新再也不怕了!》,本教程不适用此场景。
本教程旨在以最少的步骤,最简单、最清晰的讲解带你弄清楚装Arch Linux + KDE的全流程。
如果你想问为什么不用archinstall来快速安装,这里我引用Arch Wiki上的一句原话:不建议初学者用 archinstall 走捷径,因为手动安装 Arch Linux 本身就是 Arch Linux 教学实操中重要的一环,少了这个环节,会让初学者面对一些基础问题时束手无策,为自己和社区带来不必要的麻烦。
1 准备工作
1.1 请提前准备好以下软件
VMware Workstation、Xshell
以上软件下载安装这里不赘述
1.2 获取Arch Linux镜像
点击 Arch Linux 进入官网下载页面,选择磁力链接或者种子进行下载
2 配置虚拟机
2.1 新建虚拟机
2.1.1 打开VMware Workstation,点击【文件】->【新建虚拟机】
2.1.2【自定义(高级)】->【下一步】
2.1.3 【下一步】
2.1.4 选择【安装程序光盘映像文件(iso)】,选择你刚刚下载的Arch镜像文件(iso结尾的文件),点击【下一步】
2.1.5 选择【Linux】->选择版本【其他Linux 6.x 内核 64位】->【下一步】
2.1.6 虚拟机名称随便取,位置按自己需求调整,点击【下一步】
2.1.7 【处理器数量】与【每个处理器的内核数量】按自己宿主机的配置来填,不知道该怎么配置的可以鼠标右键本机【底部导航栏】打开【任务管理器】,点击【性能】,保证【处理器数量】小于宿主机【逻辑处理器】数量,【处理器内核总量】小于【内核】数量
2.1.8 虚拟机内存请根据自己的电脑实际内存做分配,比如我主机内存32G内存,所以我这里分配了8G给了虚拟机,不知道自己电脑内存多少可以进入【任务管理器】->【性能】查看
2.1.9 选择【使用网络地址转换(NAT)】
2.1.10 【下一步】
2.1.11 【下一步】
2.1.12 【创建新虚拟磁盘】->【下一步】
2.1.13 填写【最大磁盘大小】->【下一步】
千万别选【立即分配所有磁盘空间】,不然虚拟机会立刻在你本机磁盘中占用一部分磁盘空间,无论你的虚拟机有没有用满这部分磁盘空间,这部分磁盘空间宿主机将无法使用
2.1.14 点击【完成】
2.2 开启虚拟机
3 启动安装环境
进入系统后选择【Arch Linux install medium (x86_64,BIOS)】,按回车键
等待。。。。。。
直到屏幕出现如下字符
root@archiso ~ #
4 Xshell连接
【注】为什么使用Xshell连接,因为Arch终端无法复制粘贴命令,手动输入命令可能会输错导致失败机率增加。如果存在报错也可以在Xshell中复制出来使用搜索引擎或者AI寻找答案。如果你有其他同类型的SSH连接应用也可以使用,不强制要求Xshell。
4.1 查询当前虚拟机内网IP
ip a
4.2 给当前root角色设置密码
passwd
4.3 打开Xshell,【新建】会话,点击【连接】,输入刚才查询到的虚拟机IP
4.4 点击【用户身份验证】,输入用户名【root】和你刚才设置的密码
4.5 点击【连接】,弹出的弹窗点击【接受并保存】
到此,我们前期所有准备工作完毕,下面进入真正的Arch Linux安装环节
5 更新系统时间
输入下面命令查询当前系统时间是否已经自动校准,因为是UTC时区,如果显示时间比当前北京时间慢8小时则代表正常
timedatectl
如果你的时间不对,请用下面命令手动校准
# MM 月 | DD 日 | hh 小时 | mm 分钟 | YY 年
date MMDDhhmmYY
6 磁盘分区
6.1 使用cfdisk开始分区
cfdisk
6.2 进入cfdisk界面后我们方向键 ↑ ↓ 选择【gpt】并回车
6.3 然后我们方向键 ↑ ↓ 控制上光标选择【Free space】这个未分区空间,方向键 ← → 控制下光标选择【New】新建分区
6.4 在Partition size这里修改我们想要给这个分区分配的空间大小,第一个分区我们先给它分配1mb的大小,我们输入1m
为什么分配1mb的空间,这个原因后面会说
6.5 方向键 ↑ ↓ 控制上光标选择刚刚新建的【/dev/sda1】,方向键 ← → 控制下光标选择【Type】设置分区的类型
6.6 这里我们选择【BIOS boot】
6.7 按照上述步骤将剩余空间分配完毕,确认无误后方向键 ← → 控制下光标选择【write】回车
⚠️ 一定要分一个1m的分区给这个【BIOS boot】!!!很重要,不然后面系统引导GRUB会安装不成功,开机就无法进入正确的系统
【/dev/sda2】后面我会把它挂载到/mnt目录下,它将成为系统的【/】根目录,用来装系统和软件,你可以理解成Windows系统的C盘
【/dev/sda4】后面我会把它挂载到/mnt/home目录下,它将成为系统的【/home】目录,用来存储一些数据和其他角色的数据,当然你也完全可以不建这个分区,将剩余空间全部交给【/dev/sda2】,如果你实在不明白就和我一样分
7 格式化分区
⚠️ 格式化之前请务必看这里:不要格式化【BIOS boot】!!!不要格式化【BIOS boot】!!!不要格式化【BIOS boot】!!! 因为只要格式化了这个分区后面安装GRUB引导就不会成功!!!
接下来我们将对刚才创建的磁盘分区进行格式化,我将按照我配置的分区进行讲解
首先对于【/dev/sda2】和【/dev/sda4】这两个类型是【Linux filesystem】的分区,使用以下命令将其格式化为ext4格式
mkfs.ext4 /dev/sda2
mkfs.ext4 /dev/sda4
然后用下面的命令格式化swap分区(【/dev/sda3】)
mkswap /dev/sda3
接下来我们启用swap分区
swapon /dev/sda3
8 挂载分区
⚠️ 挂载之前请务必看这里:可以不用挂载【BIOS boot】,因为挂载不上去,不影响后面流程
⚠️ 挂载时一定要先挂载【/mnt】也就是【/】根目录,然后再去挂载【/mnt/home】之类的目录
使用以下命令先将【/dev/sda2】挂载到【/mnt】上
mount /dev/sda2 /mnt
然后使用以下命令创建【/mnt/home】目录,并将【/dev/sda2】挂载到【/mnt/home】上
mount --mkdir /dev/sda4 /mnt/home
到这里挂载分区就算完成了,【/dev/sda1】和【/dev/sda3】我们可以不管
9 安装系统
9.1 修改镜像源
使用默认镜像源安装Arch Linux系统可能会非常慢,甚至失败,如果你不会科学上网,切换镜像源将是最好的选择
我们使用以下命令进入镜像源配置文件,按【a】进入编辑模式
vim /etc/pacman.d/mirrorlist
在首行配置我们的镜像源地址,这里使用清华镜像地址:
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
配置完后按【ESC】键,然后输入【:wq】保存并退出
9.2 安装系统
使用以下命令安装系统的基础包、Linux内核以及驱动程序
pacstrap /mnt base linux linux-firmware
如果安装完有报错提示,可以再运行一遍上面的命令,多次重复报错建议查询搜索引擎或AI
安装成功是这样的:
10 生成fstab文件
使用以下命令生成fstab文件
genfstab -U /mnt >> /mnt/etc/fstab
在使用cat命令查看该文件是否生成
cat /mnt/etc/fstab
检查输出内容中格式化与挂载信息是否正确
11 切换至新系统
此时我们的系统安装完毕,使用以下命令进入新系统
arch-chroot /mnt
此时如果你的控制台由 root@archiso ~ #
变为 [root@archiso /]#
代表系统切换成功
如果失败了请检查磁盘分区有没有正确挂载至【/mnt】上
12 时区与本地化
12.1 配置时区
使用以下命令设置时区软连接
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
设置硬件时间
hwclock --systohc
12.2 本地化
12.2.1 下载vim文本编辑器
pacman安装软件包使用方式:
pacman -S 包名
pacman -S vim
12.2.2 配置locale
使用以下命令使用vim编辑 /etc/locale.gen
文件
vim /etc/locale.gen
进入文件后输入 /#en_US
回车,此时光标会落在 #en_US.UTF-8 UTF-8
的 #
号上,此时按【x】(小写)会删除 #
号
再次输入 /#zh_CN.UTF-8
回车,此时光标会落到 #zh_CN.UTF-8 UTF-8
的 #
号上,此时按【x】(小写)会删除 #
号
最后输入 :wq
回车保存并退出
使用以下命令生成locale
locale-gen
创建locale的配置文件
echo LANG=en_US.UTF-8 > /etc/locale.conf
13 引导加载程序
⚠️ 在安装GRUB引导程序之前,请务必保证在之前的步骤中创建了【BIOS boot】分区,并且没有对这个分区进行格式化和挂载操作
Arch Linux需要引导加载程序才能启动,本教程使用GRUB
首先使用以下命令安装GRUB
pacman -S grub
grub-install --target=i386-pc /dev/sda
⚠️ 请注意,这里是【/dev/sda】这整个磁盘空间,而不是我们分区的【/dev/sda1】或【/dev/sda2】
下图是安装成功的样子:
⚠️ 如果执行第二行命令失败了,请检查是否创建【BIOS boot】分区,是否格式化并挂载了这个分区
没有创建分区请输入
exit
退回镜像系统,点击返回 6 磁盘分区 重新新建分区【BIOS boot】如果你格式化并挂载了【BIOS boot】分区,输入
exit
退回镜像系统,使用以下命令卸载分区umount 你挂载的目录(如:/mnt/boot)
输入
cfdisk
重新进入磁盘分区界面,下光标选择【Delete】删除【BIOS boot】分区,再重新创建【BIOS boot】分区,然后输入 genfstab -U /mnt > /mnt/etc/fstab
重新生成fstab文件完成上述操作后,再次输入
arch-chroot /mnt
进入新系统,并重新安装GRUB,如果仍存在问题,请将报错复制出来查询搜索引擎或AI然后我们使用以下命令生成GRUB配置文件
grub-mkconfig -o /boot/grub/grub.cfg
14 安装Arch末尾操作
14.1 设置密码
⚠️ 一定要设置这个密码!!!一定要设置这个密码!!!一定要设置这个密码!!!这个密码是新系统的密码,不是之前镜像系统的密码,你不设置会无法进入系统卡在登录界面的!!!
passwd root
14.2 网络配置
防止重启后没有网络影响后面装KDE,这里先装一下网络配置
pacman -S dhcpcd
将dhcpcd设置成开机启动
systemctl enable dhcpcd
14.3 退出新系统
exit
14.4 重启
reboot
如果你的虚拟机能进入这个界面,表示你的Arch Linux安装成功,恭喜你成功啦!!!
15 安装KDE
15.1 准备工作
15.1.1 安装并配置openssh(可选)
Arch不支持虚拟机复制内容粘贴到终端,如果你怕命令太长会敲错,可以用Xshell等ssh连接软件连接Arch
首先安装openssh
pacman -S openssh
使用vim配置sshd文件
vim /etc/ssh/sshd_config
输入 /#PermitRootLogin prohibit-password
回车找到这一行,按【a】键进入编辑模式,将此行替换或者另起一行写入 PermitRootLogin yes
按【ESC】键退出编辑模式
输入 /#PasswordAuthentication yes
回车找到这一行,此时光标在 #
上,按【x】(小写)删除 #
号
按【ESC】键退出编辑模式,输入 :wq
保存并退出
启动sshd
systemctl start sshd
设置开机启动sshd
systemctl enable sshd
15.1.2 新建角色
在安装KDE前我们需要创建一个角色,KDE登录界面无法使用root角色登录,我们需要一个新角色用来登录
useradd -m 角色名
给这个角色设置密码
passwd 角色名
在使用普通角色时我们偶尔也需要root权限来执行一些命令,如安装软件等
这里安装一下sudo
pacman -S sudo
修改sudo配置文件
vim /etc/sudoers
输入搜索关键字 /root ALL=(ALL:ALL) ALL
回车,按【a】进入编辑模式,在这一行后面添加一行 角色名 ALL=(ALL:ALL) ALL
,表示给这个角色任何终端所有指令的权限
完成后按【ESC】键,输入 :wq!
保存并退出
15.2 安装KDE
使用以下命令安装KDE plasma桌面环境、KDE附带软件、中文字体
pacman -S plasma-meta kde-applications ttf-dejavu wqy-microhei
将KDE桌面设置为开机启动
systemctl enable sddm
重启之前我们先装个火狐浏览器以防需要(非必要)
pacman -S firefox
然后重启
reboot
此时查看虚拟机,重启之后会进入登录界面,输入你新建角色的密码就能进入系统
15.3 设置简体中文
点击左下角第二个图标进入系统设置,然后选择【Region & Language】,点击【Language】这一行的【Modify…】
点击【Change Language】,选择【简体中文】,点击【Apply】
返回点击【Restart Now】立刻重启
重启之后就是简体中文了
15.4 设置中文输入法
使用以下命令安装fcitx5输入法
pacman -S fcitx5 fcitx5-configtool fcitx5-chinese-addons fcitx5-gtk
使用vim打开 /etc/environment
配置文件
vim /etc/environment
按【a】进入编辑模式,在配置文件中加入以下配置,然后按【ESC】键退出编辑模式,输入 :wq
保存并退出
INPUT_METHOD=fcitx5
GTK_IM_MODULE=fcitx5
QT_IM_MODULE=fcitx5
XMODIFIERS="@im=fcitx5"
SDL_IM_MODULE=fcitx
重启或者注销然后重新登陆即可
16 其他问题
16.1 KDE使用掉帧
在使用KDE的过程中会明显感觉不流畅,目测帧率在40帧左右,可以通过【注销】回到登录界面,在【Session】处选择【Plasma(x11)】,登录后会感觉非常流畅
16.2 没有声音
每次启动虚拟机时VMware会提示:
切换可移动设备时遇到错误: 默认声音设备无法打开:
A device ID has been used that is out of range for your system.
声音连接控制操作失败。
具体原因可以点击这里查看这篇博客文章
在Windows 11中,底部导航栏鼠标右键点击系统音量图标 -> 声音设置 -> 所有声音设备 -> 立体声混音 -> “音频”处点击允许
然后在VMware中点击虚拟机 -> 可移动设备 -> 声卡 -> 连接
16.3 声音卡顿 (待解决)
在看视频或者听音乐时,声音会非常卡顿,但是过大约两三分钟后又会恢复正常,重启、注销后又会变得非常卡顿,很遗憾在我查阅N多文档后,做了很多操作均无效(包括安装pipewire)。在pipewire的wiki中提供了解决方法《音频卡顿(在虚拟机中)》 ,但是可能是因为我的操作姿势不对,没能解决😭,如果你也遭遇一样的问题,你可以看看这个wiki然后自己试试,万一就成功了呢🤔。如果后续这个问题解决了我会更新这篇帖子,如果你有解决方案欢迎评论区留言!
总结
我花了两天时间写下这篇教程,期间装了几十遍Arch、刷了N遍Arch Wiki和各种教程、踩了无数坑后终于总结出了能在VMware稳定安装Arch的经验。真的很想吐槽,有些教程总是在做一些很多余的事情,新手完全不明白这些步骤哪些是必须的,哪些是可选的,最后浪费时间在一些无意义操作上还安装不成功 !
我记得我第一次装好Arch和KDE并成功进入系统的那一刻真的很爽很有成就感。
如果你是像我一样的新手,我希望看到这里的你真的有认认真真将这篇教程看完,能明白教程每一步为什么要这样做,如果报错了该如何去解决,而不是一路复制粘贴,囫囵吞枣,这才是这篇教程的意义。
由于我也是新手😉,本教程如果有错误的地方欢迎评论区留言指出。