无忧启动论坛

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

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

    [复制链接]
 楼主| 发表于 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
回复

使用道具 举报

发表于 2020-10-8 11:21:56 | 显示全部楼层
最近更新勤,是wintoflash在做吗,更新了些什么,

回复

使用道具 举报

发表于 2020-11-4 14:45:40 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-11-4 15:00 编辑

github下载速度只有20~60kB/s,到最后是0~200B/s,简直是浪费生命!
https://offcloud.com/ 下载也很慢,没有太大的改善。
分享个GitHub代下载服务·永久免费 http://gitd.cc/
有点奇怪的是,这个GitHub代下载服务下载后与github原站点下载的MD5值不同,不知道咋回事。压缩包解压缩之后,里面的文件MD5倒是一致的,没有问题。

另外,想问下wintoflash大神,grub2有没有changelog之类的?对于grub2更新了什么内容有些好奇。github上面,commit里面只是有个简短的描述。






点评

gitd.cc在我这边特别慢。github反而很快。 这都是没办法的事。国内没有靠谱且免费的持续集成服务和软件下载平台。  详情 回复 发表于 2020-11-5 13:10
如果没详细说明,那一般是修bug或者内部的一些改动。 如果增加了模块或命令,我都会写 "add ... command",删除模块也会写 "remove xxx"。 我一直都是尽量考虑兼容性,不修改用户能接触到的部分。  详情 回复 发表于 2020-11-4 14:59
回复

使用道具 举报

 楼主| 发表于 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
回复

使用道具 举报

发表于 2020-11-4 15:04:47 | 显示全部楼层
wintoflash 发表于 2020-11-4 14:59
如果没详细说明,那一般是修bug或者内部的一些改动。
如果增加了模块或命令,我都会写 "add ... command ...

       难怪,我看到github上面,10725 commits,用户文档没发现有什么改变,原来都是后台调整。
回复

使用道具 举报

发表于 2020-11-5 07:04:02 来自手机 | 显示全部楼层
w大,请您教个问题,normal cfgfile和configfile  cfgfile的区别是什么?看介绍是normal会移动加载mod,用grub-mkimage内置必要模块,并且打包可选选模块为memdisk打包,然后内置memdisk到efi,内置菜单normal (memdisk)的菜单,它会自动加载memdisk中的可选模块吗?

点评

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

使用道具 举报

 楼主| 发表于 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
回复

使用道具 举报

 楼主| 发表于 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了。
回复

使用道具 举报

 楼主| 发表于 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
回复

使用道具 举报

发表于 2020-11-5 14:19:41 | 显示全部楼层
wintoflash 发表于 2020-11-5 13:10
gitd.cc在我这边特别慢。github反而很快。

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

        不同地域对不同服务器响应的确不同,差别还很大。
回复

使用道具 举报

发表于 2020-11-5 15:47:00 来自手机 | 显示全部楼层
感谢w大回复!
回复

使用道具 举报

发表于 2020-11-5 16:30:25 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-11-5 16:34 编辑
wintoflash 发表于 2020-11-5 13:48
@wuwuzz 可以下载最新版试试
map -f /xxx.iso
这样让 map 出的磁盘/光盘排在第一位。

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


menuentry "SXWIN10PEX64_17763_NET20200902.iso" "/boot/imgs/SXWIN10PEX64_17763_NET20200902.iso" {
search --no-floppy --set --file $2
map --mem -f --type=CD $2
}


点评

是的,不用map -x  详情 回复 发表于 2020-11-5 16:32
回复

使用道具 举报

 楼主| 发表于 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
回复

使用道具 举报

发表于 2020-11-5 16:39:52 | 显示全部楼层
wintoflash 发表于 2020-11-5 16:32
是的,不用map -x。
还有 map本地镜像不需要--mem。加--mem纯属浪费时间

        太棒了!不要map -x (cd0)这样子的语句,菜单简单太多了!以前要7条语句。

PE启动我都使用map --mem加载到内存,习惯了。

点评

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

使用道具 举报

 楼主| 发表于 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
回复

使用道具 举报

发表于 2020-11-5 17:02:57 | 显示全部楼层
wintoflash 发表于 2020-11-5 16:44
加--mem除了浪费时间没有其他用处。这个参数一般网启才用。
就算你想设计Windows下的驱动挂载map出来的 ...

        map --mem可以规避在grub4dos下面需要pe.iso连续存放的问题,而且map --mem要比直接map稳定些,pe.iso所在的优盘可以拔除,时间长了就习惯用这个参数了,grub2下面直接map pe.iso对于碎片是否有要求?

