(已解决)uefi 下grub2 如何启动15.1.1的ISO镜像?
Tofloor
poster avatar
comzhong
deepin
2016-03-10 12:07
Author
本帖最后由 comzhong 于 2016-3-10 20:32 编辑

uefi 下grub2 如何启动15.1.1的ISO镜像?

传统BIOS我可以启动ISO,UEFI下总是启动不了,怎么破?


看4楼
Reply Favorite View the author
All Replies
MattD
deepin
2016-03-10 17:58
#1
LZ如果有思路记得也告诉我下。
最近一直在折腾多启动安装U盘,也遇到这问题,尝试过memdisk和chainloader,但都不成功。
或者,你可以尝试在grub2以loop读取ISO以后,加载ISO里面的vmlinuz.efi这个内核,这样子就是以EFI stub模式启动的。但是我还是希望以更“原生”的方式来引导ISO……
Reply View the author
7f
deepin
2016-03-10 18:45
#2
https://bbs.deepin.org/post/35941#grub
https://bbs.deepin.org/post/33785#grub
搜索一下就有了
Reply View the author
comzhong
deepin
2016-03-11 04:31
#3
本帖最后由 comzhong 于 2016-3-11 15:58 编辑

3楼链接帖子中菜单写法正确,附上
menuentry "Deepin 2015 ISO" {
set isofile="/ISO/deepin-15-amd64.iso"
search --set -f $isofile
loopback loop $isofile
linux (loop)/live/vmlinuz.efi boot=live union=overlay username=user live-config  findiso=$isofile locales=zh_CN.UTF-8 quiet splash nomodeset
initrd (loop)/live/initrd.lz
}

但我后来又改了改,感觉和原来一样,居然又没问题了,有点奇怪
menuentry "深度Linux Deepin系统 ISO" --class deepin --class gnu-linux --class gnu --class os{
set isofile=/sys/deepin/deepin.iso
loopback loop $isofile
linux (loop)/live/vmlinuz.efi iso-scan/filename=$isofile boot=live quiet splash locales=zh_CN.UTF-8
initrd (loop)/live/initrd.lz
}

现在启动15.1.1的ISO有一小点问题,就是进桌面后桌面图标不可用,需要注销一下再登录就好了,不知怎么回事。另开个新帖贴上各种启动方法的菜单写法U盘各种引导启动 Deepin linux ISO 镜像 LiveCD
https://bbs.deepin.org/post/37964#page%3D1

Reply View the author
Feng Yu
deepin
2016-03-11 04:47
#4
我也有个各种iso的grub启动菜单。
http://git.oschina.net/abcfy2/grub-cfg
Reply View the author
MattD
deepin
2016-03-11 05:48
#5
https://bbs.deepin.org/post/37927
我也有个各种iso的grub启动菜单。
http://git.oschina.net/abcfy2/grub-cfg

然而不是我要的,这种方法只能针对带有efi stub内核的ISO,如果内核不带efi stub支持,那就完全没用了,只能引导legacy模式的ISO。
Reply View the author
Feng Yu
deepin
2016-03-11 18:30
#6
https://bbs.deepin.org/post/37927
然而不是我要的,这种方法只能针对带有efi stub内核的ISO,如果内核不带efi stub支持,那就完全没用了, ...

怎么引导交给grub去做了。grub可以实现同时支持UEFI和Legacy(这个在我的blog有说明),而引导菜单无需改变。

更原生的方式比较困难,难以做到通用性。所以你会发现UUI和YUMI这种看似原生的方式,其实内部也hack了不少。至少不是直接引导ISO,而是解压后重定向menu.lst
Reply View the author
MattD
deepin
2016-03-11 19:16
#7
https://bbs.deepin.org/post/37927
怎么引导交给grub去做了。grub可以实现同时支持UEFI和Legacy(这个在我的blog有说明),而引导菜单无需改变 ...

我知道你那种方式的原理和实现的结果……但是局限性就像我说的,如果某个发行版的ISO不带有efi stub内核,就无法以UEFI模式来引导目标ISO了。
那你目前对于不支持efi stub内核的ISO,有什么解决方法么?比如Slackware这种,它的ISO是通过自身的bootloader来切换UEFI和MBR模式,而不是像Deepin或Ubuntu这类,可直接通过ISO里面的内核来切换不同的模式。
Reply View the author