【2017.10.21】Windows下简单手动添加Deepin引导项
Tofloor
poster avatar
comzhong
deepin
2017-01-04 07:33
Author
本帖最后由 comzhong 于 2018-4-13 22:11 编辑

         Windows下手动添加Deepin引导,不能说是最好的方法,但是算是比较简单、实用
附件:
启动到Deepin引导菜单:win_grub2_deepin_2017.10.21.rar

Bootice_x86 x64_v1.3.4.zip
系统分区挂载管理1.4.0_x64_x86.zip
Notepad2 V5.0.26.0 绿色中文版.zip

======================
目录:
1 传统BIOS模式+MBR磁盘添加引导项
2 新型UFEI模式+GPT磁盘添加引导项
3 直接启动重要说明——直接启动deepin,不通过deepin的 /boot 分区中的grub
======================
重要补充说明
          如果文件系统不是 ext ,而是 btrfs 等等,不能启动 deepin,需要在 附件的 菜单:/boot/grub/grub.cfg 中,在:set timeout=0 下面添加如:insmod btrfs 等模块,以支持相应的文件系统。

……
set timeout=0
insmod btrfs
……
======================

     1 传统BIOS模式+MBR磁盘添加引导项
                1.1  使用附件:win_grub2_deepin 解压到C盘。

                1.2  打开bootice——BCD编辑——当前系统BCD——智能编辑模式,添加Grub4dos启动项,选择添加——新建实模式启动项(Grub/Linux),填写菜单标题(Deepin Linux)和启动文件路径(\boot\grub\grldr.mbr),保存当前系统设置,关闭bootice。

       2 新型UFEI模式+GPT磁盘添加引导项
                         2.1 下载挂载管理系统分区批处理系统分区挂载管理1.4.0_x64_x86.zip以管理员权限运行
1) 首先选择1挂载系统分区,根据提示挂载ESP分区.
2) 再选择3.  文件管理器 ,会打开一个资源管理器窗口,这个时候就可以在这个资源管理器窗口里面正常操作ESP分区文件了。
3) 操作完成后选择2.卸载系统分区,去卸载挂载的ESP分区。

                        2.2 启动到Deepin引导菜单使用附件:win_grub2_deepin 解压到到ESP分区。


                        2.3 添加UEFI启动序列,打开bootice,按下图添加启动序列,之后就可以在启动时按F12 或 ESC 选择了 , 或者在这里调整顺序为第一,或者较新的电脑可以进BIOS设置调整顺序也可以



       3 启动不成功             附件中的 grub.cfg 若不能成功启动,请用附件中 notepad2 编辑修改 /boot/grub/grub.cfg 内容,set root=(hd1,4) 如何确定请参见 5  判断启动分区号。
==============================
set prefix=(${root})/boot/Grub
set timeout=0
insmod btrfs

menuentry "Deepin Linux"{
         set root=(hd1,4)
        set prefix=($root)/boot/grub
        configfile  $prefix/grub.cfg
}
==============================


       4  直接启动重要说明——直接启动deepin,不通过deepin的 /boot 分区中的grub
                        菜文件为:/boot/grub/grub.cfg,菜单为UTF-8无BOM格式,编码不对可能出错,可以使用附件中 notepad2 编辑。

grub2 的第一磁盘好像是 grub2 所处磁盘,Linux 第一磁盘好像是 内核所处磁盘,所以双硬盘的要注意了。
==================================
set prefix=(${root})/boot/Grub
set timeout=0

menuentry "Deepin Linux"{
        set root=(hd0,4)
        linux /vmlinuz root=/dev/sda4 ro quiet splash
        initrd /initrd.img
}
=================================



5  判断启动分区号

grub2          Linux
(hd0,1)      /dev/sda1         第一硬盘的第一分区(通用于MBR与GPT分区)
(hd0,2)     /dev/sda2         第一硬盘的第二分区(通用于MBR与GPT分区)

(hd1,1)     /dev/sdb1         第二硬盘的第一分区(通用于MBR与GPT分区)
(hd1,2)     /dev/sdb2         第二硬盘的第二分区(通用于MBR与GPT分区)

5.1 grub2 命令行判断
         将附件中 /boot/grub/grub.cfg 修改 “set timeout=0” 时间改长,比如 “set timeout=10” ,删除后面的内容,启动到 grub2 菜单,按 C 进入 grub2 命令行,用 “ls” 命令查看有那些分区。

         再用 “ls (hd0,1)/” 看分区根目录文件,判断分区内容,比如deepin单分区时 “ls (hd1,3)/” 出现 deepin 分区文件,那么用下面两条命令