点评

没有任何要求。 如果没有碎片(或者碎片满足一些要求),可以用 --blocklist 参数加速虚拟盘的读取。(一般没必要) 你这是闲得无聊吧,退出grub2/grub4dos的瞬间拔u盘,不怕坏了?如果u盘读取不靠谱,建议换u  详情 回复 发表于 2020-11-5 17:46
回复

使用道具 举报

 楼主| 发表于 2020-11-5 17:46:00 | 显示全部楼层
liuzhaoyzz 发表于 2020-11-5 17:02
map --mem可以规避在grub4dos下面需要pe.iso连续存放的问题,而且map --mem要比直接map稳定些,p ...
grub2下面直接map pe.iso对于碎片是否有要求?

没有任何要求。
如果没有碎片(或者碎片满足一些要求),可以用 --blocklist 参数加速虚拟盘的读取。(一般没必要)
而且map --mem要比直接map稳定些,pe.iso所在的优盘可以拔除

你这是闲得无聊吧,退出grub2/grub4dos的瞬间拔u盘,不怕坏了?如果u盘读取不靠谱,建议换u盘。
进pe之后,拔不拔u盘就和grub2没什么关系了,你用啥参数都不影响。

我已经再三提醒了,不建议用 --mem,一般情况下没有任何好处,反而有坏处。
只有以下几种需求,我建议用 --mem:
1. 网启。
2. 想对虚拟磁盘进行写入,不想实际写入到硬盘的文件上。
3. 想在grub2启动 iso 之后,windows 转圈之前的那几秒之间拔掉 U 盘。这种操作要手速快。

点评

不是退出grub2/grub4dos的瞬间拔u盘啊,不是想在grub2启动 iso 之后,windows 转圈之前的那几秒之间拔掉 U 盘,是启动PE之后可以拔掉优盘啊,如果直接map,启动PE之后可能还会有读写优盘的动作吧,在BIOS启动的grub4  详情 回复 发表于 2020-11-5 18:35
回复

使用道具 举报

发表于 2020-11-5 18:35:10 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-11-5 18:40 编辑
wintoflash 发表于 2020-11-5 17:46
没有任何要求。
如果没有碎片(或者碎片满足一些要求),可以用 --blocklist 参数加速虚拟盘的读取。 ...

不是退出grub2/grub4dos的瞬间拔u盘啊,不是想在grub2启动 iso 之后,windows 转圈之前的那几秒之间拔掉 U 盘(拔掉的时候也很少,只是有这个可能),是启动PE之后可以拔掉优盘啊,如果直接map,启动PE之后可能还会有读写优盘的动作吧,直接拔掉有蓝屏的可能(因为有些PE的外置是放在wim之外,iso以内),在BIOS启动的grub4dos里面,map --mem感觉上来说要比直接map真的稳定可靠些(规避碎片文件是其中的一个方面),然后这些习惯一直沿袭下来了,我以为grub2_UEFI也是这样子呢。
看了你的解释,看样子要颠覆我的观念了!我真不知道或者没有注意到在哪里发帖推荐过直接map。

点评

如果外置,uefi启动的情况下无论如何都不能拔掉u盘。你没有搞清楚一件事:虚拟盘在windows转圈停止之后就不存在了。无论外置不外置,Windows当然都不能从本就不存在的所谓内存盘读数据。  详情 回复 发表于 2020-11-5 18:47
回复

使用道具 举报

 楼主| 发表于 2020-11-5 18:47:16 | 显示全部楼层
liuzhaoyzz 发表于 2020-11-5 18:35
不是退出grub2/grub4dos的瞬间拔u盘啊,不是想在grub2启动 iso 之后,windows 转圈之前的那几秒之间拔掉  ...

如果外置,uefi启动的情况下无论如何都不能拔掉u盘。你没有搞清楚一件事:虚拟盘在windows转圈停止之后就不存在了。无论外置不外置,Windows当然都不能从本就不存在的所谓内存盘读数据。

点评

也是!  发表于 2020-11-5 19:41
回复

使用道具 举报

发表于 2020-11-5 19:18:06 | 显示全部楼层
@wintoflash

很抱歉,下午单位组织学习,未及时看到帖子回复。

很好的改进! map -f选项有效,能够成功将U盘上的ISO与其他光驱ISO区分开。

示例图有意构造了复杂干扰环境:
是USB光驱+SATA光驱+量产光驱都存在的条件下,U盘DISK部分MAP时的情况。
grub2OK.jpg


