Skip to content

arch guide dual boot

ES edited this page Jul 16, 2026 · 1 revision

Arch Linux 与 Windows 双启动

本文面向 UEFI + GPT 机器,目标是在保留 Windows 的前提下安装 Arch Linux。开始前先阅读主安装指南

安全边界

双系统最危险的不是 Arch 本身,而是选错磁盘、格式化 ESP/NTFS,或者在 Windows 休眠状态下修改 NTFS

Caution

先备份重要数据。示例设备名只用于解释,必须换成自己的 lsblk 结果。如果 Windows 启用了 BitLocker 或“设备加密”,关闭前应确认恢复密钥可用,防止解密完成前出现异常时无法访问磁盘

安装前在 Windows 完成:

  1. 关闭快速启动和休眠
  2. 如果启用了 BitLocker 或“设备加密”,将其关闭并等待解密完成;仅暂停保护并不等于磁盘已经解密
  3. 运行磁盘检查
  4. 使用“磁盘管理”压缩 Windows 卷,留下未分配空间
  5. 不要在 Windows 中把未分配空间格式化成新卷

优先在 Windows 中压缩 NTFS。只有确认有完整备份且理解文件系统大小与分区边界区别时,才考虑从 Linux 使用 ntfsresize;公开指南不把高风险 Linux 缩盘作为默认流程

识别磁盘布局

在 Arch Live 环境运行:

lsblk -o NAME,PATH,SIZE,FSTYPE,FSVER,LABEL,PARTLABEL,MOUNTPOINTS,MODEL

常见单盘布局:

nvme0n1p1  vfat   EFI System Partition
nvme0n1p2         Microsoft reserved
nvme0n1p3  ntfs   Windows
nvme0n1p4  ntfs   Recovery
             ---  未分配空间

不要只凭分区编号判断。ESP 通常是 FAT32,但容量因厂商而异;Windows 主分区、恢复分区和数据盘都可能是 NTFS

archinstall 手动分区

进入 Disk configurationManual Partitioning,选择正确的物理磁盘

复用 Windows ESP

选中已有 FAT32 ESP:

  • 挂载点设为 /boot
  • 保留现有文件系统
  • Format 必须为 No
  • 不创建第二个 ESP,除非你明确采用独立引导设计

创建 Arch 系统分区

只在预留的未分配空间中新建分区:

  • 文件系统:Btrfs 或 ext4
  • 挂载点:/,或使用 Btrfs 默认子卷
  • Format:Yes

Windows NTFS、MSR 和 Recovery 分区保持不变,不挂载、不格式化

选择引导器

选择 GRUB;安装器会自动安装 GRUB 与 UEFI 工具。在 Additional packages 中另外加入:

os-prober

安装预览中必须同时满足:

  • 整块磁盘没有被标记为 Wipe
  • 只有新建的 Arch 分区会格式化
  • ESP 挂载到 /boot 但不会格式化
  • Windows 分区没有任何修改动作

不满足就返回修改,不能抱着“安装器应该知道”的心态继续

安装结束后先验证

安装完成选择 Exit archinstall,不要立刻重启:

lsblk -pf
findmnt -R /mnt

确认 Arch 根分区位于 /mnt,ESP 位于 /mnt/boot,然后进入新系统:

arch-chroot /mnt
df -h /boot
ls /boot/EFI

如果 ESP 是 Windows 创建的 100~260 MiB 小分区,空间可能非常紧张。不要先删除 Microsoft 目录;应优先确认内核、initramfs 和 GRUB 实际占用,必要时调整 initramfs 策略或扩容 ESP

让 GRUB 发现 Windows

确认 Windows 引导文件存在:

test -f /boot/EFI/Microsoft/Boot/bootmgfw.efi && echo 'Windows EFI found'

编辑 /etc/default/grub

GRUB_DISABLE_OS_PROBER=false

然后运行:

os-prober
grub-mkconfig -o /boot/grub/grub.cfg

输出中应同时出现 Linux 内核和 Windows Boot Manager。没有检测到时不要反复重装,转到引导排错

检查 UEFI 启动项

efibootmgr -v

正常情况下应能看到 GRUB/Arch 和 Windows Boot Manager。只有固件无法保存普通 NVRAM 启动项时,才考虑安装到 UEFI fallback path:

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch
grub-install --target=x86_64-efi --efi-directory=/boot --removable
grub-mkconfig -o /boot/grub/grub.cfg

--removable 会写入通用的 EFI/BOOT/BOOTX64.EFI。它是兼容性兜底,不是所有机器都必须执行的标准步骤

Windows 与 Linux 时间

Linux 默认把硬件时钟视为 UTC,Windows 默认视为本地时间。推荐让 Windows 使用 UTC,在管理员 PowerShell 执行:

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /t REG_DWORD /d 1 /f

然后在 Arch 确认时间同步:

timedatectl set-ntp true
timedatectl status

在 Arch 中访问 Windows 文件

必须确保 Windows 已真正关机且快速启动关闭。先手动测试挂载,再决定是否写入 fstab

lsblk -f
sudo mkdir -p /mnt/windows
sudo mount -t ntfs3 /dev/<Windows分区> /mnt/windows

使用完成后:

sudo umount /mnt/windows

如果报告卷处于 hibernated/unsafe state,应回 Windows 完整关机,不要使用强制删除休眠文件的挂载参数

更新后的维护

内核或 GRUB 更新后如菜单异常:

sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo efibootmgr -v

Windows 大版本更新可能调整启动顺序,但通常不会删除 Arch 文件。进入固件设置把 Arch/GRUB 调回第一项即可

参考

Clone this wiki locally