无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 63224|回复: 164
打印 上一主题 下一主题

[原创] GRUB2增强型模块发布 GRUB2.02~beta3-for-windows(完美一键定制)

    [复制链接]
跳转到指定楼层
1#
发表于 2016-4-17 22:24:09 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 linglongx 于 2016-9-9 18:06 编辑

2016-9-9  
GRUB2.02~beta3制成BIOS  UEFI_X32 UEFI_X64三启光盘镱像一键生成,下载好附件解压后按照里面的说明文本生成即可.

https://pan.baidu.com/s/1bpwRaGJ#path=%252F%25E5%2588%2586%25E4%25BA%25AB%25E6%2596%2587%25E4%25BB%25B6%25E5%25A4%25B9%252FGRUB2



2016-4-25  
grub2制成 DELL slic  V2.3 引导.
希望大家测试并反馈一下。
用法:


把系统根目录下的 bootmgr 文件改名为 boormgr7 下载的文件解压后更名为 bootmgr 放到 系统盘根目录

如果不想直接引导进系统则将系统原来的 boormgr更改为其它名称 再自己用 GRUB2.02~beta3-for-windows 生成光盘版引导文件
把生成的 boot文件夹复制到系统盘覆盖系统盘的boot文件夹,注意看看系统盘中的Boot文件夹,如果第一个字母是大写B则改为小写的boot
之后编辑boot\grub\grub-bios.cfg 加入引导原boormgr改名后的启动项(也即启动系统)

g2ldr_slic.7z (105.13 KB, 下载次数: 409)
欢迎喜欢拆腾的人加入 GRUB2编译与定制QQ群 512143502



2016-4-19  
   这几天研究grub2,发现grub2中有个date命令很好用,可以在grub2控制台或配置文件用来修改系统日期与时间,在控制台中还能输出系统当前时间。

date命令的语法是: date 不带参数     在控制台输出系统当前日期与时间
                              date yyyy-mm-dd hh:mm:ss 修改系统当前日期与时间
                              date yyyy-mm-dd                修改系统当前日期
                              date hh:mm:ss                    修改系统当前时间




但是如果我要根据日期或时间来判断什么时间或日期开启什么功能或菜单项该怎么办呢,官方的date模块命令只能在控制台中输出系统当前日期与时间,

无法放到变量中用来作判断条件。默认grub2所有命令的返回值只有0与1,即成功与否。

如是下载了一份grub原码重新改写了一下date模块原码,加入了 h 参数 ,用来返回系统当前日期。在ubuntukylin-15.10-desktop编译通过;

编译出的date模块在grub-2.02-for-windows中使用通过



使用方法如下

