无忧启动论坛

 找回密码
 注册
搜索
最纯净的「微PE装机优盘」UEPON大师作品系统gho:最纯净好用系统下载站数据恢复、数据保护、视频编辑
Win To Go 极致利器(IXUNCIS固态U盘)无忧启动网成立20周年!广告联系 QQ:184822951 微信:wuyouceo
楼主: hilsonma

[分享] Grub2的简单使用

    [复制链接]
 楼主| 发表于 2019-12-28 16:39:58 | 显示全部楼层
江南一根葱 发表于 2019-12-28 16:16
最简单是下Grubfm源码,删光主题和其它用不到的模块,改一下内痣脚本,我就只弄过接受ipxe参数
...

源码我不会改啊,改了也不懂编译啊,会的话早就动手了

grub2搜索文件在qemu里是很慢,不过实机操作我觉得还可以接受。反正我用开了,感觉还可以。

点评

grubfm是grub2和lua的脚本源码 就是个grub2定制包  详情 回复 发表于 2019-12-28 17:25
回复

使用道具 举报

发表于 2019-12-28 17:25:44 | 显示全部楼层
hilsonma 发表于 2019-12-28 16:39
源码我不会改啊,改了也不懂编译啊,会的话早就动手了

grub2搜索文件在qemu里是很慢,不过实机操作我 ...

grubfm是grub2和lua的脚本源码
就是个grub2定制包

点评

感谢指点,等我静下心再看看。  详情 回复 发表于 2019-12-28 17:32
回复

使用道具 举报

 楼主| 发表于 2019-12-28 17:32:53 | 显示全部楼层
江南一根葱 发表于 2019-12-28 17:25
grubfm是grub2和lua的脚本源码
就是个grub2定制包

感谢指点,等我静下心再看看。
回复

使用道具 举报

发表于 2019-12-28 18:47:07 来自手机 | 显示全部楼层
hilsonma 发表于 2019-12-28 15:05
我不懂c语言,搞不来模块文件。
所以我只能通过使用配置文件来折衷实现,请参见我的模板。
我的模板中g ...

辛苦了,不过我觉得W大说的很有道理,做成菜单文件也不错,
回复

使用道具 举报

发表于 2019-12-28 19:00:05 来自手机 | 显示全部楼层
hilsonma 发表于 2019-12-28 15:05
我不懂c语言,搞不来模块文件。
所以我只能通过使用配置文件来折衷实现,请参见我的模板。
我的模板中g ...

怎么样在菜单中实现依次查找菜单,先查到哪个,就先加载哪个。谢了!

点评

不明白你的问题  详情 回复 发表于 2019-12-28 19:13
回复

使用道具 举报

 楼主| 发表于 2019-12-28 19:13:20 | 显示全部楼层
wangziqiang 发表于 2019-12-28 19:00
怎么样在菜单中实现依次查找菜单,先查到哪个,就先加载哪个。谢了!

不明白你的问题

点评

在不同的目录中查找菜单,先找到哪个,就加载哪个。  详情 回复 发表于 2019-12-28 19:27
回复

使用道具 举报

发表于 2019-12-28 19:27:15 来自手机 | 显示全部楼层
hilsonma 发表于 2019-12-28 19:13
不明白你的问题

在不同的目录中查找菜单,先找到哪个,就加载哪个。

点评

如果你的意思是目录不确定,也不固定层级的,那就要进行遍历,我们现在讲的类siso,就有类似的功能,你也可以参考grubfm.cfg,反正目前一两句是实现不了的。 如果是固定路径的几个可能的菜单,倒是可以一次search  详情 回复 发表于 2019-12-29 07:08
回复

使用道具 举报

发表于 2019-12-28 19:41:39 来自手机 | 显示全部楼层
感谢楼主解答,感觉还是有点吃力,只能慢慢消化。顺借贵宝地问问江南老大,lua是什么格式?能不能转成cfg?或有什么办法将其转成cfg?目前我只会用cfg进行简单修改。

点评

随便一搜就可以了解  发表于 2019-12-28 20:00
回复

使用道具 举报

 楼主| 发表于 2019-12-28 20:08:56 | 显示全部楼层

非常感谢。
现阶段我不需要启动安装镜像,我都是拿到镜像直接释放到系统盘然后用自己的bcd来启动的,什么时候这个办法不行了再考虑走安装。

评分

参与人数 1无忧币 +5 收起 理由
879792799 + 5 最好搞成 biso efi通吃siso模块就好了!!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2019-12-29 07:08:33 | 显示全部楼层
本帖最后由 hilsonma 于 2019-12-29 07:12 编辑
wangziqiang 发表于 2019-12-28 19:27
在不同的目录中查找菜单,先找到哪个,就加载哪个。

