yjqd 发表于 2016-11-8 09:56:08

在微软的Virtual PC 2007虚拟机中grub有些命令运行不了

为了测试一些grub4dos命令,不想重启电脑,安装了微软的Virtual PC 2007虚拟机
1、制作了dos镜像(三个基本文件),里面加入了grub.exe
启动虚拟机,运行dos,在dos命令符输入grub
在grub命令符输入md5crypt 123456
显示了加密的字符串
在grub命令符输入md5crypt 123456 | set p=
回车后只有一个光标在闪,其它什么内容也没容,一直卡在这里

2、dos镜像增加config.sys和himem.sys,config.sys内容如下:

menuitem=command, LOAD CONFIG
menudefault=command,3

device=himem.sys /testmem:off
files=10
buffers=10
dos=high,umb
stacks=9,256
lastdrive=z

启动虚拟机,运行dos,在dos命令符输入grub
在grub命令符输入md5crypt 123456
显示了加密的字符串
在grub命令符输入md5crypt 123456 | set p=
回车后直接就重启dos了

在本机硬盘中测试grub不会出现上面的情况

不点 发表于 2016-11-8 11:46:35

感谢您这个报告。直觉上,我感觉这样的问题是可以解决的,能够通过逐步定位、逐步缩小范围的方式加以解决。而且,我想,不要太过于依赖开发维护人员;我们的用户,也是可以有所突破的。如果我们自己能够修复 bug、解决问题,那我们所得到的就比较多了,我们的经验、信心,就会有很大程度的丰富和提升。

先试试不用 DOS、只用 grldr,看看会不会出现相同的问题。就是确定是不是 DOS 带来的问题。然后根据测试结果,再安排下一个测试内容。

yjqd 发表于 2016-11-8 13:03:40

不点 发表于 2016-11-8 11:46
感谢您这个报告。直觉上,我感觉这样的问题是可以解决的,能够通过逐步定位、逐步缩小范围的方式加以解决。 ...

谢谢回复
刚才我用的UltraISO制作的iso,引导文件为grldr,没用mkisofs制作iso,iso里什么文件都没有
启动虚拟机运行iso,出现begin pxe scan...
一会出现gurb命令提示符
还是按1的第1方法楼操作,结果一样
重启虚拟机,输入
echo 123456 | set p=
还是卡住
------------------------------------------------------------------------------------
启动虚拟机运行iso,出现begin pxe scan...,这种情况好像是配置低才会出现,检查虚拟机内存,只有4M,原来只是测试dos,所以只把内存设置成4M,
把内存设置为30不出现begin pxe scan...,还是按1的第1方法楼操作,结果一样

把内存设置为40不出现begin pxe scan...,还是按1的第1方法楼操作,操作成功

发帖的时候我知道应该不是grub4dos的原因,只是想问问微软这款虚拟是否不适于grub4dos,或许要grub4dos加个其它什么参数才能不出现前面的问题,结果是我自已设置内存的问题
太好了,微软的Virtual PC 2007虚拟机能运行grub4dos的命令

不点 发表于 2016-11-8 14:31:14

祝贺你,太好了!我认为您基本上抓住(或找到)了问题的症结。运气不错,又有耐力。三下五去二,就结束了战斗。我还想着,有可能折腾半年才会有结果呢,不曾想,这么快就搞定了,棒极了!

下面说说我的理解。grub4dos 需要保留 32M 内存供自己的内核代码正常运行。如果还要运行外部命令,那还需要额外的内存。因此通常需要 128M 内存,才能保证外部命令的顺利运行。

就像您碰到的情况那样,如果给的内存少了,就会出现各种不正常情况了。


yjqd 发表于 2016-11-8 15:00:35

不点 发表于 2016-11-8 14:31
祝贺你,太好了!我认为您基本上抓住(或找到)了问题的症结。运气不错,又有耐力。三下五去二,就结束了战 ...

谢谢不点!

还是你提示测试一下grldr,我才发现是虚拟机内存设置小了的原因

测试grldr,出现begin pxe scan...,于是搜索了下帖子,结果还有几个帖子是关于出现begin pxe scan...的问题,其中就有说是配置低,运行慢导致出现begin pxe scan...

我原来把内存设置为4M时,dos中运行grub,要等上一会儿才出现grub的命令提示符(不会出现begin pxe scan...)
iso中运行grldr也是要等上一会儿才出现grub的命令提示符(会出现begin pxe scan...)

确实虚拟机内存设置低了
-----------------------------------------------------------------------------------------------------------------------------------------------
“grub4dos 需要保留 32M 内存供自己的内核代码正常运行。如果还要运行外部命令,那还需要额外的内存。因此通常需要 128M 内存,才能保证外部命令的顺利运行。”

看来我连grub4dos所需的基本内存都没记住,不好意思

muzb 发表于 2016-11-8 16:18:20

{:3_137:}路过

不知 发表于 2016-11-8 20:10:21

学习了,是不是巧合,G4D的要求差不多和Xp的要求差不多。

不点 发表于 2016-11-8 21:55:36

不知 发表于 2016-11-8 20:10
学习了,是不是巧合,G4D的要求差不多和Xp的要求差不多。

多谢您对 grub4dos 的支持。grub legacy 对内存并无特别要求。但 grub4dos 发展出很多功能,逐渐增加了内存需求。后来支持 65536 个 unicode 字模(16x16),仅此一项就要消耗 2M 空间。如果支持 32x32 字模,则需 8M 内存。支持 gfxmenu,又花费了 2M 内存。其它各类功能,又要消耗若干 MB 的内存。目前 32M 内存就已经消耗殆尽,假如 grub4dos 还要继续开发的话,其内存消耗的指标还会提升。不过,幸亏现代主板都正在淘汰 BIOS,那么(在我看来) grub4dos 也就可以不用继续开发了,这也就基本可以维持目前的内存占用,不用去担心 grub4dos 不断推出新版本从而有 “不兼容” 的事情发生了。刚才 32M 内存只是 grub4dos 本身内核的占用,外部命令还需要占用内存,因此,最少应有 128M 内存才可比较放心。这好像碰巧也与早期的 XP 最低内存需求一致。在真实机器上,这点内存要求通常都满足了。而往往容易忽略的,正是虚拟机的情况,正如本帖所遇到的问题。

不知 发表于 2016-11-8 22:08:34

不点 发表于 2016-11-8 21:55
多谢您对 grub4dos 的支持。grub legacy 对内存并无特别要求。但 grub4dos 发展出很多功能,逐渐增加了内 ...

学习了。
页: [1]
查看完整版本: 在微软的Virtual PC 2007虚拟机中grub有些命令运行不了