======================
set root=(hd1,3)
set prefix=($root)/boot/grub
configfile $prefix/grub.cfg
======================
应该就加载deepin 的 grub2 菜单了。之后进系统,修改前面 放在 Windows 下的gurb 2 菜单。

5.2 自己观察判断
比如:我是单硬盘 GPT分区表,linux 分区位于磁盘第 4 分区,则菜单中要改为:set root=(hd0,4) 和 root=/dev/sda4
比如:如果是单硬盘 MBR 分区表,主分区号依次是 1、2、3、4,不管有多少个主分区,扩展分区从 5 开始,依次是 5、6、7、8……。
           如下图,,linux 分区位于磁盘第一个扩展分区即第 5 分区,则菜单中要改为:set root=(hd0,5) 和 root=/dev/sda5
=====================================
硬盘安装和U盘安装Deepin_最简单iSO启动方法
https://bbs.deepin.org/post/135051

Reply Favorite View the author
All Replies
4 / 7
To page
dxqwx1
deepin
2017-04-12 02:10
#61
本帖最后由 dxqwx1 于 2017-4-11 18:14 编辑
https://bbs.deepin.org/post/133725
那你要添加legacy BIOS 的 grub2 或者用 grub4dos ,在BIOS里打开legacy兼容才行,你可以用这个帖子前面 ...

bios里没发现legacy兼容的选项。。。。。。。如果兼容用他自己的引导程序就可以。。。。。系统分区引导已安装好但只能虚拟机中运行(应该就是legacy兼容模式)。现在深度的引导都要进bios选或用软件选择才能进一次,好像win10会覆盖别的系统的引导不允许修改启动顺序,大概是主板限制。在mbr硬盘他的引导可以引导3个系统启动,他自己的引导好处是删除系统依然可以引导win和linux 不容易出问题。
Reply View the author
dxqwx1
deepin
2017-04-14 19:01
#62
https://bbs.deepin.org/post/133725
那你要添加legacy BIOS 的 grub2 或者用 grub4dos ,在BIOS里打开legacy兼容才行,你可以用这个帖子前面 ...

grub2加载 mbr硬盘 和gpt硬盘 分区名称也有区别吗?看到有人这么设置 menuentry
insmod part_gpt
insmod chain
set root='(hd0,gpt4)'
chainloader /EFI/haiku/BOOTX64.EFI
}
为何这么设置不懂  这个bootx64.efi可以用深度中的 boot目录中的bootx64.efi替代吗?
Reply View the author
comzhong
deepin
2017-04-14 19:38
#63
dxqwx1 发表于 2017-4-11 18:10
bios里没发现legacy兼容的选项。。。。。。。如果兼容用他自己的引导程序就可以。。。。。系统分区引导已 ...

有些电脑有额外设置,如联想在bios的exit中有个设置要设置为other os
Reply View the author
Comments
dxqwx1
2017-04-14 21:20
这个系统连装别的版本的win10都不可以。只能装厂家提供的win10版本
comzhong
deepin
2017-04-14 19:39
#64
本帖最后由 comzhong 于 2017-4-14 11:42 编辑
dxqwx1 发表于 2017-4-14 11:01
grub2加载 mbr硬盘 和gpt硬盘 分区名称也有区别吗?看到有人这么设置 menuentry
insmod part_gpt
insmo ...

你不是说 它不支持uefi吗?
(hd0,4)写法通用于mbr和gpt磁盘。
Reply View the author
dxqwx1
deepin
2017-04-14 21:15
#65
本帖最后由 dxqwx1 于 2017-4-14 13:18 编辑
https://bbs.deepin.org/post/133725
你不是说 它不支持uefi吗?
(hd0,4)写法通用于mbr和gpt磁盘。

就是不支持 uefi 那个人在linux下建立目录拷入映像文件然后用grub2引导 他的引导文件这么写的 不知他为何这么写。。。。。。。(hd0,4)这个写法  没有发现分区引导不成功 系统在虚拟机中大概按mbr分区建立的 可能不兼容。。。。。。。。。。haikuos分区在mbr分区 深度系统可以加载读取haikuos系统分区 在体验安装的深度中好像无法识别这个系统分区。可能这个原因造成无法引导。把mbr硬盘转为gpt格式在虚拟机中haukuos无法安装格式化分区不成功。
不知哪个人为何可以识别引导。。。。我再试试他的写法看看能否成功
Reply View the author
dxqwx1
deepin
2017-04-21 22:03
#66
https://bbs.deepin.org/post/133725
第一项就是自动搜索启动deepin,后面两项只是为了方便一些人罢了,可以删掉

