无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: wintoflash
打印 上一主题 下一主题

[原创] GRUB2 UEFI 下的磁盘仿真

    [复制链接]
91#
 楼主| 发表于 2020-3-29 17:54:28 | 显示全部楼层
ksafei 发表于 2020-3-29 17:42
0327版grubfm,ntboot启动gpt分区表NTFS分区的wim PE报错(UEFI安全启动,wimboot正常):

这应该不是安全启动导致的吧

点评

测试0322版正常,应是新版改动引起的  详情 回复 发表于 2020-3-29 17:59
回复

使用道具 举报

92#
 楼主| 发表于 2020-3-29 18:06:43 | 显示全部楼层
ksafei 发表于 2020-3-29 17:59
测试0322版正常,应是新版改动引起的

但是0322至今未改动ntboot/gpt相关的代码啊

点评

关闭安全启动测试正常  详情 回复 发表于 2020-3-29 18:17
稍等,我关安全启动再测试下  详情 回复 发表于 2020-3-29 18:11
回复

使用道具 举报

93#
 楼主| 发表于 2020-3-29 18:49:09 | 显示全部楼层
ksafei 发表于 2020-3-29 18:17
关闭安全启动测试正常

我试了一下,没问题啊。
你按回车试试。

点评

https://efi.akeo.ie/ 更新了  详情 回复 发表于 2020-3-29 19:12
我这按回车也不行。前面报错画面按回车,则出现如下画面,再按回车则返回前画面如此反复 [attachimg]414737[/attachimg]  详情 回复 发表于 2020-3-29 19:06
回复

使用道具 举报

94#
 楼主| 发表于 2020-3-29 19:13:41 | 显示全部楼层
ksafei 发表于 2020-3-29 19:06
我这按回车也不行。前面报错画面按回车,则出现如下画面,再按回车则返回前画面如此反复

随便找个带gparted的Linux,把分区情况截图上传一下我看看。

点评

wim文件在sda7中 [attachimg]414742[/attachimg]  详情 回复 发表于 2020-3-29 19:33
回复

使用道具 举报

95#
 楼主| 发表于 2020-3-30 10:03:31 | 显示全部楼层

并不能重现你的问题。

点评

经比对验证,发现去掉"efiload --nc ${prefix}/CrScreenshotDxe.efi"句中的 --nc ,即可解决本机安全启动开启ntboot启动NTFS分区wim失败的问题,请查验  详情 回复 发表于 2020-4-1 17:59
回复

使用道具 举报

96#
 楼主| 发表于 2020-4-1 18:54:26 | 显示全部楼层
ksafei 发表于 2020-4-1 17:59
经比对验证发现289#反馈的本机安全启动开启时ntboot引导NTFS分区wim失败问题已找到疑点
init.sh:"efilo ...

这个应该没关系吧,有点离谱。

点评

事实的确如此,我是新旧版本比对一步步实机测试出来的,下为修改后正常引导启动图: [attachimg]415100[/attachimg]  详情 回复 发表于 2020-4-1 19:04
回复

使用道具 举报

97#
 楼主| 发表于 2020-5-12 20:39:06 | 显示全部楼层
adef 发表于 2019-11-20 11:02
uefi下多cd-rom启动好像是有点啥问题。试了两个U盘各有一个usb-cdrom,uefi下单独启动都正常。如果同时插上 ...

现在增加了一个选项来屏蔽光驱
例如 屏蔽(cd0):
  1. map -x (cd0)
复制代码

屏蔽掉所有光驱后,应该就能启动了。

点评

menuentry "WePE_64_V2.0.iso" "WePE_64_V2.0.iso" { strconv --gbk --set=file "(http)/imgs/WePE_64_V2.0.iso";map -x (cd0);map -x (cd1);map -x (cd2);map --mem --type=CD ${file} } grub2-pxe启动,用上  详情 回复 发表于 2020-5-13 10:52
wintoflash大神牛逼! 我在164楼描述的现象, http://wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=417233&pid=3901539&fromuid=298214 用刚下载的版本定制之后,菜单改成下面,vm里面挂载了个pe.iso  详情 回复 发表于 2020-5-13 07:36

评分

参与人数 1无忧币 +20 收起 理由
liuzhaoyzz + 20 很给力!

查看全部评分

回复

使用道具 举报

98#
 楼主| 发表于 2020-5-13 08:01:52 | 显示全部楼层
liuzhaoyzz 发表于 2020-5-13 07:36
wintoflash大神牛逼!