如果你的意思是目录不确定,也不固定层级的,那就要进行遍历,我们现在讲的类siso,就有类似的功能,你也可以参考grubfm.cfg,反正目前一两句是实现不了的。

如果是固定路径的几个可能的菜单,倒是可以一次search一个可能菜单,这样来搞定。g4d的预设内置菜单就是这样的,一次find一个菜单,一找到就启用,找完几个可能的菜单都没有就到命令行。
回复

使用道具 举报

发表于 2019-12-29 09:36:07 | 显示全部楼层
楼主的grub2支持exfat分区吗?

点评

自用版支持exfat,简单版不支持。 简单版我用来给别人装系统用的,不考虑u盘启动,所以没有加exfat模块。  详情 回复 发表于 2019-12-29 17:01
支持exfat分区的  详情 回复 发表于 2019-12-29 09:39
回复

使用道具 举报

 楼主| 发表于 2019-12-29 09:39:54 | 显示全部楼层
2012fengxi 发表于 2019-12-29 09:36
楼主的grub2支持exfat分区吗?

支持exfat分区的
回复

使用道具 举报

发表于 2019-12-29 09:44:15 来自手机 | 显示全部楼层
谢谢!
回复

使用道具 举报

发表于 2019-12-29 11:03:56 | 显示全部楼层
谢谢分享
回复

使用道具 举报

 楼主| 发表于 2019-12-29 17:01:41 | 显示全部楼层
本帖最后由 hilsonma 于 2019-12-29 17:06 编辑
2012fengxi 发表于 2019-12-29 09:36
楼主的grub2支持exfat分区吗?

自用版支持exfat,简单版不支持。
简单版我用来给别人装系统用的,在别人的硬盘上使用,所以没有加exfat模块。你看启动文件大小,简单版比自用版小很多。
回复

使用道具 举报

发表于 2019-12-30 09:29:50 来自手机 | 显示全部楼层
菜单中有没有类似goto的判断命令

点评

判断用if goto 不是要用标签吗,goto:标签 然后需要定义一个:标签 在grub2脚本和大多数编程语言里,直接使用标签,只是换个名字,叫函数。 例如: goto:label :label cls dir 换成函数: label  详情 回复 发表于 2019-12-30 13:09
回复

使用道具 举报

 楼主| 发表于 2019-12-30 13:09:19 | 显示全部楼层
wangziqiang 发表于 2019-12-30 09:29
菜单中有没有类似goto的判断命令

判断用if

goto 不是要用标签吗,goto:标签 然后需要定义一个:标签
在grub2脚本和大多数编程语言里,直接使用标签,只是换个名字,叫函数。

例如:
goto:label

:label
cls
dir



换成函数:
label

function label {
cls
dir
}

当然,函数不能象goto那样可以随意安插到脚本各个地方,因为从编程角度看这样比较容易发生错误,所以除了早期的编程语言有些含有goto语句,后来的编程语言都没有goto语句。

点评

谢谢了,辛苦  详情 回复 发表于 2019-12-30 23:18
回复

使用道具 举报

发表于 2019-12-30 23:18:46 来自手机 | 显示全部楼层
hilsonma 发表于 2019-12-30 13:09
判断用if

goto 不是要用标签吗,goto:标签 然后需要定义一个:标签

谢谢了,辛苦
回复

使用道具 举报

发表于 2019-12-30 23:37:31 来自手机 | 显示全部楼层
定制PC模式时提示 Decompressor is too big 是什么意思,搞了半天没搞明白

点评

定制语句是怎样的?  详情 回复 发表于 2019-12-31 07:18
回复

使用道具 举报

 楼主| 发表于 2019-12-31 07:18:34 | 显示全部楼层
wangziqiang 发表于 2019-12-30 23:37
定制PC模式时提示 Decompressor is too big 是什么意思,搞了半天没搞明白

定制语句是怎样的?
回复

使用道具 举报

发表于 2019-12-31 07:57:09 来自手机 | 显示全部楼层
和你的一样,我定制的是官网下的2.04

点评

我想知道你具体的参数,如: grub-mkimage -O i386-pc -p /boot/grub -o core.img part_msdos part_gpt fat exfat ntfs ext2 normal chain configfile search probe regexp test halt reboot help linux blocklist  详情 回复 发表于 2019-12-31 08:33
回复

使用道具 举报

 楼主| 发表于 2019-12-31 08:33:51 | 显示全部楼层
wangziqiang 发表于 2019-12-31 07:57
和你的一样,我定制的是官网下的2.04

