利用windows BCD引导文件引导Deepin,实现双系统
Tofloor
poster avatar
qiqunet
deepin
2019-06-26 17:30
Author
本帖最后由 qiqunet 于 2019-7-1 10:17 编辑

  先安装window,后安装deepin,deepin安装器默认情况下会添加引导window的菜单项,从而实现双系统。
但也有意外情况:

  1、deepin安装器有时就是不添加win启动项!!
  2、重装win而导致deepin启动菜单失效;
  3、因启用了联想保护和同传系统,从而导致deepin启动菜单失效;
  4、从deepin启动菜单引导win时花屏!(听说可以改善,参考:《从deepin启动Windows花屏解决方法》作者:ms100 https://bbs.deepin.org/post/179870#)

上述的这些问题,若改由windows系统所在分区作主引导,则一切问题都将不是问题。

  为了解决这一问题,我在网上淘了半个月,参考过许多网文,来来去去,一个离不开的名字是:easyBCD。
  然而,我真的是水平有限啊!也不知道是它折腾我,还是我折腾它,总之半个月下来,按着网上的教程捣鼓,自己思考着折腾,总之未见任何转机!!白忙了半个月……当然,过程中也偶而换了换工具Bootice。

  后来,偶尔读到CSDN上的一篇十年前的文章《使用grub4dos引导Linux》,受作者启发,茅塞顿开。就是利用grub4dos作引导工具,竟被我折腾成了!具体做法分为如下四步:
1、核实系统的主引导方式为winMBR,方法如下图:

2、到网上搜索并下载grub4dos提取里面的grldr和grub.exe两个文件(实际好像只需要grldr即可),它俩(主要是grldr放在windows系统盘(往往是C盘)的根目录下;
  
3、编辑grldr引导菜单
利用deepin-live、explore2fs、DiskGenius(新版本)等工具,查看linux系统盘的/boot/grub/(可能有所差别)下的grub.cfg或menu.lst文件,找到类似下面字样的关键两句:

linux /boot/vmlinuz-4.15.0-30deepin-generic root=UUID=6043827b-fcd8-42bd-abe8-5e74be3269b0 ro  splash quiet  DEEPIN_GFXMODE=$DEEPIN_GFXMODE
initrd /boot/initrd.img-4.15.0-30deepin-generic


上述两句中,实际版本号、UUID及后面的参数等可能与文中不同,总之将它们用记事本先复制记录下来。
在windows中下载Bootice软件(或进入winPE系统,PE系统中一般会预置Bootice。当然也可以到网上下载其他的grldr文件编辑器),用Bootice打开grldr文件进行编辑。方法及内容如下图所示:

即下面的7条语句:

default 0
timeout 0
title Deepin Linux
root (hd0,2)
kernel /boot/vmlinuz-4.15.0-30deepin-generic root=UUID=6043827b-fcd8-42bd-abe8-5e74be3269b0 ro  splash quiet  DEEPIN_GFXMODE=$DEEPIN_GFXMODE
initrd /boot/initrd.img-4.15.0-30deepin-generic
quiet

  其中最长的那两行的关键信息就来自于linux系统的grub.cfg或menu.lst。开头的关键词可能略有不同,但后面的语句及参数是一样的。
  “root (hd0,2)”这一句是指linux系统所在的磁盘分区,单词root之后要留一个英文字符的空格,参数视实际情况可能有所不同。具体是什么参数呢?如果你清楚知道,当然可以直接填写准确的数值(DiskGenius软件好像可以正确显示Linux分区的编号)。如果你并不是很清楚,我们也可以先不用计较,先填着(hd0,2)即第一块磁盘第2个分区的样子。
  在系统的引导的过程中,如果失败了,可以按“e”键对该参数进行临时编辑修改,修改完成后按“b”键即可使用新修改的参数来重新引导系统了,多试几个序号,总能蒙对的。蒙对进入系统后再正式修改grldr文件即可。

4、修改BCD引导文件
在windows中下载Bootice软件(或进入winPE系统,PE系统中一般会预置Bootice),用Bootice打开windows的BCD文件(一般为C:\boot\bcd)进行编辑。
在BCD文件中添加一个实模式启动项,盘符指向引导盘(C盘),引导文件指向“\grldr”即可。


---------------------

参考文献:
《使用grub4dos引导Linux》作者:flag_and_leg  https://blog.csdn.net/flag_and_leg/article/details/2884043
《GRUB4DOS入门》作者: hanford https://blog.csdn.net/hanford/article/details/53606539
Reply Favorite View the author
All Replies
2 / 2
To page
avatar
ShineWay
deepin
2020-05-02 20:43
#21
大佬newbee。
你这方法真的是简单明了方便快捷。
我之前照着好几个别的帖子设置引导,复制grub文件夹,修改grub.cfg之类的方式,怎么搞都没成功。
你这个方法只需要复制修改一个文件就成了,真是太有厉害了。
看了一下他们的文件里也有grldr,但是是无效的,看样子他们根本没有你这么钻透bcd引导方式。
真的是太感谢大佬了。
Reply View the author
2 / 2
To page