无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 2012hsj17

[分享] 发现一个似乎可以逆天的神器。

  [复制链接]
发表于 2014-3-8 18:01:37 | 显示全部楼层 |阅读模式
本帖最后由 2012hsj17 于 2014-3-8 19:03 编辑

我下载了一个UEFi版的Android,发现它的引导器非常特殊。
Gummiboot.efi
引导方式把..\loader\entries\*.conf文件做为菜单文件。
每一个都是独立的引导项。
现在提供引导器:
Gummiboot.7z (449.64 KB, 下载次数: 340)
 楼主| 发表于 2014-3-8 21:16:57 | 显示全部楼层
最主要的是这个引导器似乎可以替代GRUB。注意是GRUB,不是GRUB2。也就是说理论上可以引导传统PE。
回复

使用道具 举报

发表于 2014-3-8 21:25:51 | 显示全部楼层
先看看。每次在这个论坛,最让我郁闷的是找不到专门讲引导的一些东西,都是给个工具,不给一些手动修改引导的说明。
回复

使用道具 举报

发表于 2014-3-8 21:27:41 | 显示全部楼层
额,突然想起来,之前为了带区卷改回了MBR引导。
回复

使用道具 举报

发表于 2014-3-9 02:17:59 | 显示全部楼层
下来看了一下,就是一堆efi执行文件而已。
何以认为是可以取代grub,而且可以引导传统的pe的,又何以逆天??

点评

看过那些conf文件了吗?里面的内容相当于grub里面的menu.lst 而且编码相近。也就是说只需要简单的转化,大多数的Linux和GRUB的PE很有可能可以在UEFI下加载运行。  详情 回复 发表于 2014-3-9 02:36
回复

使用道具 举报

 楼主| 发表于 2014-3-9 02:36:56 来自手机 | 显示全部楼层
fujianabc 发表于 2014-3-9 02:17
下来看了一下,就是一堆efi执行文件而已。
何以认为是可以取代grub,而且可以引导传统的pe的,又何以逆天 ...

看过那些conf文件了吗?里面的内容相当于grub里面的menu.lst 而且编码相近。也就是说只需要简单的转化,大多数的Linux和GRUB的PE很有可能可以在UEFI下加载运行。

点评

这些conf文件只是这个gummiboot的执行命令而已,类似于grub2中所执行的命令。android uefi版通过这个gummiboot来加载启动 没看出来和grub有何关系,更没看出bios下的pe通过这个东西执行的可能性。  详情 回复 发表于 2014-3-9 03:27
回复

使用道具 举报

发表于 2014-3-9 03:27:01 | 显示全部楼层
2012hsj17 发表于 2014-3-9 02:36
看过那些conf文件了吗?里面的内容相当于grub里面的menu.lst 而且编码相近。也就是说只需要简单的转化, ...

这些conf文件只是这个gummiboot的执行命令而已,类似于grub2中所执行的命令。android uefi版通过这个gummiboot来加载启动

没看出来和grub有何关系,更没看出bios下的pe通过这个东西执行的可能性。
回复

使用道具 举报

 楼主| 发表于 2014-3-9 11:35:15 来自手机 | 显示全部楼层
注意一下,grub2引导Linux时指向efi文件。也就是说必须把Linux改编。而gummiboot则是指向了非efi文件,和grub一样,不用改代码。

点评

uefi+grub2启动linux也是加载linux内核和initrd两条命令,不需要指向.efi文件  详情 回复 发表于 2014-3-9 17:17
回复

使用道具 举报

发表于 2014-3-9 17:17:51 | 显示全部楼层
2012hsj17 发表于 2014-3-9 11:35
注意一下,grub2引导Linux时指向efi文件。也就是说必须把Linux改编。而gummiboot则是指向了非efi文件,和gr ...

uefi+grub2启动linux也是加载linux内核和initrd两条命令,不需要指向.efi文件

点评

一下是64位乌班图14.04的grub.cfg文件的代码。 众所周知,64位的乌班图是用GRUB2来引导的。 其中第十二行代码就指向vmlinuz.efi[/backcolor]文件:而传统的grub则是指向vmlinuz[/backcolor] 所以说LINUX用grub2  详情 回复 发表于 2014-3-9 21:24
回复

使用道具 举报

 楼主| 发表于 2014-3-9 21:24:11 | 显示全部楼层
fujianabc 发表于 2014-3-9 17:17
uefi+grub2启动linux也是加载linux内核和initrd两条命令,不需要指向.efi文件