...

chainloader +1 这个是传统bios用的,uefi不用。。。。。。。。。。。
那这句 用什么替代呢? 启动分区显示chainloader +1  应该是无法引导
Reply View the author
comzhong
deepin
2017-04-21 23:21
#67
本帖最后由 comzhong 于 2017-4-21 15:44 编辑
https://bbs.deepin.org/post/133725
chainloader +1 这个是传统bios用的,uefi不用。。。。。。。。。。。
那这句 用什么替代呢? 启动分区显 ...
UEFI下只能去启动文件,比如Linux的

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

  11. menuentry "Deepin Linux"{
  12.         if search -f /boot/grub/grub.cfg --set=root ; then
  13.         set prefix=($root)'/boot/grub'
  14.         configfile $prefix/grub.cfg
  15.         fi
  16.         if search -f /grub/grub.cfg --set=root ; then
  17.         set prefix=($root)'/grub'
  18.         configfile $prefix/grub.cfg
  19.         fi
  20. }

  21. menuentry "Deepin Linux" --class deepin --class gnu-linux --class gnu --class os{
  22.         search.fs_uuid 04b19db9-5f78-4cb0-ab7e-419fc68bcba1  --set=root
  23.         linux /vmlinuz root=UUID=04b19db9-5f78-4cb0-ab7e-419fc68bcba1  ro quiet splash
  24.         initrd /initrd.lz
  25. }
Copy the Code



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

  12.     if [ 'efi' == $grub_platform ] ; then
  13.         if search --file --set --no-floppy /EFI/Microsoft/Boot/bootmgfw.efi ; then
  14.             chainloader /EFI/Microsoft/Boot/bootmgfw.efi
  15.         else
  16.             echo '没有找到Windows'
  17.             sleep --verbose 5
  18.         fi
  19.     fi
  20. }
Copy the Code
Reply View the author
dxqwx1
deepin
2017-04-22 00:39
#68
https://bbs.deepin.org/post/133725
UEFI下只能去启动文件,比如Linux的

chainloader +1改成chainloader /EFI/Microsoft/Boot/bootmgfw.efi 这样是吧
如果没有这个 随便建一个就可以吧
Reply View the author
comzhong
deepin
2017-04-22 02:25
#69
https://bbs.deepin.org/post/133725
chainloader +1改成chainloader /EFI/Microsoft/Boot/bootmgfw.efi 这样是吧
如果没有这个 随便建一个就 ...

/EFI/Microsoft/Boot/bootmgfw.efi 是Windows的引导文件,不是随便建的。
Reply View the author
Comments
dxqwx1
2017-04-22 02:36
只是举个例子。。。。。。。。。
y***[email protected]
deepin
2017-05-18 21:18
#70
Reply View the author
comzhong
deepin
2017-05-21 10:12
#71
2017.5.21更新
Reply View the author
vkuotian
deepin
2017-05-25 08:04
#72
楼主,我用U盘安装的时候选快速安装只让指定了个根目录位置,现在进不到deepin系统;因为有Windows系统不知道应该怎么样手动分区安装,用附件挂载启动分区之后好像没有找到类似Linux系统内核文件之类的东西
Reply View the author
comzhong
deepin
2017-05-25 08:41
#73
本帖最后由 comzhong 于 2017-5-25 00:44 编辑
https://bbs.deepin.org/post/133725
楼主,我用U盘安装的时候选快速安装只让指定了个根目录位置,现在进不到deepin系统;因为有Windows系统不知 ...

附件挂载的是 ESP 分区 或者 引导分区,在Windows下是看不了Linux文件的

你是只指定了根分区,使用 启动到Deepin引导菜单 方式,会自动搜索 /boot/grub/grub.cfg 并加载,

如果使用 直接启动Deepin ,按 3 直接启动重要说明 里面修改一下就可以了
UEFI 方式 需要启动时 按F12 或 ESC 选择,或者在 bootice里面调整顺序为第一
Reply View the author
vkuotian
deepin
2017-05-25 20:41
#74
https://bbs.deepin.org/post/133725
附件挂载的是 ESP 分区 或者 引导分区,在Windows下是看不了Linux文件的

你是只指定了根分区,使用 启动 ...

