ArchLinux虚拟机安装指南
ArchLinux虚拟机安装指南
玩够了Ubuntu,还是觉得Ubuntu东西太多怎么办?试试Archlinux(
注意,本文章参考archlinux 基础安装 | archlinux 简明指南撰写,如有侵权请联系删除
创建虚拟机
现在就可以通过命令安装系统了
安装ArchLinux操作系统到磁盘
1. 禁用 reflector 服务
2020 年,archlinux 安装镜像中加入了 reflector
服务,它会自己更新 mirrorlist
(软件包管理器 pacman
的软件源)。在特定情况下,它会误删某些有用的源信息。这里进入安装环境后的第一件事就是将其禁用。也许它是一个好用的工具,但是很明显,因为地理上造成的特殊网络环境,这项服务并不适合启用。
1.通过以下命令将该服务禁用:
systemctl stop reflector.service
2.通过以下命令查看该服务是否被禁用,按下 q
退出结果输出:
systemctl status reflector.service
补充:
如何方便的把指令粘贴到虚拟机里,我们按下将光标移出虚拟机的黑窗口
然后按下ctrl + v
即可把命令复制进去
然后鼠标再移回去,就可以操作了
2. 确认是否是UEFI模式
禁用 reflector
服务后,我们再来确认一下是否为 UEFI
模式:
ls /sys/firmware/efi/efivars
3. 测试网络连通性
确保虚拟机已联通网络,所以需要测试网络连通性
通过 ping
命令测试网络连通性:
ping www.bilibili.com
按下ctrl + c
终止ping命令,只要有类似上图的输出就代表已联网
4. 更新系统时钟
使用 timedatectl
确保系统时间是准确的。这一步不是可选的,正确的系统时间对于部分程序来说非常重要:
timedatectl set-ntp true # 将系统时间与网络时间进行同步
timedatectl status # 检查服务状态
5. 更换国内软件仓库镜像源加快下载速度
使用 vim
编辑器修改 /etc/pacman.d/mirrorlist
文件。将 pacman
软件仓库源更换为国内软件仓库镜像源:
vim /etc/pacman.d/mirrorlist
放在最上面的是会使用的软件仓库镜像源,推荐的镜像源如下:
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch # 清华大学开源软件镜像站
Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch # 阿里云镜像站
Server = https://mirrors.ustc.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 # 兰州大学开源镜像站
6. 分区和格式化(使用 Btrfs 文件系统)
分区
1.通过 lsblk
命令,区分要安装 archlinux 的磁盘(通过观察磁盘的大小、已存在的分区情况等判断)并显示当前磁盘的分区情况:
lsblk # 显示当前分区情况
这里的sda就是待会要分区的硬盘
2.接下来使用 cfdisk
命令对磁盘分区(对于 SATA 协议的硬盘,x
为字母 a
、b
或 c
等等;对于 NVME 协议的硬盘,x
为数字 0
、1
或 2
等等,请根据实际情况判断):
cfdisk /dev/sda # 对安装 archlinux 的磁盘分区
进入 cfdisk
分区工具之后,你会看到如图所示的界面。通过方向键 ↑
和 ↓
可以在要操作磁盘分区或空余空间中移动;通过方向键 ←
和 →
在对当前高亮的磁盘分区或空余空间要执行的操作中移动。
3.首先创建EFI分区,存储操作系统引导选中 Free space
> 再选中操作 [New]
> 然后按下回车 Enter
以新建 EFI
分区
4.按下回车后会提示输入 分区大小
,EFI 分区我直接设置为了1G, 然后按下回车 Enter
6.默认新建的类型是 Linux filesystem
,我们需要将类型更改为 Linux swap
。选中操作 [Type]
> 然后按下回车 Enter
> 通过方向键 ↑
和 ↓
选中 EFI
> 最后按下回车 Enter
7.然后创建 Swap 分区。和上面一样的流程,只不过文件类型是Linux swap
,Swap 分区建议为电脑内存大小的 60%,或者和内存大小相等,我这里直接设置为4G了,因为我虚拟机设置的内存大小就是4G,然后按下回车 Enter
8.我们再只需要一个分区即可(因为使用 Btrfs
文件系统,所以根目录和用户主目录在一个分区上),所以类似的:选中 Free space
> 再选中操作 [New]
> 然后按下回车 Enter
以新建分区,剩下的空间全部分配就行了
9.接下来选中操作 [Write]
并回车 Enter
> 输入 yes
并回车 Enter
确认分区操作
如果不放心,可以再打开检查一下
确认无误
10.分区完成后,使用 fdisk
或 lsblk
命令复查分区情况:
格式化并创建 Btrfs 子卷
1.格式化 EFI 分区
mkfs.fat -F32 /dev/sda1
2.格式化 Swap 分区
mkswap /dev/sda2
3.格式化 Btrfs 分区
1.首先我们需要将整一个分区格式化为 Btrfs
文件系统。使用如下命令进行格式化:
mkfs.btrfs -L Arch /dev/sda3
-L
选项后指定该分区的LABLE
,这里以myArch
为例,也可以自定义,但不能使用特殊字符以及空格,且最好有意义
2.为了创建子卷,我们需要先将 Btrfs
分区挂载到 /mnt
下:
mount -t btrfs -o compress=zstd /dev/sda3 /mnt
-
-t
选项后指定挂载分区文件系统类型 -
-o
选项后添加挂载参数:compress=zstd
—— 开启透明压缩
3.使用 df
命令复查挂载情况:
df -h # -h 选项会使输出以人类可读的单位显示
4.创建 Btrfs 子卷
1.通过以下命令创建两个 Btrfs
子卷,之后将分别挂载到 /
根目录和 /home
用户主目录:
btrfs subvolume create /mnt/@ # 创建 / 目录子卷
btrfs subvolume create /mnt/@home # 创建 /home 目录子卷
2.通过以下命令复查子卷情况:
btrfs subvolume list -p /mnt
3.子卷创建好后,我们需要将 /mnt
卸载掉,以挂载子卷:
umount /mnt
7.挂载
1.在挂载时,挂载是有顺序的,需要从根目录开始挂载。使用如下命令挂载子卷:
mount -t btrfs -o subvol=/@,compress=zstd /dev/sda3 /mnt # 挂载 / 目录
mkdir /mnt/home # 创建 /home 目录
mount -t btrfs -o subvol=/@home,compress=zstd /dev/sda3 /mnt/home # 挂载 /home 目录
mkdir -p /mnt/boot # 创建 /boot 目录
mount /dev/sda1 /mnt/boot # 挂载 /boot 目录
swapon /dev/sda2 # 挂载交换分区
2.使用 df
命令复查挂载情况:
df -h
3.使用 free
命令复查 Swap 分区挂载情况:
free -h # -h 选项会使输出以人类可读的单位显示
8.安装系统
1.通过如下命令使用 pacstrap
脚本安装基础包:
pacstrap /mnt base base-devel linux linux-firmware btrfs-progs
# 如果使用btrfs文件系统,额外安装一个btrfs-progs包
base-devel
——base-devel
在AUR
包的安装过程中是必须用到的linux
—— 内核软件包,这里建议先不要替换为其它内核
2.通过如下命令使用 pacstrap
脚本安装其它必要的功能性软件:
pacstrap /mnt networkmanager neovim sudo zsh zsh-completions
我因为喜欢用neovim,所以安装的neovim,可以用vim
9.生成 fstab 文件
1.stab
用来定义磁盘分区。它是 Linux 系统中重要的文件之一。使用 genfstab
自动根据当前挂载情况生成并写入 fstab
文件:
genfstab -U /mnt > /mnt/etc/fstab
2.复查一下 /mnt/etc/fstab
确保没有错误:
cat /mnt/etc/fstab
10.change root
使用以下命令把系统环境切换到新系统下:
arch-chroot /mnt
此时,原来安装盘下的 /mnt
目录就变成了新系统的 /
目录。同时,可以发现命令行的提示符颜色和样式也发生了改变。
11.设置主机名与时区
1.首先在 /etc/hostname
设置主机名:
nvim /etc/hostname
我这里起名叫Arch了
2.接下来在 /etc/hosts
设置与其匹配的条目:
nvim /etc/hosts
加入如下内容:
127.0.1.1 Arch.localdomain Arch
3.随后设置时区,在 /etc/localtime
下用 /usr
中合适的时区创建符号链接:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
12.硬件时间设置
使用如下命令将系统时间同步到硬件时间:
hwclock --systohc
13.设置 Locale
Locale
决定了软件使用的语言、书写习惯和字符集。
1.编辑 /etc/locale.gen
,去掉 en_US.UTF-8 UTF-8
以及 zh_CN.UTF-8 UTF-8
行前的注释符号(#
):
nvim /etc/locale.gen
2.然后使用如下命令生成 locale
:
locale-gen
3.向 /etc/locale.conf
输入内容:
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
14.为 root 用户设置密码
passwd root
这里输入,不会显示出东西来,但实际上已经输入进去了,我这里输入的密码是root
15.安装微码
通过以下命令安装对应芯片制造商的微码:
pacman -S intel-ucode # Intel
pacman -S amd-ucode # AMD
16.安装引导程序
1.安装相应的包:
pacman -S grub efibootmgr
-S
选项后指定要通过 pacman
包管理器安装的包:
grub
—— 启动引导器efibootmgr
——efibootmgr
被grub
脚本用来将启动项写入 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
3.接下来使用 nvim
编辑 /etc/default/grub
文件:
nvim /etc/default/grub
进行如下修改:
- 去掉
GRUB_CMDLINE_LINUX_DEFAULT
一行中最后的quiet
参数 - 把
loglevel
的数值从3
改成5
。这样是为了后续如果出现系统错误,方便排错 - 加入
nowatchdog
参数,这可以显著提高开关机速度
4.最后生成 GRUB
所需的配置文件:
grub-mkconfig -o /boot/grub/grub.cfg
17.完成安装
输入以下命令
exit # 退回安装环境
umount -R /mnt # 卸载新分区
poweroff # 关机
开机
输入用户名和密码
成功登录