无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
12
返回列表 发新帖
楼主: 江南一根葱

[求助] g4d有没办法在用wimboot启动wim的时候分行写initrd语句啊?

  [复制链接]
发表于 2019-12-21 21:50:50 | 显示全部楼层
江南一根葱 发表于 2019-12-21 20:33
多行会多费一两秒的时间,建议这么写
title 启动Windows8pe用wimboot
kernel /grub4dos/wimboot index= ...

谢谢,我还没仔细观察对比所用时间

看来确如chenall据说分行多了会效率低一些

你测试过大文件放前面没有

点评

新的initrd的文件需要附加在后面. 需要重新分配空间,然后把原来的数据进行转移. 在内存中转移速度很快影响不大. 新的版本已经提交发布. 修改了一些处理逻辑,现在是所有的initrd文件都可以附加,不单单是有@  详情 回复 发表于 2019-12-23 10:12
回复

使用道具 举报

发表于 2019-12-23 09:45:52 | 显示全部楼层
已经提交。

点评

抱歉,我刚刚已经提交了,内容有修改.  详情 回复 发表于 2019-12-23 10:02
回复

使用道具 举报

发表于 2019-12-23 09:54:57 | 显示全部楼层
@tinybit hi,我在这边没有发帖权限,只能回复找你了。
上次说的问题,我看了代码,发现打印这些信息的函数本身通过切换到实模式执行成功了,
在打印“Booting ...”这条信息之后进入命令行,说明config_entries为真且 if (((char)c) == 'c')真;
第二种情况: debug_boot || ! debug_in_menu_init 且 is_preset 且 preset_menu == (const char *)0x800 为真才会打印“Processing the preset-menu ...”。

点评

打印成功,说明显卡 BIOS 是工作的。然而,在开始处理内置菜单之后,就死机了。 原因很简单:当它要去处理菜单的时候,会去寻找硬盘。也就是要去调用 INT13,而在调用 int13 时发生死机了,根本就回不到 grub4dos  详情 回复 发表于 2019-12-25 15:26
回复

使用道具 举报

发表于 2019-12-23 10:02:51 | 显示全部楼层

抱歉,我刚刚已经提交了,内容有修改.
回复

使用道具 举报

发表于 2019-12-23 10:12:55 | 显示全部楼层
yjqd 发表于 2019-12-21 21:50
谢谢,我还没仔细观察对比所用时间

看来确如chenall据说分行多了会效率低一些

新的initrd的文件需要附加在后面.

需要重新分配空间,然后把原来的数据进行转移.

在内存中转移速度很快影响不大.

新的版本已经提交发布.  修改了一些处理逻辑,现在是所有的initrd文件都可以附加,不单单是有@标志.

可以试试看有没有什么问题.

点评

[attachimg]407898[/attachimg] g4d是不是不支持大内存,32G内存的机子貌似启不来。  详情 回复 发表于 2019-12-25 15:02
回复

使用道具 举报

 楼主| 发表于 2019-12-25 15:02:23 | 显示全部楼层
本帖最后由 江南一根葱 于 2019-12-25 15:06 编辑
chenall 发表于 2019-12-23 10:12
新的initrd的文件需要附加在后面.

需要重新分配空间,然后把原来的数据进行转移.

QQ图片20191225150020.jpg
g4d是不是不支持大内存,32G内存的机子貌似启不来。其它的好像内存混插的容易起不来。

点评

单行的可以启动吗? 单行的如果可以那就是我修改成多行后产生了BUG. 看截图应该是早期的版本就这样了. 之前修改的时候有看到一些代码,好像initrd的内容必须放在3G以下的空间. 如果不是的话就自动把后面的  详情 回复 发表于 2019-12-26 15:31
回复

使用道具 举报

发表于 2019-12-25 15:26:22 | 显示全部楼层
daxx 发表于 2019-12-23 09:54
@tinybit hi,我在这边没有发帖权限,只能回复找你了。
上次说的问题,我看了代码,发现打印这些信息的函 ...

打印成功,说明显卡 BIOS 是工作的。然而,在开始处理内置菜单之后,就死机了。

原因很简单:当它要去处理菜单的时候,会去寻找硬盘。也就是要去调用 INT13,而在调用 int13 时发生死机了,根本就回不到 grub4dos 里面了。

如果不使用 Linux 而是直接启动 grub.exe 或者是通过 syslinux 之类的启动 grub4dos,那是没问题的。

或者虽然你使用了 Linux 和 kexec,但是,你在虚拟机之下操作,也会是成功的。

问题就在于 Linux 采用了 AHCI 规范的新硬件,这样的硬件是阻止 BIOS 的 int13 继续工作的。

