请教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加载配置文件,第二个是直接加载配置文件,两个菜单加载的配置文件是一模一样的。
你的启动,死在了 NTLDR 加载之后。
建议你试试,不要加载 NTLDR,而是加载别的,比如加载 GRLDR,看看会不会死机。
怀疑你的 NTLDR 有问题,它不能适应被 DOS 污染之后的中断向量表。
你的 NTLDR(或 bootmgr)来路不明?是经过 hack 的?不是微软原版的?
请考虑这些因素。
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 16:51
你的启动,死在了 NTLDR 加载之后。
建议你试试,不要加载 NTLDR,而是加载别的,比如加载 GRLDR,看看 ...
换成了grldr后可以加载grldr,但不应该啊,我用的虽然不是微软的原版XP,但也是精简版,它不应该会搞NTLDR 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:35
换成了grldr后可以加载grldr,但不应该啊,我用的虽然不是微软的原版XP,但也是精简版,它不应该会搞NTLD ...
你再做个试验,用微软原版 ntldr 或 bootmgr,看看情况如何。
注意,只要能启动到 NTLDR 的引导菜单,就算成功。
你也可以故意在 boot.ini 里面添加一些无用的启动项,目的只是让 ntldr 的菜单出来。
你看看能出来吗?
如果能出来,说明问题不在 ntldr 和 bootmgr 上,而死机发生在后面的 Windows 启动过程中。
如果菜单出不来,那说明问题在 ntldr 和 bootmgr 上。换用原版试试。
不点 发表于 2019-8-13 17:46
你再做个试验,用微软原版 ntldr 或 bootmgr,看看情况如何。
注意,只要能启动到 NTLDR 的引导菜单, ...
换了个NTLDR(从网络上直接下载了两个,对比了MD5是一致的,因此认为是原版),启动到这个界面后很快就一闪而过,然后一直黑屏,直接configfile菜单文件能出boot.ini菜单;
换了bootmgr,不管是grub.exe还是直接加载菜单都能进入BCD报错界面 怀疑你的 DOS 有问题。你试试把 config.sys 里面清空,或者干脆删除 config.sys 文件,看看有没有效果。
注意 freeDOS 问题较多。请尽量使用 MSDOS。
你这是虚拟机,其他人也可以帮你测试。因为是虚拟机,所以,效果都一样。
很可惜,我没有环境,不方便测试,否则,我会替你搞定。
好的,就说这么多了,别的也帮不上了。
不点 发表于 2019-8-13 21:14
怀疑你的 DOS 有问题。你试试把 config.sys 里面清空,或者干脆删除 config.sys 文件,看看有没有效果。
...
多谢提醒,换了个config.sys果然正常啦,哈哈哈 不点果然厉害,切中要害。 DOS 下确实会出问题,但是,出现 NTLDR 运行不了的情况,这问题就太大了。当时开发 grub.exe 的时候,是完全可以启动 NTLDR 的,不可能后来又不支持 NTLDR 了。
那么,我就怀疑,问题出在 DOS 上。
FreeDOS 毛病多,尤其是 FreeDOS 里面的 HIMEM、扩展内存管理等工具,极易造成系统不稳定。这些问题,当时都弄清楚了。就是说,使用 FreeDOS 时,要避免使用它的扩展内存管理工具,否则就会产生死机之类的问题。因此我怀疑楼主在使用 FreeDOS,并且正好使用了它的扩展内存管理工具。
即便是使用 MSDOS,也不可以使用那些与 grub4dos 不兼容的常驻内存程序(TSR)。天汇汉字系统就与 grub4dos 不兼容(造成 grub.exe 死机,无法正常运行)。所以,我们发出了警告:用户不可以使用天汇汉字系统。好像别的汉字系统都没问题,唯独不可以使用天汇汉字系统。
2011yaya2007777 发表于 2019-8-14 09:10
不点果然厉害,切中要害。
大佬帮帮忙
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=415619&extra=page%3D1
加一下这个功能吧 在菜单前,加一条
passwd xxx
就可以了。 学习了 学习了 学习了
页:
[1]