无忧启动论坛

标题: 请教grub.exe为啥不能正常启动VHD [打印本页]

作者: 指南针    时间: 2019-8-13 15:35
标题: 请教grub.exe为啥不能正常启动VHD
本帖最后由 指南针 于 2019-8-14 08:58 编辑

如题,我在DOS下用grub.exe加载配置文件,然后去启动VHD系统,但它不会正常启动,会有一个提示信息:

info:total_sectors calculated from partition table(16065)is less than the number of sectors in the whole disk image(20481).
信息:根据分区表(16065)计算的total_sectors小于整个磁盘映像(20481)中的扇区数量。

但是不使用DOS,是可以直接加载配置文件启动到系统的。

提供一个测试fba包,两个菜单,第一个是DOS启动grub.exe加载配置文件,第二个是直接加载配置文件,两个菜单加载的配置文件是一模一样的。

{2FBAD9CC-3036-4D42-8341-C4CAB26CCD88}_20190813153511.jpg (48.98 KB, 下载次数: 126)

{2FBAD9CC-3036-4D42-8341-C4CAB26CCD88}_20190813153511.jpg

作者: 不点    时间: 2019-8-13 16:51
你的启动,死在了 NTLDR 加载之后。

建议你试试,不要加载 NTLDR,而是加载别的,比如加载 GRLDR,看看会不会死机。

怀疑你的 NTLDR 有问题,它不能适应被 DOS 污染之后的中断向量表。

你的 NTLDR(或 bootmgr)来路不明?是经过 hack 的?不是微软原版的?

请考虑这些因素。


作者: liuzhaoyzz    时间: 2019-8-13 17:24
1、info:total_sectors calculated from partition table(16065)is less than the number of sectors in the whole disk image(20481).
这个提示的意思是你需要用固定大小的VHD来代替动态VHD,grub4dos的提示似乎不准确。
2、windows.vhd要想用grub4dos引导,需要有第三方的驱动,比如firadisk/winvblock/svbus之类的,否则无法识别磁盘7B蓝屏,bootmgr可以不要其他驱动直接引导vhd,grub4dos不能直接引导。
3、Will boot NTLDR from drive=0x80的提示,不一定是NTLDR,bootmgr似乎也会被grub4dos这样子提示即将引导NTLDR,这个提示似乎不准确。        

作者: 指南针    时间: 2019-8-13 17:35
不点 发表于 2019-8-13 16:51
你的启动,死在了 NTLDR 加载之后。

建议你试试,不要加载 NTLDR,而是加载别的,比如加载 GRLDR,看看 ...

换成了grldr后可以加载grldr,但不应该啊,我用的虽然不是微软的原版XP,但也是精简版,它不应该会搞NTLDR
作者: 指南针    时间: 2019-8-13 17:43
liuzhaoyzz 发表于 2019-8-13 17:24
1、info:total_sectors calculated from partition table(16065)is less than the number of sectors in th ...

我的VHD是固定大小,也注入了驱动,但现在问题是在DOS下的grub.exe压根不能启动VHD,没启动ntldr进入BOOT.INI的系统选择界面,我认为我用的NTLDR是原版的
作者: 不点    时间: 2019-8-13 17:46
指南针 发表于 2019-8-13 17:35
换成了grldr后可以加载grldr,但不应该啊,我用的虽然不是微软的原版XP,但也是精简版,它不应该会搞NTLD ...

你再做个试验,用微软原版 ntldr 或 bootmgr,看看情况如何。

注意,只要能启动到 NTLDR 的引导菜单,就算成功。

你也可以故意在 boot.ini 里面添加一些无用的启动项,目的只是让 ntldr 的菜单出来。

你看看能出来吗?

如果能出来,说明问题不在 ntldr 和 bootmgr 上,而死机发生在后面的 Windows 启动过程中。

如果菜单出不来,那说明问题在 ntldr 和 bootmgr 上。换用原版试试。



作者: 指南针    时间: 2019-8-13 18:05
不点 发表于 2019-8-13 17:46
你再做个试验,用微软原版 ntldr 或 bootmgr,看看情况如何。

注意,只要能启动到 NTLDR 的引导菜单, ...

换了个NTLDR(从网络上直接下载了两个,对比了MD5是一致的,因此认为是原版),启动到这个界面后很快就一闪而过,然后一直黑屏,直接configfile菜单文件能出boot.ini菜单;
换了bootmgr,不管是grub.exe还是直接加载菜单都能进入BCD报错界面
作者: 不点    时间: 2019-8-13 21:14
怀疑你的 DOS 有问题。你试试把 config.sys 里面清空,或者干脆删除 config.sys 文件,看看有没有效果。

注意 freeDOS 问题较多。请尽量使用 MSDOS。

你这是虚拟机,其他人也可以帮你测试。因为是虚拟机,所以,效果都一样。

很可惜,我没有环境,不方便测试,否则,我会替你搞定。

好的,就说这么多了,别的也帮不上了。


作者: 指南针    时间: 2019-8-14 08:58
不点 发表于 2019-8-13 21:14
怀疑你的 DOS 有问题。你试试把 config.sys 里面清空,或者干脆删除 config.sys 文件,看看有没有效果。

...

多谢提醒,换了个config.sys果然正常啦,哈哈哈
作者: 2011yaya2007777    时间: 2019-8-14 09:10
不点果然厉害,切中要害。
作者: 不点    时间: 2019-8-14 19:12
DOS 下确实会出问题,但是,出现 NTLDR 运行不了的情况,这问题就太大了。当时开发 grub.exe 的时候,是完全可以启动 NTLDR 的,不可能后来又不支持 NTLDR 了。

那么,我就怀疑,问题出在 DOS 上。

FreeDOS 毛病多,尤其是 FreeDOS 里面的 HIMEM、扩展内存管理等工具,极易造成系统不稳定。这些问题,当时都弄清楚了。就是说,使用 FreeDOS 时,要避免使用它的扩展内存管理工具,否则就会产生死机之类的问题。因此我怀疑楼主在使用 FreeDOS,并且正好使用了它的扩展内存管理工具。

即便是使用 MSDOS,也不可以使用那些与 grub4dos 不兼容的常驻内存程序(TSR)。天汇汉字系统就与 grub4dos 不兼容(造成 grub.exe 死机,无法正常运行)。所以,我们发出了警告:用户不可以使用天汇汉字系统。好像别的汉字系统都没问题,唯独不可以使用天汇汉字系统。


作者: 指南针    时间: 2019-8-16 17:01
2011yaya2007777 发表于 2019-8-14 09:10
不点果然厉害,切中要害。

大佬帮帮忙
http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1
加一下这个功能吧
作者: 2011yaya2007777    时间: 2019-8-16 19:08
在菜单前,加一条
passwd xxx
就可以了。
作者: cbl    时间: 2020-3-2 23:16
学习了
作者: cbl    时间: 2020-3-2 23:16
学习了
作者: cbl    时间: 2020-3-2 23:16
学习了




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net./) Powered by Discuz! X3.3