1330 字
7 分钟
Arch+Windows双系统|Btrfs文件系统
2025-10-04
2026-06-12

此教程仅适用于 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

Terminal window
iwctl

查看无线网卡设备名:

Terminal window
device list

一般会看到类似 wlan0wlp3s0 这样的设备名。下面用 wlan0 作为例子,你需要替换成自己的实际名称。

扫描附近 Wi-Fi:

Terminal window
station wlan0 scan

查看扫描结果:

Terminal window
station wlan0 get-networks

连接你的 Wi-Fi:

Terminal window
station wlan0 connect 你的WiFi名称

如果 Wi-Fi 名称里有空格,记得加引号,例如:

Terminal window
station wlan0 connect "My Home WiFi"

输入密码后,等待连接完成,然后输入 exit 退出 iwctl,再重新测试网络:

Terminal window
ping baidu.com

有线宽带拨号(PPPoE)#

如果你是有线连接,但网络环境需要宽带拨号(PPPoE),可以这样连接:

先确认网线已经插好,然后运行:

Terminal window
pppoe-setup

这个命令会依次让你填写:

  • 网卡名称,一般是 enp3s0eth0 这类名字
  • 宽带账号
  • 宽带密码
  • DNS,直接选默认即可

配置完成后,启动拨号:

Terminal window
pppoe-start

拨号成功后,再测试网络:

Terminal window
ping baidu.com

如果后面需要断开拨号,可以执行:

Terminal window
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-ucodeamd-ucode

Intel:

pacman -S intel-ucode os-prober vim

AMD:

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-efi
mount /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

Arch+Windows双系统|Btrfs文件系统
https://blog.aloys233.top/posts/archwindows双系统btrfs文件系统/
作者
Aloys23
发布于
2025-10-04
许可协议
CC BY-NC-SA 4.0

评论