1.用本模块替换grub2模块目录中的date模块。或是替换grub-2.02-for-windows中 i386-pc 中的date模块,再自行生成启动映像。
(不会的可以看 本论坛


極限驅動  的帖子
http://bbs.wuyou.net/forum.php?m ... 9411&extra=page%3D1

2012angelkyo   的帖子
http://bbs.wuyou.net/forum.php?m ... 5871&extra=page%3D1


2.控制台中测试

进入控制台普通模式(在启动菜单介面按 C 或是 Ctrl + C 进入控制台命令模式)

grub>date h
grub>vv=$?
grub>echo $vv
grub>20160417
grub>



(注:  vv 为声明的个人环境变量,用来保存 date h 命令返回的日期,名称可以自定义,不过不能与grub2的原字符与保留字相同;
         $ 为变量引用运算符,后面紧跟变量名即获得变量值; 而 $? 即为获得上一命令的返回值,那么 vv=$? 当然就是把 date h 的
          返回值保存到变量 VV 中;  echo $vv即是输出变量的值;这儿还要注意一点的就是  vv=$? 这儿的赋值表达式,grub2同很多
         编程语言的宽松赋值格式不同, vv=$? 中的 = 号两边一定不能有空格。)


2.菜单中应用

   在菜单中可以这样写


date h
hh=$?

if [ "${hh}" -gt "20160101" ]; then
   #判断系统时期是否大于 20160101
  echo "system is 20s stdudown"
#显示提示信息,注:这儿不能使用中文,使用中文乱码
   
   sleep -v 20
  #设置20秒延时并显示倒计时

   halt  
  #关闭计算机
fi

#这儿的 fi 不能漏了

#严格注意语法,不然会出错.
#  if [ "${hh}" -gt "20160101" ]; then 这一句是这么个格式的   if空格[空格"${hh}"空格-gt空格"20160101"空格];空格then  
#
#

还可以这样写

date h
hh=$?

if [ "${hh}" -gt "20160101" ]; then
   #判断系统时期是否大于 20160101
  echo "system is 20s stdudown"
#显示提示信息,注:这儿不能使用中文,使用中文乱码
   
   sleep -v 20
  #设置20秒延时并显示倒计时

   halt  
  #关闭计算机


else

menuentry "启动 MaxDos7强化版(各种DOS下的磁盘、BIOS及网克工具)" --class osx --class frugalware {
        insmod part_msdos
        insmod fat
        linux16 /boot/grub/memdisk img raw
        initrd16 /boot/grub/imgs/MAXDOS.IMG
}


fi


如果使用 if....else....fi   语句,记得 else 与 fi 之间一定要有命令内容,不然也会出错。



最后要注意的是不能在内嵌菜单中使用.加载内嵌菜单时很多模块没有加载使用,所以很多命令不能用,
这儿的内嵌菜单是指使用  grub-mkimage.exe -d i386-pc -C auto -c out\grub-bootstrap-bios-hd.cfg -p /boot/grub -o .\out\core.img -O i386-pc -v biosdisk part_msdos fat ntfs search_fs_file

命令生成启动映像时的 grub-bootstrap-bios-hd.cfg这儿的菜单




本增强模块暂时只加入了返回日期的功能,有时间再加上返回时间的功能

date.mod.7z (1.6 KB, 下载次数: 48)

附上 GRUB2 中脚本的条件判断运算符

其实同 Bosh 脚本语言差不多,不过因为 < 与 > 在grub2中属于保留字符,所以下面这些条目中带 < 或 > 的条目不能直接用
< 可以用  -lt        ,   <=    >    >= 可以按下面的相关运算符代替。

在菜单中还可以用转义符  /  来代替 ,如  <  可以使用  /< 代替
不过在控制台就无法使用转义符.





string1 == string2 [string1 与 string2 完全相同]

string1 != string2 [string1 与 string2 不完全相同]


string1 < string2 [string1 在字母顺序上小于 string2]
string1 <= string2 [string1 在字母顺序上小于 string2 或与 string2 完全相同]
string1 > string2 [string1 在字母顺序上大于 string2]
string1 >= string2 [string1 在字母顺序上大于 string2 或与 string2 完全相同]


integer1 -eq integer2 [integer1 等于 integer2]

integer1 -ge integer2 [integer1 大于或等于 integer2]

integer1 -gt integer2 [integer1 大于 integer2]

integer1 -le integer2 [integer1 小于或等于 integer2]

integer1 -lt integer2 [integer1 小于 integer2]

integer1 -ne integer2 [integer1 不等于 integer2]

prefixinteger1 -pgt prefixinteger2 [剔除非数字字符首部之后,integer1 大于
integer2]

prefixinteger1 -plt prefixinteger2 [剔除非数字字符首部之后,integer1 小于
integer2]

file1 -nt file2 [file1 的修改时间比 file2 新]

file1 -ot file2 [file1 的修改时间比 file2 旧]

-d file [file 存在并且是一个目录]

-e file [file 存在]

-f file [file 存在并且不是一个目录]

-s file [file 存在并且文件尺寸大于零]

-n string [string 的长度大于零]

string [string 的长度大于零]

-z string [string 的长度等于零]

( expression )  将 expression 视为一个整体(分组)

! expression  非(NOT)

expression1 -a expression2  与(AND)

expression1 -o expression2  或(OR)




编译自用的 GRUB2.02~beta3-for-windows  i386-pc   i386-efi  x86_64-efi 三个平台的模块都已加入本增强型date.mod模块。


要的朋友在这儿下:

http://pan.baidu.com/s/1bpwRaGJ



评分

参与人数 3无忧币 +15 收起 理由
boy6585948 + 5 很给力!
rgy + 5 很给力!
有阴也有阳 + 5

查看全部评分

推荐
发表于 2016-4-18 07:24:09 | 只看该作者
谢谢!学习一下了……
回复

使用道具 举报

166#
发表于 2020-6-2 20:11:30 | 只看该作者
文件下载地址失效了 大哥
回复

使用道具 举报

165#
发表于 2020-3-27 08:50:15 | 只看该作者
这个好用,谢谢
回复

使用道具 举报

164#
发表于 2020-3-27 08:50:14 | 只看该作者
这个好用,谢谢
回复

使用道具 举报

163#
发表于 2020-3-27 08:50:12 | 只看该作者
这个好用,谢谢
回复

使用道具 举报

162#
发表于 2020-2-8 13:28:00 | 只看该作者
youlin211 发表于 2020-2-7 18:58
我看Grub2的默认加载的prefix 是 /BOOT/GRUB/GRUB.CFG。

就是不清楚这个g2ldr.slic(bootmgr),使得Gurb ...

看来我后面的推理是正解的,不然也不会出现正常启动\修复计算机了因为是正在使用的VHD养分系统,所以也没有在虚拟机里面改动,开始是卡在GRUB2那
回复

使用道具 举报

161#
发表于 2020-2-8 13:22:52 | 只看该作者
youlin211 发表于 2020-2-7 18:58
我看Grub2的默认加载的prefix 是 /BOOT/GRUB/GRUB.CFG。

就是不清楚这个g2ldr.slic(bootmgr),使得Gurb ...

我用Q启动测试器测试了下,可以过去了,就是启动不了!是差分的,不敢修改父VHD,也没有合并过,不知道合并后会不会删除原有VHD,想下载一个新的7,纯净点的重新安装下看看
回复

使用道具 举报

160#
发表于 2020-2-7 19:03:40 | 只看该作者
我看他在一篇帖子上常用默认的,哈哈,试试。study

未命名截图.png (64.03 KB, 下载次数: 283)

未命名截图.png
回复

使用道具 举报

159#
发表于 2020-2-7 18:58:03 | 只看该作者
我看Grub2的默认加载的prefix 是 /BOOT/GRUB/GRUB.CFG。

就是不清楚这个g2ldr.slic(bootmgr),使得Gurb2在定制時啟動後找不到路徑


这个上面有详细介绍
http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1

未命名截图.png (52.09 KB, 下载次数: 259)

未命名截图.png
回复

使用道具 举报

158#
发表于 2020-2-7 18:35:12 | 只看该作者
youlin211 发表于 2020-2-7 16:42
嗯嗯,
1.  boormgr7是空文件,自己备注用的(应该是由楼主说的window7的根目录bootmgr改成bootmgr7)
2. ...

不知道为什么在7下挂载不了,我是在10的pe下弄的!包里面的boormgr7是空文件我的是bootmgr改成bootmgr7,我重启再试试看
回复

使用道具 举报

157#
发表于 2020-2-7 18:31:49 | 只看该作者
youlin211 发表于 2020-2-7 16:42
嗯嗯,
1.  boormgr7是空文件,自己备注用的(应该是由楼主说的window7的根目录bootmgr改成bootmgr7)
2. ...

我才反应过来,是不是我弄的不对?现在的boormgr就是g2ldr_slic原来的bootmgr改名为boormgr7了\BOOT\GRUB\grub.cfg里面的if search --file --set /bootmgr7 ; then好像是没有错不用改开机时还是调用但是bootmgr现在的bootmgr是GRUB2的所以要指向boormgr7
回复

使用道具 举报

156#
发表于 2020-2-7 16:42:32 | 只看该作者
嗯嗯,
1.  boormgr7是空文件,自己备注用的(应该是由楼主说的window7的根目录bootmgr改成bootmgr7)
2.  grub.cfg里面的if search --file --set /bootmgr7 ;
-->bootmgr7修改成bootmgr

我猜还是grub.cfg的问题
回复

使用道具 举报

155#
发表于 2020-2-7 16:32:06 | 只看该作者
youlin211 发表于 2020-2-7 13:20
闲来无聊,看了一圈,好像 BIOS Grub2 需要 grub.cfg。

C盘根目录 /BOOT/GURB/GRUB.CFG

不行!还是那样!
包里面的boormgr就是g2ldr_slic要改名成bootmgr,bootmgr7就是bootmgr需要改名为boormgr7
\BOOT\GRUB\grub.cfg里面的if search --file --set /bootmgr7 ; then修改成bootmgr
是这样吗?
回复

使用道具 举报

154#
发表于 2020-2-7 14:25:01 | 只看该作者
youlin211 发表于 2020-2-7 13:20
闲来无聊,看了一圈,好像 BIOS Grub2 需要 grub.cfg。

C盘根目录 /BOOT/GURB/GRUB.CFG

谢谢!我看看
回复

使用道具 举报

153#
发表于 2020-2-7 13:20:42 | 只看该作者
ge 发表于 2017-3-10 10:19
g2ldr_slic只能在纯BIOS下使用?怎么在虚拟机里面启动不了呢?安装完成的WIN7无论是在BIOS和UEFI下都可以正 ...

闲来无聊,看了一圈,好像 BIOS Grub2 需要 grub.cfg。

C盘根目录 /BOOT/GURB/GRUB.CFG

试试行不?

我是windows server 2019,直接改bootmgr为g2ldr_slic,加载不了

BIOS Grub2.cfg.7z

106.36 KB, 下载次数: 4, 下载积分: 无忧币 -2

回复

使用道具 举报

152#
发表于 2019-3-15 22:22:17 | 只看该作者
多谢楼主的分享!
回复

使用道具 举报

151#
发表于 2018-9-13 16:47:39 | 只看该作者
链接失效了,楼主有时间可以把链接补上吗?多谢
回复

使用道具 举报

150#
发表于 2018-8-26 00:40:03 | 只看该作者
想自己集成 Slic2.1 还在研究中,先来测试下,谢谢分享
回复

使用道具 举报

149#
发表于 2018-2-22 10:09:30 | 只看该作者
链接失效了,楼主补个链接吧
回复

使用道具 举报

148#
发表于 2018-1-28 22:34:32 | 只看该作者
现在好像有DELL slic  V2.4了~
回复

使用道具 举报

147#
发表于 2017-12-25 11:48:40 | 只看该作者
高手!谢谢分享!学习了,支持一下!
回复

使用道具 举报

146#
发表于 2017-12-12 20:05:30 | 只看该作者
百度盘链接失效了!
回复

使用道具 举报

145#
发表于 2017-10-29 14:59:03 | 只看该作者
网盘链接挂了 能补下么
回复

使用道具 举报

144#
发表于 2017-3-24 17:21:30 | 只看该作者

楼主也没有说需要什么东西呀!
回复

使用道具 举报

143#
发表于 2017-3-24 16:12:20 来自手机 | 只看该作者
没找到cfg文件
回复

使用道具 举报

142#
发表于 2017-3-24 13:20:03 | 只看该作者
新机器!X58主板!用 g2ldr_slic.7z 不能引导!
回复

使用道具 举报

141#
发表于 2017-3-11 08:26:17 来自手机 | 只看该作者
你需要知道g2ldr-slic后指向的cfg文件位置是否和你用的位置一样。
回复

使用道具 举报

140#
发表于 2017-3-11 08:24:35 来自手机 | 只看该作者
po666666 发表于 2017-1-10 09:14
我用“”GRUB2三启IOS制作” 制作了了“GRUB4DOS_GRUB2_X86_X64-EFI.ISO”,用qemu启动测试,biso启动能用 ...

ISO打包在里面的引导img里没有包含背景文件。需要重新制作用来打包的启动img。
回复

使用道具 举报

139#
发表于 2017-3-11 08:20:52 | 只看该作者
本帖最后由 ge 于 2017-3-11 08:22 编辑
linglongx 发表于 2016-4-23 01:12
GRUB2 添加SLIC的工作快完成了

我回复的多个给你!点击高级上传图片!回复成功后怎么就不是回复你的呢?g2ldr_slic我怎么用不了呢?
回复

使用道具 举报

138#
发表于 2017-3-11 08:16:42 | 只看该作者
我回复的多个给你!点击高级上传图片!回复成功后怎么就不是回复你的呢?g2ldr_slic我怎么用不了呢?
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-29 05:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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