无忧启动论坛

标题: 关于UEFI +GPT双硬盘多系统的grub2引导思路 [打印本页]

作者: poisons    时间: 2017-7-27 23:07
标题: 关于UEFI +GPT双硬盘多系统的grub2引导思路
本帖最后由 poisons 于 2017-8-1 17:46 编辑

起因:由于笔记本硬盘容量较小,只有240G,所以又加了一个240G的固态。

经过:打算两个固态各安装一个系统,win10 和 archlinux

结果:已经安装了win10 ,但单独在第二块硬盘建立ESP分区安装了archlinux后无论如何都无法引导,原理未知,目前解决无能。

现有解决思路:直接将 /boot挂载到win10的ESP分区上,可实现开机grub引导双系统的目的。

我的需求:1.开机从archlinux所在硬盘的ESP分区启动,然后grub引导界面选择windows或者archlinux。
                2.拔掉archlinux所在硬盘后不影响win系统正常启动。
                3.不要将/boot或者/boot/EFI挂载到win系统硬盘的ESP分区。
                4.开机不需要按F9选择启动哪一个系统。

我的想法:1.在archlinux所在硬盘上建立ESP分区,win主机硬盘不建立ESP分区,由archlinux硬盘ESP分区引导两个系统,不过我无法确定安装windows时会不会自己建立一个ESP分区,安装成功后拔掉archlinux硬盘win主机是否能够正常启动。
                2.天外有天,人外有人,我一定还没有见过足够多的克隆(抄袭)文档(博文)们,一定还有我没有发现的更好的办法。

一号实验:1.双硬盘格盘,在新加的硬盘上建立ESP分区,在电脑原有的硬盘上安装win10,结果,win10仅创建了MSR分区,没有重新建立ESP分区。
                2.拔掉新硬盘,win10无法UEFI启动。
                3.实验失败。

二号实验:1.双硬盘格盘,在新硬盘中建立ESP分区,同时在旧硬盘上建立ESP分区,在旧硬盘上安装win10,引导文件写入旧硬盘ESP分区,新硬盘ESP分区未使用。
                2.在新硬盘安装arch ,引导分区不挂在旧硬盘上,结果无法引导。
                3.实验失败。

一二对比:UEFI启动不会同时识别两个硬盘上的ESP分区。3号需求无法满足。
作者: lintrainwy    时间: 2017-7-28 01:23
试试把 ESP 分区的 grub.cfg 这样写

  1. set prefix=(${root})/boot/Grub
  2. set timeout=0

  3. if search -f /boot/grub/grub.cfg --set=root ; then
  4.         menuentry "Deepin Linux"{
  5.                 set prefix=($root)'/boot/grub'
  6.                 configfile $prefix/grub.cfg
  7.         }
  8. fi

  9. if search -f /grub/grub.cfg --set=root ; then
  10.         menuentry "Deepin Linux"{
  11.                 set prefix=($root)'/grub'
  12.                 configfile $prefix/grub.cfg
  13.         }
  14. fi
复制代码

作者: xmzhqw    时间: 2017-7-29 15:49
这个还不错,学习一下
作者: poisons    时间: 2017-8-1 17:36
本帖最后由 poisons 于 2017-8-1 17:47 编辑
comzhongwy 发表于 2017-7-28 01:23
试试把 ESP 分区的 grub.cfg 这样写


感谢你提出的解决方案,不过目前的问题似乎不是出在grub.cfg的问题上。
周末做了实验,似乎电脑只能够识别一个ESP分区,无论在哪个硬盘上建立ESP分区,主板只会识别第一个建立的ESP分区,第二个ESP分区直接忽视。-.-
作者: lintrainwy    时间: 2017-8-1 20:01
poisons 发表于 2017-8-1 17:36
感谢你提出的解决方案,不过目前的问题似乎不是出在grub.cfg的问题上。
周末做了实验,似乎电脑只能够 ...

搞什么飞机,搞那么多ESP分区干嘛

统一使用一个 ESP 分区

使用 grub2 引导就行 或者 同时添加 bootmgr 引导 和 grub2 引导到 UEFI,启动时按 ESC/F12 选择。

====================
按你的要求,在 win 硬盘 ESP 分区 使用 grub2 引导作为默认引导,同时保留 bootmgr 引导文件。

编写 grub2 菜单
  1. set prefix=(${root})/boot/Grub
  2. set timeout=10

  3. menuentry 'Windows Boot Manager 菜单' --unrestricted {
  4.     if [ 'pc' == $grub_platform ] ; then
  5.         if search --file --set --no-floppy /bootmgr ; then
  6.             chainloader +1
  7.         elif search --file --set --no-floppy /ntldr ; then
  8.             chainloader +1
  9.         else
  10.             echo '没有找到Windows'
  11.             sleep --verbose 5
  12.         fi
  13.     fi

  14.     if [ 'efi' == $grub_platform ] ; then
  15.         if search --file --set --no-floppy /EFI/Microsoft/Boot/bootmgfw.efi ; then
  16.             chainloader /EFI/Microsoft/Boot/bootmgfw.efi
  17.         else
  18.             echo '没有找到Windows'
  19.             sleep --verbose 5
  20.         fi
  21.     fi
  22. }

  23. if search -f /boot/grub/grub.cfg --set=root ; then
  24.         menuentry "Deepin Linux"{
  25.                 set prefix=($root)'/boot/grub'
  26.                 configfile $prefix/grub.cfg
  27.         }
  28. fi

  29. if search -f /grub/grub.cfg --set=root ; then
  30.         menuentry "Deepin Linux"{
  31.                 set prefix=($root)'/grub'
  32.                 configfile $prefix/grub.cfg
  33.         }
  34. fi
复制代码

作者: hdmhome    时间: 2020-8-22 13:07
lintrainwy 发表于 2017-8-1 20:01
搞什么飞机,搞那么多ESP分区干嘛

统一使用一个 ESP 分区

虽然像我这种菜鸟完全看不懂,不知对错,但才子从心里崇拜
作者: hdmhome    时间: 2020-8-22 13:08
学习下




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net./) Powered by Discuz! X3.3