
KVM 徒手安装 Arch Linux
linux arch kvm qemu systemd fdisk neofetch pacman grub
观前提示: 本文是本人在一次次亲自试错中总结出来的, 可能不是最佳方案, 欢迎在下方评论区讨论 (可能有吧)
本教程除 KVM (QEMU) 以外还适用于所有使用 BIOS 方式引导的使用有线网卡的位于中国大陆的计算机, 其她情况根据实际自行调整即可
环境
❯ kvm --version
QEMU emulator version 8.2.4 (Debian 1:8.2.4+ds-1)
Copyright (c) 2003-2023 Fabrice Bellard and the QEMU Project developers
启动
-
从 mirrors.ustc.edu.cn 或其她 你喜欢的地方 下载得到安装映像💿
-
假设您已经将安装映像存放于文件
/media/sess/sess-aigo/for-pc-build/sysimg/archlinux-2024.08.01-x86_64.iso且已校验文件 HASH -
进入到您喜欢的目录中, 运行
qemu-img create -f raw arch.raw 12G, 这将在当然工作目录下生成一个名为arch.raw的大小为12884901888字节的文件. 您也可以使用别的您喜欢的格式或文件名 -
运行以下命令, 其中
arch.raw替换为你的磁盘文件名,raw替换为你的磁盘文件格式,1024M是您的客户机内存大小,-smp后面的是客户机 CPU 配置,-cdrom后面的是安装映像kvm --enable-kvm -drive file=arch.raw,format=raw \ -m 1024M -smp sockets=1,cores=1,threads=2 \ -cdrom /media/sess/sess-aigo/for-pc-build/sysimg/archlinux-2024.08.01-x86_64.iso -
最大化弹出的
QEMU窗口, 在菜单栏视图(V)中选中缩放以适应大小(F)与取消选中显示菜单栏 -
如果您的桌面环境为 KDE Plasma, 还可以设置 无标题栏和边框🪟
磁盘分区
-
启动后, 您应该可以看到以下这个界面, 通过键盘上的箭头键使得列表的第一个选项为高亮状态, 然后按下回车键 (Enter↩️)

-
启动到 live 环境后, 您应该能够注意到一条彩带, 下面一行是
root@archiso ~ #提示符 -
使用
fdisk -l命令查看所有分区, 假设您要安装到/dev/sda, 运行fdisk /dev/sda以开始编辑磁盘💾 -
依次操作
o回车 (create a new MBR (DOS) partition table)F回车 (list free unpartitioned space)- 根据屏幕上输出的可用空间自行判断如何分区
n回车 (add a new partition)- 回车 (primary), 回车 (1 (
sda1)), 回车 (2048) -2G回车 (磁盘尾部预留 2GiB 未格式化空间)n回车 (add a new partition)- 按四次回车 (将剩下的空间分给
sda2) t回车 (change a partition type)- 回车 (2 (
sda2)) swap回车a回车 (toggle a bootable flag)1回车 (1 (sda1))w回车 (write table to disk and exit)
-
运行以下命令
mkfs.ext4 /dev/sda1 # 格式化 sda1 为 ext4 mkswap /dev/sda2 # 初始化 sda2 为 交换空间 swapon /dev/sda2 # 启用交换空间 sda2 mount /dev/sda1 /mnt # 挂载 sda1 到 /mnt
安装系统
-
运行
reflctor --country cn --protocol https --save /etc/pacman.d/mirrorlist选择镜像站列表(如果你愿意, 可以在cn后面加上,hk,tw --f 20) -
运行
pacstrap -K /mnt base linux linux-firmware. 如果您使用虚拟机或容器, 也可以去掉linux-firmware -
运行
genfstab -U /mnt >> /mnt/etc/fstab以生成 fstab 文件. 强烈建议在执行完以上命令后,检查一下生成的 /mnt/etc/fstab 文件是否正确 -
运行
arch-chroot /mnt进入新系统 -
恭喜🎉, 安装成功✌
配置系统
-
运行
ln -sf /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime. 这将设置Asia/Hong_Kong(UTC+8) 为您的时区, 当然也可以为Asia/Shanghai或者别的 -
运行
hwclock --systohc以生成/etc/adjtime, 这个命令假定已设置硬件时间为 UTC 时间. -
运行
pacman -S vim以安装 vim 作为终端下的文本编辑器, 当然你如果不会用 vim 也可以换成 nano 啦 -
编辑
/etc/locale.gen, 取消en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8zh_HK.UTF-8 UTF-8zh_TW.UTF-8 UTF-8的注释 (这样就能避免不支持简体但是却显示英文的情况了) -
运行
locale-gen -
运行
echo "LANG=en_US.UTF-8 > /etc/locale.conf" -
护眼配置:
pacman -S terminus-font && setfont ter-h16b && echo "FONT=ter-h16b" > /etc/vconsole.conf, 若您使用高分屏则可能需要使用更大的数字 -
运行
echo "localhost" > /etc/hostname以设置您的主机名为localhost(不过真有人会用localhost而不是别的以避免混淆吗). 你也可以看看 RFC 1178 来 Choosing a Name for Your Computer -
运行
passwd以设置 root 密码🔑. 永远不要设置如114514一类的弱密码! -
运行
pacman -S grub && grub-install /dev/sda && grub-mkconfig -o /boot/grub/grub/cfg以安装 GRUB 到/dev/sda -
按下
Ctrl+D然后运行umount -R /mnt以退出 chroot 环境和卸载分区 -
恭喜🎉, 你已经成功安装好了一个基本的 Arch Linux, 运行
reboot重启进入新系统吧 <(≧▽≦)>
配置网络
-
输入账号密码以登入系统
-
接着, 你想
pacman -S neofetch && neofetch然后发现没网, 于是你开始徒手配置网络🛜 -
关于为什么泽生要把配置网络放在这里讲, 是因为这样就不会受到 live 环境自动配置网络的影响, 而且这里不只有网络配置还有别的一些 systemd 组件配置
-
当然了, 这样你就只有 systemd-networkd 一种选择了 (゜∀。)
-
运行
ip link查看所有网络接口, 可能的输出如下, 其中ens3是物理网络接口, 别名为enp0s3
-
编辑
/etc/systemd/network/20-wired.network为以下内容, 假设您使用的有线适配器为ens3, 且所在网络支持 DHCP (比如 KVM)[Match] Name=ens3 [Network] DHCP=yes -
编辑
/etc/systemd/resolved.conf, 取消注释DNS=并在后面追加8.8.8.8, 在刚刚输入的下面继续追加FallbackDNS=114.114.114.114, 就像下面这样, 以避免被网关污染 DNS[Resolve] DNS=8.8.8.8 FallbackDNS=114.114.114.114 -
运行
systemctl enable systemd-networkd.service systemd-resolved.service以启用 -
运行
systemctl start systemd-networkd.service systemd-resolved.service以启动 -
运行
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf以确保 DHCP 客户端不会乱修改 DNS 配置 -
运行
ping xhustudio.eu.org以验证网络连通性, 若不通再试试ping bilibili.com -
运行
systemctl enable systemd-timesyncd && systemctl start systemd-timesyncd以启用并运行时间同步
图形界面
-
现在您可以安装并运行
neofetch了
-
图形界面不是本文的重点,
pacman -S plasma即可安装完整的 KDE Plasma