我在164楼描述的现象,
menuentry "WePE_64_V2.0.iso" "/boot/imgs/WePE_64_V2.0.iso" {
search --no-floppy --set --file $2
map --mem --type=CD $2
map -x (cd0)
}

应该先执行屏蔽 (cd0),再进行map。
  1. map -x (cd0)
  2. map --mem --type=CD $2
复制代码
想问下,map -x (cd0)是屏蔽所有光驱,还是仅仅屏蔽(cd0)?是否还需要map -x (cd1);map -x (cd2)...?

仅屏蔽 (cd0)。map -x 后面跟什么就屏蔽什么。理论上也可以屏蔽硬盘。
屏蔽所有光驱:
  1. for dev in (cd*); do
  2.     map -x $dev
  3. done
复制代码

点评

另外,想请问下,grub2菜单中,一行写多条语句,用分号作为续行符隔开,一行最多可以写多少个字符?  详情 回复 发表于 2020-5-13 09:29
明白了,感谢回复!  详情 回复 发表于 2020-5-13 08:41
回复

使用道具 举报

99#
 楼主| 发表于 2020-5-13 09:48:40 | 显示全部楼层
liuzhaoyzz 发表于 2020-5-13 09:29
另外,想请问下,grub2菜单中,一行写多条语句,用分号作为续行符隔开,一行最多可以写多少个字符?

这个没有限制吧。内存都是动态分配的,只要内存有空间就行。

点评

好像记得grub4dos单行限制256个字符还是多少,忘了。grub2应该也是一样有限制的。没有资料显示倒底是多少。心里没谱。  详情 回复 发表于 2020-5-13 10:02
回复

使用道具 举报

100#
 楼主| 发表于 2020-5-13 10:16:06 | 显示全部楼层
本帖最后由 wintoflash 于 2020-5-13 10:21 编辑
liuzhaoyzz 发表于 2020-5-13 10:02
好像记得grub4dos单行限制256个字符还是多少,忘了。grub2应该也是一样有限制的。没有资料显示倒底是多少 ...

没有。grub4dos里面都是写死的内存地址,所以有限制。
grub2实现了malloc,动态分配内存。
grub2应该也是一样有限制的

你这个推论不成立。
grub2是完全推翻重写的。
https://github.com/a1ive/grub2-filemanager/blob/6f5be83ade9d0326688aaee7d3f1a10b5f899730/boot/grubfm/distro/win.sh#L46
这种长度都不能满足你的吗

点评

哦,明白了。看样子我对grub2误会很深啊!  详情 回复 发表于 2020-5-13 10:24
回复

使用道具 举报

101#
 楼主| 发表于 2020-5-13 11:13:55 | 显示全部楼层
