此教程仅适用于 UEFI 设备。
前提与准备
开始之前,先确认这篇教程的前提:
- 电脑里已经安装了 Windows
- 目标磁盘已预留一块未分配空间给 Arch Linux
- 安装方式使用
archinstall - 文件系统使用
btrfs
下载Arch镜像:https://archlinux.org/download/
往下翻,在中国镜像站选一个点进去

下载iso结尾的文件

然后下载打开Rufus,https://rufus.ie/zh/
插入U盘,选择镜像,刷写镜像。

然后打开磁盘管理(Disk Management)

确保你想要安装linux的空间是无分区的

制作启动盘并进入安装环境
按住Shift,点击开始菜单中的重启按钮,然后稍等一会,进入这个页面,选择第二项。

然后选择你的U盘

随后会自动重启。
稍等片刻进入选择启动项。
BIOS:

UEFI:

选择第一个,或者等时间到自动选择。
然后便进入了archiso安装系统。

首先确保你电脑有网,可以ping一下百度。

注意:Linux 中的 ping 不会自动停止,使用 Ctrl+C 退出。
联网方式
如果 ping 不通,可以根据自己的网络环境,选择下面一种方式联网。
Wi-Fi
如果你现在还没连上 Wi-Fi,可以先用 iwctl 连接无线网络。
先进入 iwctl:
iwctl查看无线网卡设备名:
device list一般会看到类似 wlan0 或 wlp3s0 这样的设备名。下面用 wlan0 作为例子,你需要替换成自己的实际名称。
扫描附近 Wi-Fi:
station wlan0 scan查看扫描结果:
station wlan0 get-networks连接你的 Wi-Fi:
station wlan0 connect 你的WiFi名称如果 Wi-Fi 名称里有空格,记得加引号,例如:
station wlan0 connect "My Home WiFi"输入密码后,等待连接完成,然后输入 exit 退出 iwctl,再重新测试网络:
ping baidu.com有线宽带拨号(PPPoE)
如果你是有线连接,但网络环境需要宽带拨号(PPPoE),可以这样连接:
先确认网线已经插好,然后运行:
pppoe-setup这个命令会依次让你填写:
- 网卡名称,一般是
enp3s0、eth0这类名字 - 宽带账号
- 宽带密码
- DNS,直接选默认即可
配置完成后,启动拨号:
pppoe-start拨号成功后,再测试网络:
ping baidu.com如果后面需要断开拨号,可以执行:
pppoe-stop输入archinstall进入简易的安装程序。
这个页面可能会等一会。


使用 archinstall 安装
区域设置
语言和区域先不改。
选择第三项,回车。
然后选择第一项(Select regions),回车。

找到China,空格选择,回车保存退出。
然后选择Back,回到主页面。
磁盘分区
接着配置第4项,磁盘管理。

选择你的磁盘

然后选择刚刚的未分区空间

先分出1GiB作为efi分区。

文件系统选fat32,挂载点输入/boot。
然后继续分区。

这一次不用填大小,留空即可,然后回车。
文件系统选btrfs。
然后选择刚刚创建的btrfs分区。

创建 Btrfs 子卷
选择创建子卷。

创建@home子卷

然后挂载到/home

接下来的子卷操作一样:
- 子卷
@,挂载到/ - 子卷
@log,挂载到/var/log
然后就可以保存了。


其他安装选项
返回到主界面,其中Bootloader选择Grub。
Hostname主机名自己修改。
Authentication中创建账号,选择第二个创建用户账户。

然后这里会提示是否作为超级用户,选择是(默认)。

在Profile中可以选择你想要的桌面环境,我这里就不选了。
在Applications中选择蓝牙和音频。
音频选择Pipewire。
返回主菜单中选择网络配置(Network configuration)。
如果你是有线连接的,选择第一个即可。
然后在TimeZone中选择Asia/Chongqing或者Asia/Shanghai。
最后选择Install,开始安装。
安装完成后进入 chroot 环境
安装完后选择第三个。

配置 GRUB 并识别 Windows
先安装grub对应的依赖:对应你 CPU 的intel-ucode 或 amd-ucode。
Intel:
pacman -S intel-ucode os-prober vimAMD:
pacman -S amd-ucode os-prober vim然后编辑 /etc/default/grub。
vim /etc/default/grub找到 GRUB_DISABLE_OS_PROBER,然后按i进入编辑模式,删除这个#。

然后按ESC,退出编辑模式,输入:wq保存退出。
随后生成配置文件。
grub-mkconfig -o /boot/grub/grub.cfg观察输出文本,看是否有 Windows 字样出现。

比如我这个就没有出现 Windows,说明没有识别到 Windows 引导。
手动挂载 Windows EFI 分区
先输入lsblk -f确认分区情况。

然后找到你 Windows 的 EFI 分区,比如我这个就是 /dev/sda1。
创建挂载点并挂载分区:
mkdir -p /mnt/win-efimount /dev/sda1 /mnt/win-efi更新Grub配置:
grub-mkconfig -o /boot/grub/grub.cfg此时 Windows 的引导就出来了。

调整 EFI 启动顺序
接着我们查看启动顺序是否正确。
efibootmgr -v
观察BootOrder后面的顺序,然后和下面对比着看,我们要确保Grub在第一个,至少要比 Windows 更前面。
如果 Windows 在 GRUB 前面,那就参考下面命令修改。下面命令别抄,对照你自己的实际情况:
efibootmgr -o XXXX,XXXY退出并重启
exit 退出 chroot 环境。
umount -R /mnt 卸载 /mnt 下的所有硬盘。
reboot 重启设备。
随后便会进入 GRUB 引导选择。

常见问题
启动项没有 GRUB
执行 GRUB 安装:
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB随后再生成配置:
grub-mkconfig -o /boot/grub/grub.cfg再次查看:
efibootmgr -v