不要混淆了 BIOS 这个概念。Video BIOS 工作正常,不等于全部 BIOS 都工作正常。

Video BIOS 只是 BIOS 的一部分,不代表其他 BIOS 的功能。

回复

使用道具 举报

发表于 2019-12-26 15:31:39 | 显示全部楼层
江南一根葱 发表于 2019-12-25 15:02
g4d是不是不支持大内存,32G内存的机子貌似启不来。其它的好像内存混插的容易起不来。

单行的可以启动吗?

单行的如果可以那就是我修改成多行后产生了BUG.

看截图应该是早期的版本就这样了.

之前修改的时候有看到一些代码,好像initrd的内容必须放在3G以下的空间.

如果不是的话就自动把后面的内存填满,也就是全部占用掉,保证在3G以下.

后续有空我再看看能不能处理.

点评

悲催地在自己家的电脑上重现了这个问题,,这样写是可以启动的 kernel (fd0)/wimboot initrd @bcd=(fd0)/bcd @boot.sdi=(fd0)/boot.sdi @bootmgr=(fd0)/bootmgr @out.bat=(bd)/wimboot/win8pe/out.bat @fbplus.e  详情 回复 发表于 2019-12-31 22:09
应该是以前就这样的,我家里有台内存混插的老机器,几年来一直只能map xxx.iso来启动,用wimboot一直这个提示,进grub2用wimboot倒也可以启,不过我想想是内存混插导致(内存地址混乱?)的缘故, 前几天才发现一  详情 回复 发表于 2019-12-28 14:54
回复

使用道具 举报

 楼主| 发表于 2019-12-28 14:54:58 | 显示全部楼层
本帖最后由 江南一根葱 于 2019-12-28 14:56 编辑
chenall 发表于 2019-12-26 15:31
单行的可以启动吗?

单行的如果可以那就是我修改成多行后产生了BUG.

应该是以前就这样的,我家里有台内存混插的老机器,几年来一直只能map xxx.iso来启动,用wimboot一直这个提示,进grub2用wimboot倒也可以启,不过我想想是内存混插导致(内存地址混乱?)的缘故,

前几天才发现一台32G高端电脑的也这提示。。。由于这台32G内存的高端电脑是别人的,所以没法再重现了。。不过家里的破电脑倒每星期可以试一下
回复

使用道具 举报

 楼主| 发表于 2019-12-31 22:09:51 | 显示全部楼层
chenall 发表于 2019-12-26 15:31
单行的可以启动吗?

单行的如果可以那就是我修改成多行后产生了BUG.

悲催地在自己家的电脑上重现了这个问题,,这样写是可以启动的
kernel (fd0)/wimboot  
initrd @bcd=(fd0)/bcd @boot.sdi=(fd0)/boot.sdi @bootmgr=(fd0)/bootmgr @out.bat=(bd)/wimboot/win8pe/out.bat @fbplus.exe=(bd)/wimboot/win8pe/fbplus.exe @pecmd.ini=(bd)/wimboot/win8pe/pecmdout.ini
initrd @boot.wim=(bd)/wimboot/win8pe/win8pe.wim


这样写就出现以下图片中的问题
kernel (fd0)/wimboot  
initrd @bcd=(fd0)/bcd
initrd @boot.sdi=(fd0)/boot.sdi
initrd @bootmgr=(fd0)/bootmgr
initrd @out.bat=(bd)/wimboot/win8pe/out.bat
initrd @fbplus.exe=(bd)/wimboot/win8pe/fbplus.exe
initrd @pecmd.ini=(bd)/wimboot/win8pe/pecmdout.ini
initrd @boot.wim=(bd)/wimboot/win8pe/win8pe.wim
999.png

看来是不是用http://bbs.wuyou.net/forum.php?mod=viewthread&tid=418096&extra=page%3D1
类似这样的语句在菜单开头弄个函数之类合并来解决
不知道菜单里支不支持写批处理之类的
回复

使用道具 举报

发表于 2019-12-31 22:50:42 | 显示全部楼层
截图的信息和你的菜单显示的内容不一样呀??

是用的哪个版本?可以试试从官网下载最新版本测试一下.

点评

嗯,是不同的菜单,一样的现象,是你合并后的版本  详情 回复 发表于 2020-1-1 09:36
回复

使用道具 举报

 楼主| 发表于 2020-1-1 09:36:33 | 显示全部楼层
chenall 发表于 2019-12-31 22:50
截图的信息和你的菜单显示的内容不一样呀??

是用的哪个版本?可以试试从官网下载最新版本测试一下.

嗯,是不同的菜单,一样的现象,是你合并后的版本
回复

使用道具 举报