liuzhaoyzz 发表于 2020-5-13 10:52
menuentry "WePE_64_V2.0.iso" "WePE_64_V2.0.iso" {
strconv --gbk --set=file "(http)/imgs/WePE_64_V ...

我喜欢调试信息,所以不让屏蔽。

点评

大神,还是请出手去掉map -x的提示吧。因为实际启动过程中: for dev in (cd*); do map -x $dev done 如果一个光驱都没有的时候,上面的语句还是会提示failed to open disk.的错误。  详情 回复 发表于 2020-5-13 15:22
要不弄个动态图,盖住  详情 回复 发表于 2020-5-13 11:38
回复

使用道具 举报

102#
 楼主| 发表于 2020-5-13 16:27:25 | 显示全部楼层
liuzhaoyzz 发表于 2020-5-13 15:22
大神,还是请出手去掉map -x的提示吧。因为实际启动过程中:
for dev in (cd*); do
    map -x $dev
  1. for dev in (cd*);
  2.   do
  3.     if [ -e ${dev} ];
  4.     then
  5.       map -x ${dev};
  6.     fi;
  7.   done;
复制代码

点评

这样子的菜单,大大增大了菜单的复杂度,少个空格都出错。  详情 回复 发表于 2020-5-13 17:18
回复

使用道具 举报

103#
 楼主| 发表于 2020-5-13 17:23:15 | 显示全部楼层
liuzhaoyzz 发表于 2020-5-13 17:18
这样子的菜单,大大增加了菜单的复杂度,少个空格都出错。
本来一句map -x ${dev}就能够搞定的,现在要 ...

错了就是错了,执行过程中出错然后报警,是正常操作。如果不报警反而不正常。

点评

请问下大神,grub2,模块能否支持ext3 ext4这样子的文件解析模块?我只看到有ext2?  详情 回复 发表于 2020-5-23 19:53
回复

使用道具 举报

104#
 楼主| 发表于 2020-5-23 20:04:16 | 显示全部楼层
liuzhaoyzz 发表于 2020-5-23 19:53
请问下大神,grub2,模块能否支持ext3 ext4 ReiserFS这样子的文件解析模块?我只看到有ext2?

ext2 3 4 都用ext2。
reiserfs也有。

点评

明白了。  详情 回复 发表于 2020-5-23 20:06
回复

使用道具 举报

105#
 楼主| 发表于 2020-5-31 18:38:37 | 显示全部楼层
dddp 发表于 2020-5-30 18:57
为什么我的grub 没有map命令。我的grub是2.04 ,archlinux安装的

没仔细看帖子就回复?
回复

使用道具 举报

106#
 楼主| 发表于 2020-6-26 11:46:32 | 显示全部楼层
青青草 发表于 2020-6-26 11:34
问题反馈:
      新版grub2(今天下载的)
if [ "$grub_platform" = "pc" ]; then

gpt还是mbr分区表?

点评

gpt  详情 回复 发表于 2020-6-26 11:49
回复

使用道具 举报

107#
 楼主| 发表于 2020-6-26 11:56:55 | 显示全部楼层

现在probe --bootable也会检测gpt磁盘,esp分区也会认为是可启动分区。

点评

为便于启动测试,我的电脑双硬盘MBR/GPT,双启动bios/uefi。 如此一来,bios启动的grub2,自动菜单能检测到esp分区的系统,却无法启动,尴尬了。  详情 回复 发表于 2020-6-26 15:52
回复

使用道具 举报

108#
 楼主| 发表于 2020-6-26 16:03:42 | 显示全部楼层
青青草 发表于 2020-6-26 15:52
为便于启动测试,我的电脑双硬盘MBR/GPT,双启动bios/uefi。
如此一来,bios启动的grub2,自动菜单能检 ...

跳过GPT磁盘不就行了

点评

是呀,只能如此了。  详情 回复 发表于 2020-6-26 16:16
回复

使用道具 举报

109#
 楼主| 发表于 2020-7-24 21:36:22 | 显示全部楼层
saiz 发表于 2020-7-24 20:37
請問下 之前可以用map啟動acronisTrueImage2019.iso跟CloneZilla.iso
但現在版本卻不行了

看一楼使用说明。
现在不用 --disk 参数了。
直接 map --type=CD (loop) 就可以了。
另外,iso不需要 loopback 挂载,多此一举。

点评

CloneZilla使用 可啟動 但AcronisTrueImage2019卻依然無法啟動 會有錯誤:Failed to load Image.  详情 回复 发表于 2020-7-24 21:50
回复

使用道具 举报

110#
 楼主| 发表于 2020-7-24 21:55:45 | 显示全部楼层
saiz 发表于 2020-7-24 21:50
CloneZilla使用

可啟動

镜像在哪里下载?

点评

https://drive.google.com/file/d/1_6776oIZ_6Gy-Pr5xXFPqpeb75dFJapa/view?usp=sharing http://sendanywhe.re/B4494XGX  详情 回复 发表于 2020-7-25 09:15
回复

使用道具 举报

111#
 楼主| 发表于 2020-7-25 15:22:48 | 显示全部楼层
saiz 发表于 2020-7-25 09:15
https://drive.google.com/file/d/1_6776oIZ_6Gy-Pr5xXFPqpeb75dFJapa/view?usp=sharing
http://sendany ...

改了一下,在我这边可以启动了。你可以下载试试。
https://github.com/a1ive/grub/releases/tag/latest

点评

我也成功了!! 感謝!!  详情 回复 发表于 2020-7-25 15:51
回复

使用道具 举报

112#
 楼主| 发表于 2020-7-30 11:09:39 | 显示全部楼层
枯井在地 发表于 2020-7-29 21:51
请问光盘ISO模式下这个可以用吗

你是说 用光盘里面的grub2启动光盘里面的iso?
这不是脱裤子放屁吗。
uefi 下的 bootmgfw.efi 只认第一个光盘,所以如果这个iso里面是winpe,那就不行。
回复

使用道具 举报

113#
 楼主| 发表于 2020-7-31 11:02:07 | 显示全部楼层
枯井在地 发表于 2020-7-30 21:04
好吧,谢谢,不知道有没有其他办法做到

启wim,直接用wimboot就行了,iso套iso没用。
回复

使用道具 举报

114#
 楼主| 发表于 2020-8-9 12:54:25 | 显示全部楼层
2011whp 发表于 2020-8-9 12:19
今天用了2020-7-18版
问题: 主题不正常,没背景,菜单少了条目,
          但是  按  e   再返回就正常 ...

这个问题我在不同的帖子下回复了十多遍了,我也是醉了。

http://bbs.wuyou.net/forum.php?m ... p;extra=&page=2
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=417607
回复

使用道具 举报

115#
 楼主| 发表于 2020-11-4 14:59:37 | 显示全部楼层
liuzhaoyzz 发表于 2020-11-4 14:45
github下载速度只有20~60kB/s,到最后是0~200B/s,简直是浪费生命!
https://offcloud.com/ 下载也很慢 ...

如果没详细说明,那一般是修bug或者内部的一些改动。
如果增加了模块或命令,我都会写 "add ... command",删除模块也会写 "remove xxx"。
我一直都是尽量考虑兼容性,不修改用户能接触到的部分。

点评

难怪,我看到github上面,10725 commits,用户文档没发现有什么改变,原来都是后台调整。  详情 回复 发表于 2020-11-4 15:04
回复

使用道具 举报

116#
 楼主| 发表于 2020-11-5 13:10:00 | 显示全部楼层
liuzhaoyzz 发表于 2020-11-4 14:45
github下载速度只有20~60kB/s,到最后是0~200B/s,简直是浪费生命!
https://offcloud.com/ 下载也很慢 ...

gitd.cc在我这边特别慢。github反而很快。

这都是没办法的事。国内没有靠谱且免费的持续集成服务和软件下载平台。

点评

不同地域对不同服务器响应的确不同,差别还很大。  详情 回复 发表于 2020-11-5 14:19
回复

使用道具 举报

117#
 楼主| 发表于 2020-11-5 13:16:27 | 显示全部楼层
my9823 发表于 2020-11-5 07:04
w大,请您教个问题,normal cfgfile和configfile  cfgfile的区别是什么?看介绍是normal会移动加载mod,用gr ...

用configfile就行。
外置的模块(memdisk也是外置)里面,只有文件系统相关的模块会自动加载,要不然就乱套了。
grub-mkimage 命令里面的都是内置,自动加载的,不要自己再insmod了。
回复

使用道具 举报

118#
 楼主| 发表于 2020-11-5 13:48:39 | 显示全部楼层
@wuwuzz 可以下载最新版试试
map -f /xxx.iso
这样让 map 出的磁盘/光盘排在第一位。


点评

刚才在虚拟机里面试了下,光驱里面挂载个PE1.ISO,bios设置优先从本地硬盘的grub2x64.efi引导,可以启动pe2.iso,似乎不需要提前map -x (cd0)? 菜单如下: map --mem -f --type=CD /pe2.iso  详情 回复 发表于 2020-11-5 16:30
回复

使用道具 举报

119#
 楼主| 发表于 2020-11-5 16:32:53 | 显示全部楼层
本帖最后由 wintoflash 于 2020-11-5 16:35 编辑
liuzhaoyzz 发表于 2020-11-5 16:30
刚才在虚拟机里面试了下,光驱里面挂载个PE1.ISO,bios设置优先从本地硬盘的grub2x64.efi引导, ...

是的,不用map -x。
还有 map本地镜像不需要--mem。加--mem纯属浪费时间

点评

太棒了!不要map -x (cd0)这样子的语句,菜单简单太多了!以前要7条语句。 PE启动我都使用map --mem加载到内存,习惯了。  详情 回复 发表于 2020-11-5 16:39
回复

使用道具 举报

120#
 楼主| 发表于 2020-11-5 16:44:09 | 显示全部楼层
liuzhaoyzz 发表于 2020-11-5 16:39
太棒了!不要map -x (cd0)这样子的语句,菜单简单太多了!以前要7条语句。

PE启动我都使用map ...

加--mem除了浪费时间没有其他用处。这个参数一般网启才用。
就算你想设计Windows下的驱动挂载map出来的内存盘,用--mem也不行。这个内存盘在进入操作系统之前就会被uefi释放掉。要想进入操作系统还能看见内存盘的数据,要用 --mem --rt。

点评

grub2_UEFI_map与map --mem启动PE速度测试 选取了几个不同大小的PE,对grub2_UEFI启动PE.ISO(均为全内置版本PE)采用直接map和map --mem启动速度进行了测试。 测试环境:为了便于截图和录像,在vmware虚拟机中进  详情 回复 发表于 2020-11-6 10:07
map --mem可以规避在grub4dos下面需要pe.iso连续存放的问题,而且map --mem要比直接map稳定些,pe.iso所在的优盘可以拔除,时间长了就习惯用这个参数了,grub2下面直接map pe.iso对于碎片是否有要求?  详情 回复 发表于 2020-11-5 17:02
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-7 21:56

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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