200字
磁盘分离双EFI分区Windows+ArchLinux双系统配置指南
2025-11-25
2025-11-27

近期机缘巧合之下,突然心血来潮想用一下Linux系统。但是博主胆子很小,很怕误操作把Windows系统搞崩了,因此采用了双硬盘分别做EFI分区,Linux下使用grub作为引导启动的方法。

目前我用的Arch Linux环境:
桌面环境

准备工作

  • 一个U盘(安装ArchLinux镜像用)

  • 一个装有两个硬盘的PC,其中一个硬盘装好windows系统

  • 良好的睡眠或重要数据备份,磁盘分配的部分一个疏忽就很可能摧毁你的windows系统!

前期准备

解锁bitlocker

详见:4 种简单方法:如何在 Windows 11 中关闭 BitLocker 加密

新磁盘分区

利用Windows的磁盘管理工具分出第二块磁盘的空闲空间。不要建立分区,分区在下文中分配

镜像下载与启动盘安装

找到形如下图的镜像站点,有能力的可以直连,并获取iso文件:
下载站点

接下来制作启动U盘,这里给出两种方案,请酌情选择:

Rufus

中文站点 | 官方下载页面

分区类型:UEFI引导选择GPT,BIOS引导选择MBR。
写入方式选择DD写入。

Ventoy

Github | NJU镜像站 | SDU镜像站

简单来说,Ventoy是一个制作可启动U盘的开源工具。

有了Ventoy你就无需反复地格式化U盘,你只需要把 ISO/WIM/IMG/VHD(x)/EFI 等类型的文件直接拷贝到U盘里面就可以启动了,无需其他操作。

正如官方介绍那样简单,只需要把Ventoy烧录进U盘后,直接把Arch Linux的iso文件放入u盘中即可启动。

U盘启动

进入你的电脑的BIOS模式(根据主板和笔记本品牌的不同,启动按键会有区别,请自行查阅相关资料)

  1. 关闭Secure Boot模式(一般在安全设置选项栏中)

  2. 在UFEI启动设置中把U盘启动的优先级拉到最高。

  3. 重启,进入引导菜单,选择Arch Linux install medium(x86_64, UEFI)

这样,系统应该就进入U盘中的Arch Linux系统了。如果屏幕上最后一行显示出如下信息,说明已经正确进入了系统。

root@archiso ~ #

在开始配置之前,请先确认网络是否正常

查看当前网络设备的锁定状态:

rfkill list

如果Soft blocked为yes,则需要解锁wifi:

rfkill unblock wifi

查看网卡设备,并根据网卡名启用网卡,替换*网卡名*为你的网卡名,如wlan0

ip link set *网卡名* up

进入网络配置界面并连接wifi(网卡名以wlan0为例):

注意:目前不能输入中文,SSID如果有中文字符的话,我的解决方案是手机开个全英文SSID的热点,再连接

iwctl                       #进入网络配置界面
station wlan0 scan          #扫描网络
station wlan0 get_networks  #打印扫描到的wifi
station wlan0 connect *SSID*  #SSID替换为你wifi的SSID,即网络名称
#输入wifi密码
exit                        #推出网络配置页面

ping一下连通性:

ping baidu.com

磁盘分区

全文最重点的地方来了!请小心对待您的重要数据!!!

查看磁盘布局:

fdisk -l

输出形式示例如下:

Disk /dev/nvme1n1: 238.47 GiB, 256060514304 bytes, 500118192 sectors
Disk model: Great Wall GW3300 256GB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 19F80251-F898-44B2-8603-DB366E36CCC1

Disk /dev/nvme0n1: 953.87 GiB, 1024209543168 bytes, 2000409264 sectors
Disk model: YMTC YMSS2ED08B66MC
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: F52B9027-C3BE-4C03-9870-C7FF5548E77C

Device              Start        End    Sectors   Size Type
/dev/nvme0n1p1       2048     534527     532480   260M EFI System
/dev/nvme0n1p2     534528     567295      32768    16M Microsoft reserved
/dev/nvme0n1p3     567296 1049145343 1048578048   500G Microsoft basic data
/dev/nvme0n1p4 1049145344 1996312575  947167232 451.6G Microsoft basic data
/dev/nvme0n1p5 1996312576 2000408575    4096000     2G Windows recovery environment

从以上输出结果可以看出,nvme1n1为我们需要安装LINUX系统的硬盘,而nvme0n1为已经装了Windows的硬盘

⚠️⚠️⚠️为了防止我的设备和你实际使用的的混淆,下文全都以形如*WindowsEFI分区*来替代nvme0n1p1*Linux硬盘*替代nvme1n1的形式进行阐述⚠️⚠️⚠️