发表于 2020-1-4 15:59:34 | 显示全部楼层
本帖最后由 chenall 于 2020-1-12 09:03 编辑

修改了一下,这个版本应该可以了.

放着测一段时间,没有问题的话再合并.

点评

虚拟机测试ok了,老家的混插内存老电脑倒是一样的,  详情 回复 发表于 2020-1-4 16:20
回复

使用道具 举报

 楼主| 发表于 2020-1-4 16:20:00 | 显示全部楼层
chenall 发表于 2020-1-4 15:59
修改了一下,这个版本应该可以了.

放着测一段时间,没有问题的话再合并.

虚拟机测试ok了,老家的混插内存老电脑倒是一样的,

点评

混插内存的,可以截个图看下。 还有displaymem的结果。 因为initrd只能加载到3G以下的空间(具体我也不清楚,^_^原来的代码是这样写的). 如果3G以下空间不够放的话就是报错  详情 回复 发表于 2020-1-4 17:29
回复

使用道具 举报

发表于 2020-1-4 17:29:45 | 显示全部楼层
江南一根葱 发表于 2020-1-4 16:20
虚拟机测试ok了,老家的混插内存老电脑倒是一样的,

混插内存的,可以截个图看下。

还有displaymem的结果。

因为initrd只能加载到3G以下的空间(具体我也不清楚,^_^原来的代码是这样写的).

如果3G以下空间不够放的话就是报错

点评

[attachimg]408774[/attachimg][attachimg]408775[/attachimg] [attachimg]408776[/attachimg] 这台电脑是以前写成一行也有这个错误的,我当它绝症不治的,但grub2下用同样的文件倒是可以启  详情 回复 发表于 2020-1-4 18:01
回复

使用道具 举报

 楼主| 发表于 2020-1-4 18:01:28 | 显示全部楼层
chenall 发表于 2020-1-4 17:29
混插内存的,可以截个图看下。

还有displaymem的结果。

1_缩小大小.jpg 2_缩小大小.jpg
3_缩小大小.jpg


这台电脑是以前写成一行也有这个错误的,我当它绝症不治的,但grub2下用同样的文件倒是可以启

回复

使用道具 举报

发表于 2020-1-6 14:20:03 | 显示全部楼层
能不能用debug模式再截个图看看。 比如 debug 5

点评

[attachimg]409347[/attachimg][attachimg]409348[/attachimg] 来往“民宿”的破电脑,热腾腾的debug 5出来了,  详情 回复 发表于 2020-1-11 18:01
那要周六了,每星期六回乡住“民宿”的  详情 回复 发表于 2020-1-6 14:23
回复

使用道具 举报

 楼主| 发表于 2020-1-6 14:23:05 | 显示全部楼层
chenall 发表于 2020-1-6 14:20
能不能用debug模式再截个图看看。 比如 debug 5

那要周六了,每星期六回乡住“民宿”的
回复

使用道具 举报

 楼主| 发表于 2020-1-11 18:01:56 | 显示全部楼层
chenall 发表于 2020-1-6 14:20
能不能用debug模式再截个图看看。 比如 debug 5

1_缩小大小.jpg 2_缩小大小.jpg
来往“民宿”的破电脑,热腾腾的debug 5出来了,
回复

使用道具 举报

发表于 2020-1-12 09:03:44 | 显示全部楼层
本帖最后由 chenall 于 2020-1-12 09:12 编辑

这个应该就可以了.

grub4dos-0.4.6a-2020-01-12.zip

758.83 KB, 下载次数: 8, 下载积分: 无忧币 -2

点评

66666真可以了,,这台机一直启不了的,都快十年了,平时在装机偶尔也能发现这个现象,因为概率不大所以一直没当回事,毕竟临时用map iso的方式是可以启的  详情 回复 发表于 2020-1-12 10:01
回复

使用道具 举报

 楼主| 发表于 2020-1-12 10:01:33 | 显示全部楼层
chenall 发表于 2020-1-12 09:03
这个应该就可以了.

66666真可以了,,这台机一直启不了的,都快十年了,平时在装机偶尔也能发现这个现象,因为概率不大所以一直没当回事,毕竟临时用map iso的方式是可以启的

点评

内存分布稍微特殊了一些,早期的initrd命令对可用内存检测比较简单粗暴. 我修改了一下,initrd命令现在自己不再判断可用内存,统一由map命令来检测,因为 initrd最终还是要通过map命令申请内存的. 现在基本上map能  详情 回复 发表于 2020-1-12 11:25
回复

使用道具 举报

发表于 2020-1-12 11:25:22 | 显示全部楼层
江南一根葱 发表于 2020-1-12 10:01
66666真可以了,,这台机一直启不了的,都快十年了,平时在装机偶尔也能发现这个现象,因为概率 ...

