-
Notifications
You must be signed in to change notification settings - Fork 0
arch guide dual boot
本文面向 UEFI + GPT 机器,目标是在保留 Windows 的前提下安装 Arch Linux。开始前先阅读主安装指南
双系统最危险的不是 Arch 本身,而是选错磁盘、格式化 ESP/NTFS,或者在 Windows 休眠状态下修改 NTFS
Caution
先备份重要数据。示例设备名只用于解释,必须换成自己的 lsblk 结果。如果 Windows 启用了 BitLocker 或“设备加密”,关闭前应确认恢复密钥可用,防止解密完成前出现异常时无法访问磁盘
安装前在 Windows 完成:
- 关闭快速启动和休眠
- 如果启用了 BitLocker 或“设备加密”,将其关闭并等待解密完成;仅暂停保护并不等于磁盘已经解密
- 运行磁盘检查
- 使用“磁盘管理”压缩 Windows 卷,留下未分配空间
- 不要在 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
进入 Disk configuration → Manual Partitioning,选择正确的物理磁盘
选中已有 FAT32 ESP:
- 挂载点设为
/boot - 保留现有文件系统
- Format 必须为
No - 不创建第二个 ESP,除非你明确采用独立引导设计
只在预留的未分配空间中新建分区:
- 文件系统: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
确认 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。没有检测到时不要反复重装,转到引导排错
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。它是兼容性兜底,不是所有机器都必须执行的标准步骤
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必须确保 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 -vWindows 大版本更新可能调整启动顺序,但通常不会删除 Arch 文件。进入固件设置把 Arch/GRUB 调回第一项即可