回复

使用道具 举报

发表于 2020-11-6 10:07:18 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-11-6 11:33 编辑
wintoflash 发表于 2020-11-5 16:44
加--mem除了浪费时间没有其他用处。这个参数一般网启才用。
就算你想设计Windows下的驱动挂载map出来的 ...

grub2_UEFI_map与map --mem启动PE速度测试
选取了几个不同大小的PE,对grub2_UEFI启动PE.ISO(均为全内置版本PE)采用直接map和map --mem启动速度进行了测试。
测试环境:为了便于截图和录像,在vmware虚拟机中进行测试,引导器为grub2_uefi_20201105版本,pe.iso存放的介质为虚拟机机械硬盘。从grub2选择启动菜单开始计时,到见到PE桌面停止计时。下面的gif,可以下载到本地,用7gif查看,ctrl+↑加快播放速度,ctrl+↓减慢播放速度。
1、WePE_64_V2.1_beta.iso,199MB

直接map,耗时2:05秒。
grub2直接map微PE.gif


map --mem,耗时2:02秒。
grub2--mem微PE.gif


2、SXWIN10PEX64_17763_NET20200902.iso,438MB
直接map,启动后发生蓝屏一次;
grub2直接mapSXPE蓝屏.gif


再次重启测试,耗时4:10秒。
grub2直接mapSXPE成功.gif


map --mem,耗时2:29秒。
grub2--memSXPE.gif


3、Win10PE_17763.107x64net.iso,699MB
直接map,耗时5:01秒。
grub2直接map立帮PE成功.gif


map --mem,耗时3:08秒。
grub2_map--mem立帮PE成功.gif


我的结论:
1、对于体积较小的200MB的微PE,直接map pe.iso和map --mem pe.iso速度相差不大,对于体积稍大的PE,map --mem pe.iso要比map pe.iso启动速度快。一般的PE体积都会超过200MB,大概500MB-1GB左右。
测试是在机械硬盘上进行的,在普通优盘上启动速度应该要比机械硬盘更慢,启动速度差距估计稍大。我觉得还是map --mem pe.iso更好。
2、内存足够的前提下,map --mem pe.iso要比map pe.iso启动更加稳定。直接map在机械硬盘上蓝屏了一次。
3、grub2_UEFI感觉读盘的速度有一定的提升空间,而且读盘瞬时速度显示似乎有点不符合实际,前期有时候显示4TiB/s、13GiB/S,后期读盘速度在机械硬盘上只有68MB/S~2MB/S左右,这个速度感觉不符合实际。



哦,刚才又在实体机上面用优盘测试了几次,用手机秒表卡表,启动速度大概34-46秒的样子,与虚拟机启动速度差别太大了!而且感觉map --mem pe.iso与map pe.iso启动同一个PE启动速度相差无几!大概2秒的样子!
看样子虚拟机不能代替实体机作为速度测试的依据,相差太大了!原因不明。





点评

不管带不带 --mem,始终都是读一次到内存,区别只是前者先读再从内存启动,后者边启动边读。整体效率应该是差不多的。 按wintoflash说的,他的map只要是本地的就可以map,不需要 --mem 而g4d的map是要求连续存放  详情 回复 发表于 2020-11-6 18:22
回复

使用道具 举报

发表于 2020-11-6 16:33:40 来自手机 | 显示全部楼层
在虚拟机里,加与不加 --mem 耗时应当差不多,因为两者都是在内存里。在实机上,如果程序把自己都加载到内存,那加不加 --mem 都一样:如果程序只加载内核,其余不加载,那加不加 --mem 就不一样了。

点评

不对啊,虚拟机里面,直接map我测试的慢很多。 实体机里面,直接map和map --mem基本上没差别。(测试的是全内置版PE.ISO)  详情 回复 发表于 2020-11-6 22:02
回复

使用道具 举报

