前言

以下是准备工作

  1. 进入Wind 设置(Deepin EFI 引导替换 Wind EFI 引导)
  2. 进入 PE 里设置(设置 EFI 以及 Grub)
  3. 进入 Deepin 设置 (启动项 添加Wind 的引导)

这边安装的是 deepin linux 20.3v ,状态描述安装成功重启后无法进入deepin系统

(这边是先安装wind后安装linux)

关闭“快速启动”

关闭 BIOS 的 “Secure Boot”的功能

在默认情况下,UEFI 固件只会加载那些被签名的引导程序。在缺少 Secure Boot 功能的传统 PC 机上,恶意的后门程序可以加载自身,进而摇身一变伪装成一个引导程序。这样的话,BIOS 就会在启动的时候加载后门程序,这样它就可以躲过操作系统,把自己隐藏得很深。
但是不得不说,这对我们安装 Linux 造成了很大的困扰,也是直接导致我们重启到 Windows 10 后进不去 Linux 的原因。
首先我们要关闭这个功能:进入 BIOS 找到 Secure Boot,选择 disabled,这样就关闭了。当然,有些人进入 BIOS 会发现 Secure Boot 这个选项是灰色的(比如我的就是),这时你需要先给你的 BIOS 设一个密码,然后就能关 Secure Boot 了。

进入Win设置

  1. 进入管理员命令行(cmd),运行以下代码, “Deepin Linux EFI 引导”替换掉“Windows EFI 引导”
  2. bcdedit /set {bootmgr} path \EFI\Manjaro\grubx64.efi

开机完后你就会发现原来直接进入 Wnd 系统,现在是直接进入 Linux 系统。

进入PE设置

使用EasyBCD工具

  • 在Windows系统中安装EasyBCD:从官网下载并安装。
  • 添加Ubuntu引导项:打开EasyBCD,选择“添加新条目”,选择“Linux/BSD”,然后选择GRUB作为引导加载器。
  • 保存设置并重启

进入 Linux 设置

这一点是我安装 Arch Llinux 的时候发现的,Arch Linux 安装过程是手动安装的,在编写 GRUB 的时候会扫描不到 Windows Manager 所在的分区(当然可能不是所有人都会遇到),所以在 GRUB 界面可能会看不到 Windows Manager 选项,导致进不去 Windows 10,这里就需要手动编辑 GRUB 信息,我们打开 /boot/grub/grub.cfg 文件,发现里面确实没有 Windows 10 的启动信息,在后面加上:

menuentry "Microsoft Windows 10" {
  insmod part_get
  insmod fat
  insmod search_fs_uuid
  insmod chain
  search --fs-uuid --set=root $hints_string $fs_uuid
  chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

注意

这里的 $hints_string,代表的是终端执行命令:

1sudo grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

后的输出;

$fs_uuid 代表的是:

1sudo grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

的输出。

然后保存。在终端执行命令:sudo grub-mkconfig -o /boot/grub/grub.cfg,就 OK 了。

到此,Arch Linux 和 Windows 10 双系统也配置完毕了。

Q.E.D.

「低效的勤奋是懒惰的遮羞布,粗糙的完成是执行的绊脚石」