我想知道你具体的参数,如:
  1. grub-mkimage -O i386-pc -p /boot/grub -o core.img part_msdos part_gpt fat exfat ntfs ext2 normal chain configfile search probe regexp test halt reboot help linux blocklist vhd
  2. Copy /B i386-pc\boot.img+core.img g2ldr
复制代码

点评

手机上网,有电脑了,再发!定制官网2.04的有问题,非官网好像没事  详情 回复 发表于 2019-12-31 10:07
回复

使用道具 举报

发表于 2019-12-31 09:25:50 | 显示全部楼层
我就想写个直接安装WIN10,ISO格式的

点评

用我的PE,把ISO里的esd提取出来,拖放到桌面的一键还原。 或者把我的一键还原脚本放到你的PE中,把ISO里的esd提取出来,拖放到脚本上。 我就是这样安装的。  详情 回复 发表于 2019-12-31 10:23
grubfm直接用啊,  详情 回复 发表于 2019-12-31 09:50
回复

使用道具 举报

发表于 2019-12-31 09:33:31 | 显示全部楼层
请教大佬一个问题,启动另一个grub2.efi,能够指定配置文件,而不是自动搜寻吗?
我记得论坛里曾经看到过解答,实在想不起来

点评

grub2.efi在定制生成的时候就指定了配置文件的,可以在启动之后重新指定,不过是有特殊需要才这样的,一般不建议这样操作。 当你重新引导grub2.ef或者引导新的grub2.efii时,又会使用其定制生成时指定的配置文件。  详情 回复 发表于 2019-12-31 10:33
回复

使用道具 举报

发表于 2019-12-31 09:50:30 | 显示全部楼层
jasonwang 发表于 2019-12-31 09:25
我就想写个直接安装WIN10,ISO格式的

grubfm直接用啊,

点评

是啊,现在grub2支持map启动iso. 不过我没有走过安装程序,不知走安装程序会不会改写efi引导  详情 回复 发表于 2019-12-31 10:39
回复

使用道具 举报

发表于 2019-12-31 10:07:07 来自手机 | 显示全部楼层
hilsonma 发表于 2019-12-31 08:33
我想知道你具体的参数,如:

手机上网,有电脑了,再发!定制官网2.04的有问题,非官网好像没事

点评

我刚试了,这样定制没有问题:  详情 回复 发表于 2019-12-31 10:16
回复

使用道具 举报

 楼主| 发表于 2019-12-31 10:16:29 | 显示全部楼层
wangziqiang 发表于 2019-12-31 10:07
手机上网,有电脑了,再发!定制官网2.04的有问题,非官网好像没事

我刚试了,这样定制没有问题:
  1. grub-mkimage -O i386-pc -p /boot/grub -o core.img part_msdos part_gpt fat exfat ntfs ext2 normal chain configfile search probe regexp test halt reboot help linux
  2. Copy /B i386-pc\boot.img+core.img g2ldr
复制代码

点评

估计是个案,官网2.02版没问题,w 大的试了几个版本也都没问题,不知官网的的2.04版怎么回事!谢谢你耐心的指导!  详情 回复 发表于 2019-12-31 19:06
回复

使用道具 举报

 楼主| 发表于 2019-12-31 10:23:46 | 显示全部楼层
本帖最后由 hilsonma 于 2019-12-31 16:32 编辑
jasonwang 发表于 2019-12-31 09:25
我就想写个直接安装WIN10,ISO格式的

我修改的PE,把ISO里的esd提取出来,拖放到桌面的一键还原。
或者把我的一键还原脚本(wimlib.cmd+bin文件夹)放到你的PE中,把ISO里的esd提取出来,拖放到脚本上。
我就是这样安装的。
回复

使用道具 举报

 楼主| 发表于 2019-12-31 10:33:14 | 显示全部楼层
zhangmi 发表于 2019-12-31 09:33
请教大佬一个问题,启动另一个grub2.efi,能够指定配置文件,而不是自动搜寻吗?
我记得论坛里曾经看到过 ...

grub2.efi在定制生成的时候就指定了配置文件的,可以在启动之后重新指定,不过是有特殊需要才这样的,一般不建议这样操作。
当你重新引导grub2.ef或者引导新的grub2.efii时,又会使用其定制生成时指定的配置文件。

点评

多谢,也就是说,只能启动以后再更改  详情 回复 发表于 2019-12-31 15:26
回复

使用道具 举报

 楼主| 发表于 2019-12-31 10:39:08 | 显示全部楼层

是啊,现在grub2支持map启动iso.
不过我没有走过安装程序,不知走安装程序会不会改写efi引导

点评

win原版安装镜像没有你说的那么简单。  详情 回复 发表于 2019-12-31 12:01
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2020-12-4 06:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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