内存分布稍微特殊了一些,早期的initrd命令对可用内存检测比较简单粗暴.

我修改了一下,initrd命令现在自己不再判断可用内存,统一由map命令来检测,因为 initrd最终还是要通过map命令申请内存的.

现在基本上map能用就没有问题.

点评

不错不错,可能之前有人不喜欢用wimboot启wim是有这个失败的几率在吧,解决就灰常好了。 另外问个问题,g4d网启map网络上的iso是不是有大小限制,tinypxeserver作者好像解决了http不能读取大is  详情 回复 发表于 2020-1-12 13:54
回复

使用道具 举报

 楼主| 发表于 2020-1-12 13:54:16 | 显示全部楼层
chenall 发表于 2020-1-12 11:25
内存分布稍微特殊了一些,早期的initrd命令对可用内存检测比较简单粗暴.

我修改了一下,initrd命令现在 ...

不错不错,可能之前有人不喜欢用wimboot启wim是有这个失败的几率在吧,解决就灰常好了

另外问个问题,g4d网启map网络上的iso是不是有大小限制,tinypxeserver作者好像解决了http不能读取大iso的问题,但g4d去map还是一样
比如我想map http://微软大型iso ,能出来设备,不过里面只有一个readme.txt 内容好像是写不支持udf之类的,这样就不能完美网启安装微软原版iso,需要外置boot.wim,grub2也是这样,但本地iso又是一切正常的。
之前问过好像说是网启不支持高端低端的,http://bbs.wuyou.net/forum.php?mod=viewthread&tid=413169&extra=

回复

使用道具 举报

发表于 2020-1-13 09:26:01 | 显示全部楼层
本帖最后由 chenall 于 2020-1-13 09:27 编辑

好像不管能不能看得到文件都可以直接启动的吧.
直接用类似如下的语句就可以启动的.
chainloader (0xff)

看不到文件有可能是UDF驱动判断的问题,文件放在本地MAP没有问题是直接map还是 --mem的?

点评

我是想网络map出来(类似grub2的loopback后效果) 打算wimboot启动包里的boot.wim,注入驱动之类实现网络原版安装  详情 回复 发表于 2020-1-13 10:49
回复

使用道具 举报

 楼主| 发表于 2020-1-13 10:49:41 | 显示全部楼层
chenall 发表于 2020-1-13 09:26
好像不管能不能看得到文件都可以直接启动的吧.
直接用类似如下的语句就可以启动的.
chainloader (0xff)

我是想网络map出来(类似grub2的loopback后效果)
打算wimboot启动包里的boot.wim,注入驱动之类实现网络原版安装

点评

那就没有必要MAP整个iso了,浪费时间,直接整一个通用的BOOT.WIM就好了,更方便 .  详情 回复 发表于 2020-1-13 11:05
回复

使用道具 举报

发表于 2020-1-13 11:05:29 | 显示全部楼层
江南一根葱 发表于 2020-1-13 10:49
我是想网络map出来(类似grub2的loopback后效果)
打算wimboot启动包里的boot.wim,注入驱动之类实现网络 ...

那就没有必要MAP整个iso了,浪费时间,直接整一个通用的BOOT.WIM就好了,更方便 .

点评

那就不折腾这个先,不过g4d支持接受参数不  详情 回复 发表于 2020-1-13 11:57
回复

使用道具 举报

 楼主| 发表于 2020-1-13 11:57:41 | 显示全部楼层
chenall 发表于 2020-1-13 11:05
那就没有必要MAP整个iso了,浪费时间,直接整一个通用的BOOT.WIM就好了,更方便 .

那就不折腾这个先,不过g4d支持接受参数不

点评

grub.exe 支持参数,可以看一下readme  详情 回复 发表于 2020-1-13 17:10
回复

使用道具 举报

发表于 2020-1-13 17:10:37 | 显示全部楼层
江南一根葱 发表于 2020-1-13 11:57
那就不折腾这个先,不过g4d支持接受参数不

grub.exe 支持参数,可以看一下readme

点评

grub.exe支持网络不,我用ipxe去chain它好像没pxe信息  详情 回复 发表于 2020-1-22 19:32
回复

使用道具 举报

 楼主| 发表于 2020-1-22 19:32:57 | 显示全部楼层
chenall 发表于 2020-1-13 17:10
grub.exe 支持参数,可以看一下readme

grub.exe支持网络不,我用ipxe去chain它好像没pxe信息
回复

使用道具 举报

发表于 2020-1-23 16:19:29 | 显示全部楼层
学习一下
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 04:47

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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