一下是64位乌班图14.04的grub.cfg文件的代码。

  1. if loadfont /boot/grub/font.pf2 ; then
  2.         set gfxmode=auto
  3.         insmod efi_gop
  4.         insmod efi_uga
  5.         insmod gfxterm
  6.         terminal_output gfxterm
  7. fi

  8. set menu_color_normal=white/black
  9. set menu_color_highlight=black/light-gray

  10. menuentry "Try Ubuntu without installing" {
  11.         set gfxpayload=keep
  12.         linux        /casper/vmlinuz.efi  file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash --
  13.         initrd        /casper/initrd.lz
  14. }
  15. menuentry "Install Ubuntu" {
  16.         set gfxpayload=keep
  17.         linux        /casper/vmlinuz.efi  file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity quiet splash --
  18.         initrd        /casper/initrd.lz
  19. }
  20. menuentry "OEM install (for manufacturers)" {
  21.         set gfxpayload=keep
  22.         linux        /casper/vmlinuz.efi  file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity quiet splash oem-config/enable=true --
  23.         initrd        /casper/initrd.lz
  24. }
  25. menuentry "Check disc for defects" {
  26.         set gfxpayload=keep
  27.         linux        /casper/vmlinuz.efi  boot=casper integrity-check quiet splash --
  28.         initrd        /casper/initrd.lz
  29. }
复制代码

众所周知,64位的乌班图是用GRUB2来引导的。
其中第十二行代码就指向vmlinuz.efi文件:
  1.     linux        /casper/vmlinuz.efi  file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash --
复制代码
而传统的grub则是指向vmlinuz
所以说LINUX用grub2来做uefi的引导还必须要从新写代码。
而gummiboot里面的conf文件,如“”里面的代码:
  1. title        Live Android session
  2. androidfile liveboot.img
复制代码

它直接指向img镜像,而不是efi文件。
grun是不行的



点评

现在64位的乌班图没有vmlinuz.都是用vmlinuz.efi引导,有的linux版本是统一用vmlinuz(bzImage)没有vmlinuz.efi文件。  详情 回复 发表于 2015-12-28 18:23
现在64位的乌班图没有vmlinuz.都是用vmlinuz.efi引导,有的linux版本是统一用vmlinuz(bzImage)没有vmlinuz.efi文件。  详情 回复 发表于 2015-12-28 18:23
回复

使用道具 举报

发表于 2014-3-9 22:31:59 | 显示全部楼层
哦!Ubuntu使用cdrom来加载,以前都是加载RAW内核

而这个02.androidfile liveboot.img有看看里面什么吗?会不会像initrd (loop)/casper/initrd.img一样

点评

我尝试过,打不开啊  详情 回复 发表于 2014-3-9 22:44
回复

使用道具 举报

 楼主| 发表于 2014-3-9 22:44:07 | 显示全部楼层
ali88home 发表于 2014-3-9 22:31
哦!Ubuntu使用cdrom来加载,以前都是加载RAW内核

而这个02.androidfile liveboot.img有看看里面什么吗 ...

我尝试过,打不开啊
回复

使用道具 举报

发表于 2015-12-27 16:37:24 | 显示全部楼层
多谢楼主提供这个.支持一下!!!
回复

使用道具 举报

发表于 2015-12-28 17:43:36 | 显示全部楼层
测试了。不能启动常见的img镜像。
回复

使用道具 举报

发表于 2015-12-28 17:43:39 | 显示全部楼层
测试了。不能启动常见的img镜像。
回复

使用道具 举报

发表于 2015-12-28 18:23:59 | 显示全部楼层
2012hsj17 发表于 2014-3-9 21:24
一下是64位乌班图14.04的grub.cfg文件的代码。

众所周知,64位的乌班图是用GRUB2来引导的。

现在64位的乌班图没有vmlinuz.都是用vmlinuz.efi引导,有的linux版本是统一用vmlinuz(bzImage)没有vmlinuz.efi文件。
回复

使用道具 举报

发表于 2015-12-28 18:23:59 | 显示全部楼层
2012hsj17 发表于 2014-3-9 21:24
一下是64位乌班图14.04的grub.cfg文件的代码。

众所周知,64位的乌班图是用GRUB2来引导的。

现在64位的乌班图没有vmlinuz.都是用vmlinuz.efi引导,有的linux版本是统一用vmlinuz(bzImage)没有vmlinuz.efi文件。

点评

这二货是一个,只是改成了.EFI而已,在G4D和WINLY下均能启动  详情 回复 发表于 2015-12-28 19:57
回复

使用道具 举报

发表于 2015-12-28 19:57:33 | 显示全部楼层
2011cwj6958 发表于 2015-12-28 18:23
现在64位的乌班图没有vmlinuz.都是用vmlinuz.efi引导,有的linux版本是统一用vmlinuz(bzImage)没有vmlinu ...

这二货是一个,只是改成了.EFI而已,在G4D和WINLY下均能启动
回复

使用道具 举报

发表于 2016-1-3 19:42:24 | 显示全部楼层
所以这个东西能不能引导普通的bootmgr?
efi就算了
回复

使用道具 举报

发表于 2017-1-23 09:55:01 | 显示全部楼层
楼主你out了
linux的内核永远只有一个,文件名可以任意,但内核只有一个
一个内核,两种启动方式——bios/efi
只要内核是x64的,就可以被efi引导器引导
比如windows,他的内核也只有一个——ntoskrnl.exe
但windows也是可以efi引导启动的
所以,不存在“重写代码”的问题,代码不需要重写
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-3-29 02:08

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表