发表于 2020-11-6 18:22:56 | 显示全部楼层
本帖最后由 hilsonma 于 2020-11-6 18:26 编辑
liuzhaoyzz 发表于 2020-11-6 10:07
grub2_UEFI_map与map --mem启动PE速度测试
选取了几个不同大小的PE,对grub2_UEFI启动PE.ISO(均为全内 ...

不管带不带 --mem,始终都是读一次到内存,区别只是前者先读再从内存启动,后者边启动边读。整体效率应该是差不多的。

按wintoflash说的,他的map只要是本地的就可以map,不需要 --mem
而g4d的map是要求连续存放的,不是连续存放的就要带 --mem

由于U盘读盘比硬盘慢,所以我只有在第一次接触的电脑上启动U盘上的pe,经我手维护的电脑,我都放一份pe镜像在硬盘上作为备用系统以便维护。只有发生主引导故障才需要从U盘启动,引导硬盘上的pe。

点评

如果启动的是winpe,不带--mem,bootmgfw.efi会要求一块内存,把wim读到内存。 如果带--mem,grub2先要求一块内存,把winpe iso加载到内存。然后 bootmgfw 还是会要求一块内存,把wim读到内存。 所以 --mem 是要占  详情 回复 发表于 2020-11-6 22:50
读速度,很多高速U盘,要远超机械硬盘...  详情 回复 发表于 2020-11-6 22:37
在这一点上,你跟我的用法完全一样。我都是尽可能抛弃USB启动。  详情 回复 发表于 2020-11-6 22:03
回复

使用道具 举报

发表于 2020-11-6 18:44:01 | 显示全部楼层
又学到一招
回复

使用道具 举报

发表于 2020-11-6 22:02:16 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-11-6 22:10 编辑
2011yaya2007777 发表于 2020-11-6 16:33
在虚拟机里,加与不加 --mem 耗时应当差不多,因为两者都是在内存里。在实机上,如果程序把自己都加载到内 ...

不对啊,虚拟机里面,直接map我测试的慢很多。
实体机里面,直接map和map --mem基本上没差别,只有2秒不到的差别!(测试的是全内置版PE.ISO)
回复

使用道具 举报

发表于 2020-11-6 22:03:33 | 显示全部楼层
hilsonma 发表于 2020-11-6 18:22
不管带不带 --mem,始终都是读一次到内存,区别只是前者先读再从内存启动,后者边启动边读。整体效率应该 ...
由于U盘读盘比硬盘慢,所以我只有在第一次接触的电脑上启动U盘上的pe,经我手维护的电脑,我都放一份pe镜像在硬盘上作为备用系统以便维护。只有发生主引导故障才需要从U盘启动,引导硬盘上的pe。
在这一点上,你跟我的用法完全一样。我都是尽可能抛弃USB启动。

点评

我和你相反,USB是我的爱好(由此发散至USB启动、BIOS/UEFI中USB启动代码...等知识点),而U盘收藏了一大堆,把玩。  详情 回复 发表于 2020-11-6 22:36
回复

使用道具 举报

发表于 2020-11-6 22:36:44 | 显示全部楼层
liuzhaoyzz 发表于 2020-11-6 22:03
在这一点上,你跟我的用法完全一样。我都是尽可能抛弃USB启动。

我和你相反,USB是我的爱好(由此发散至USB启动、BIOS/UEFI中USB启动代码...等知识点),而U盘收藏了一大堆,把玩。



点评

试一下  详情 回复 发表于 2020-11-24 19:32
回复

使用道具 举报

发表于 2020-11-6 22:37:23 | 显示全部楼层
本帖最后由 wuwuzz 于 2020-11-6 22:39 编辑
hilsonma 发表于 2020-11-6 18:22
不管带不带 --mem,始终都是读一次到内存,区别只是前者先读再从内存启动,后者边启动边读。整体效率应该 ...

高速U盘的读速度,要超过机械硬盘读速度...

点评

不是高速优盘,是普通的优盘,读写没有机械硬盘快。  详情 回复 发表于 2020-11-6 22:46
回复

使用道具 举报

发表于 2020-11-6 22:46:14 | 显示全部楼层
wuwuzz 发表于 2020-11-6 22:37
高速U盘的读速度,要超过机械硬盘读速度...

不是高速优盘,是普通的优盘,读写没有机械硬盘快。

点评

平时都是用高速U盘来做,用低速U盘无法忍受、浪费时间。 更典型的例子,如WTG、便携LINUX,用高速U盘是必然。  详情 回复 发表于 2020-11-6 22:50
回复

使用道具 举报

发表于 2020-11-6 22:50:01 | 显示全部楼层
本帖最后由 wuwuzz 于 2020-11-6 22:51 编辑
liuzhaoyzz 发表于 2020-11-6 22:46
不是高速优盘,是普通的优盘,读写没有机械硬盘快。

平时都是用高速U盘来做,用低速U盘无法忍受、浪费时间。

更典型的例子,如WTG、便携LINUX,用高速U盘是必然。

除非是特殊测试固件参数,才用特定的USB2.0低速盘。

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

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

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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