我根据2强制指定了一下启动到grub菜单,重启一次有效,而且选择系统的时候只有deepin可用不能选Windows,再关机重启就又跳回Windows系统了,bootice里面看启动顺序deepin又回到了末位,直接在系统设置里也没有deepin的相关信息……
因为软件不全怕有不得不用Windows的时候,所以没敢直接格掉整个硬盘
Reply View the author
comzhong
deepin
2017-05-25 20:58
#75
本帖最后由 comzhong 于 2017-5-25 13:04 编辑
https://bbs.deepin.org/post/133725
我根据2强制指定了一下启动到grub菜单,重启一次有效,而且选择系统的时候只有deepin可用不能选Windows, ...

    Windows 以 UEFI 启动时会检测 主板中UEFI启动项 ,Windows 会检测UEFI序列里有没有它的启动项,如果没有,或者不是它自己添加的,就会自己添加一个,别的方式添加的Windows不认。再次用bootice 调整一下顺序,不要动 Windows Boot Manager 那个,只调Deepin 到前面就行了。

或者进Deepin,重新安装一下 grub:
BOIS固件:

0) 建立临时目录:mkdir /mnt/boot
1)  引导分区一般是/dev/sda1,挂载 引导分区 到 /mnt 目录:sudo mount /dev/sda1 /mnt/boot
2) 安装引导:sudo grub-install --target=i386-pc --root-directory=/mnt/boot /dev/sda
3)卸载引导分区:sudo umount /dev/sda1
4) 删除临时目录:rm -r /mnt/boot

UEFI固件:
0) 建立临时目录:mkdir /mnt/esp
1) esp分区一般是/dev/sda1,挂载 esp分区 到 /mnt 目录:sudo mount /dev/sda1 /mnt/esp
2) 安装引导:sudo grub-install --target=x86_64-efi --root-directory=/mnt/esp
3)卸载esp分区:sudo umount /dev/sda1
4) 删除临时目录:rm -r /mnt/esp

==============================
grub菜单 没有Windows的话,进Deepin,运行:sudo update-grub  或者  sudo update-grub2 ,正常情况都能找到Windows 添加进grub菜单。
Reply View the author
vkuotian
deepin
2017-05-25 21:15
#76
https://bbs.deepin.org/post/133725
Windows 以 UEFI 启动时会检测 主板中UEFI启动项 ,Windows 会检测UEFI序列里有没有它的启动项,如果 ...

我没有动Windows的启动配置,只是调了一下顺序,结果再启动就又成了Windows第一位了。我怀疑是主板上被厂家写了什么操作,回去改启动类型试试吧
Reply View the author
y***[email protected]
deepin
2017-05-25 21:33
#77
Reply View the author
luxl
deepin
2017-05-26 01:54
#78
本帖最后由 luxl 于 2017-5-25 17:58 编辑

MBR模式,启动到Deepin引导菜单方式会报错 “No symbol table. Press any key to continue”。按回车键然后才能进入deepin-------------------------------
一个额外的问题,为什么Deepin不能使用EasyBCD来引导呢(我试了,开机只有一个grub命令行)?我之前用的LinuxMint就一直可以。还有就是安装完Deepin后为什么要强制用Deepin的引导方式啊,我之前LinuxMint就不会强制(前提是将引导安装在对应的分区,而不是整个硬盘)
Reply View the author
comzhong
deepin
2017-05-26 02:27
#79
https://bbs.deepin.org/post/133725
MBR模式,启动到Deepin引导菜单方式会报错 “No symbol table. Press any key to continue”。按回车键然后 ...

没有MBR模式,一般是 BIOS+MBR磁盘,UEFI+GPT磁盘,你应该是 BIOS+MBR磁盘

          No symbol table错误,找到一篇文章:http://www.hackourlife.com/fixed ... ub_efi_secure_boot/
        大概意思应该是,没有找到默认的: EFI/Boot/bootx64.efi ,方法是复制一个 /EFI/deepin/grubx64.efi 过去并改名成 EFI/Boot/bootx64.efi
        但你不是 UEFI 方式 的话, 我就不知道了

         Deepin 可以使用EasyBCD来引导 ,但要 BIOS 方式启动的才行,应该是你操作有问题

        安装完系统更新引导是 安装系统 的过程之一,这不关什么强不强制的事
Reply View the author
luxl
deepin
2017-05-26 03:02
#80
https://bbs.deepin.org/post/133725
没有MBR模式,一般是 BIOS+MBR磁盘,UEFI+GPT磁盘,你应该是 BIOS+MBR磁盘

          No symbol table错 ...

你没遇到吗?我用的就是你的方式啊
Reply View the author
4 / 7
To page