我们需要对Linux系统的硬盘分三个分区:EFI引导分区、内存Swap分区、系统主分区。

fdisk /dev/*Linux硬盘*
  • 输入n创建efi分区,LastSector:+550M

  • 输入n创建swap分区,LastSector:+8G

  • 输入n创建主分区,LastSector:默认剩余所有空间

  • 输入w保存分区布局

同样,为了防止混淆,我先写一下我的对应关系表,请最好自己记录下自己的对照关系,以防失误!!!

分区名称

对应用途

nvme0n1p1

WindowsEFI分区

nvme1n1p1

LinuxEFI分区

nvme1n1p2

LinuxSwap分区

nvme1n1p4

Linux系统主分区

格式化分区:

mkfs.fat -F 32 /dev/*LinuxEFI分区*      #格式化EFI分区为fat32
mkfs.btrfs /dev/*Linux系统主分区*       #格式化主分区为btrfs
mkswap /dev/*LinuxSwap分区*             #创建Swap文件
swapon /dev/*LinuxSwap分区*             #指定分区为Swap

磁盘挂载

mount /dev/*Linux系统主分区* /mnt
mkdir /mnt/boot
mount /dev/*LinuxEFI分区* /mnt/boot

正式安装ArchLinux

前言:VIM基础操作

  • I键进入编辑模式,ESC键退出编辑模式

  • :wq 保存并退出,q! 强制退出

  • /*你要搜索的内容* 搜索内容,如/myFunction,回车键按序查找

添加镜像源

vim /etc/pacman.d/mirrorlist

在文件中添加你喜欢的镜像源,如:

Server = https://mirror.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch

:wq保存并退出

同步并更新本地储存库:

pacman -Sy

安装系统

在开始安装系统之前,需要更新keyring:

pacman -Sy archlinux-keyring

正式开始安装系统,以下的pacman包请根据自己的喜好进行删改,如果是完全的萌新请不要擅自修改(AMD处理器把intel-ucode改为amd-ucode):

pacstrap -K /mnt base base-devel linux linux-firmware sudo vim networkmanager e2fsprogs ntfs-3g intel-ucode

创建硬盘挂载的系统层次结构:

genfstab -U /mnt >> /mnt/etc/fstab

到这里,Arch Linux已经成功安装进你的硬盘中了,但是因为还没有配置grub引导双系统启动,接下来的操作建议仍然在U盘启动中完成,直到Grub配置完毕。

arch-chroot /mnt    #进入系统

本地化

配置时钟:

ln -sf /user/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --sytohc

语言:

vim etc/locale.gen

取消注释你想要的语言,如#en_US.UTF-8 UTF-8#zh-CH.UTF-8 UTF-8

locale-gen
vim /etc/locale.conf

输入LANG=en_US.UTF-8

创建账号

配置主机名:

vim /etc/hostname

直接输入你想要的主机名。

自动启动NetworkManager服务:

systemctl enable NetworkManager

创建账户:

useradd -m -G wheel -s /bin/bash *你想要的用户名*
passwd *你想要的用户名*

配置sudo权限:

visudo

取消注释# %wheel ALL=(ALL:ALL) ALL

配置Grub引导

安装Grub并进入Grub配置:

pacman -S grub efibootmgr os-prober
vim /etc/default/grub

搜索#GRUB_DISABLE_OS_PROBER=false 删除注释。

安装GRUB引导:

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB

查看Windows系统EFI分区的UUID缩写(形如A1B2-C3D4)的八位16进制数,并记录下来:

blkid /dev/*WindowsEFI分区*

创建配置文件,并手动添加Windows配置:

grub-mkcondig -o /boot/grub/grub.cfg
vim /boot/grub/grub.cfg

在如下两行注释之间添加Windows配置:

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 11" {
    insmod part_gpt
    insmod fat
    insmod chain
    search --fs-uuid --set=root XXXX-XXXX
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/30_os-prober ###

这个时候可以重启看一下Grub引导能不能正常使用了

exit
umount -R /mnt
reboot

安装桌面环境

首先安装显示服务器,我使用的是Wayland,请根据自己的喜好选择

pacman -S wayland

安装GUI并配置开机自启动,我使用的是Gnome,也一样请根据自己的喜好选择

pacman -S gnome gdm
systemctl enable gdm    #配置开机自启动

重启,进入GUI永远都会是激动人心的时刻!!!

reboot

GUI的配置,包括中文输入法、grub主题美化之类的不再赘述,请自行查阅资料。

评论