map 后 PE 蓝屏原因专题讨论(e820cycles参数)
http://bbs.znpc.net/thread-6182-1-5.html
不点发表于 2011-12-8 11:42:31

大家知道,蓝屏的 workaround 解决方法是用 map --e820cycles=0 。但这并未根本解决问题。

本帖希望通过大量的用户测试和使用经验,探讨蓝屏的真正技术原因,以及可能的解决办法。

有以下问题需要澄清:

1。何时开始蓝屏的?就是说,什么时候出厂的机器,开始蓝屏?目的是确定旧电脑有无蓝屏现象。

2。蓝屏与硬件(主板、显卡)有关还是与软件(驱动程序)有关?猜测蓝屏不过就是某个显卡驱动的 bug 所导致的(这 bug 可能是人为制造的,也可能不是,这里不讨论这个话题)。显卡驱动有可能在某种硬件条件之下才 “引爆” bug,而在别的硬件之下,bug 未被 “激活”。如果确实如此,则更换显卡驱动,应该可以解决蓝屏问题。

我觉得WINPE蓝屏可能与FIRADISK或WINVBLOCK驱动有关——现在的PE大都用FIRADISK驱动,而我的上网本上用FIRADISK做WIN2003的RAMOS,也容易出现蓝屏,而WINVBLOCK似乎好一些,不过好象没几个用WINVBLOCK做PE的驱动的。

貌似从Intel的5系列芯片开始出现的,集显或可切换显卡的笔记本较常出现,估计是跟Intel的HD显卡有关,但至于是驱动还是硬件导致的,还得懂PE制作的人帮忙测试
什么叫 BIOS?那可不是只有主板才有 BIOS。显卡也有 BIOS。那些板卡,它们插在主板上,都可能有自己的 BIOS,也可能影响主板上原有的 BIOS。它们与主板一起,构成一个统一的、最终的 BIOS。这个最终的 BIOS,有时候为了简单起见,就统称为主板 BIOS。板卡插在主板上,影响的就是这个最终的 BIOS。因此,在上述讨论中,说 BIOS 没问题,是不对的。

你可以 “排除” 掉主板的问题,但你不能 “排除” 掉 BIOS 的问题。“主板” 与 “BIOS” 是两个不同的概念,即,它们互相有 “交叉”,但不是完全相同的。

根据诸位的描述,我也觉得问题可能是由显卡引起的。但严格来说,其实任何一个板卡(包括主板)都可能有问题。就是说,理论上存在这样的可能性,即,问题根本上是主板造成的,但显卡只是不幸地成为了 “受害者”(它被冤枉,它成为最大的 “嫌疑”)。

如果有人能够证明,这个显卡插在任何主板上都有同样的问题,那么这就基本上证明了确实是显卡的问题。
越来越多的迹象表明,正是由于 intel 的显卡造成的问题。大家继续给出 “ 证明 ”。
如果可能,希望您提供grub4dos命令行下(直接进入命令行后)执行 displaymem 命令的显示结果和执行 ' map --status '命令的显示结果 。
我开这个帖子,本来的目的仅仅是探讨在默认的 --e820cycles=-1 的情况下蓝屏问题的,结果,大家超出了这个范围。

原来的目的只是是想搞清导致蓝屏的具体技术细节的。就是想判断出,究竟哪个驱动程序导致了死机,以及可否通过更换有问题的驱动程序而解决问题。这才是开这个帖子的目的。

再次澄清:

当 --e820cycles 不是 -1 的时候,出现任何情况,都是正常的,就是说,死机、蓝屏,都属于正常现象,我想,这一点就不用多次重复解释了吧?而且这也不是本帖关注的重点。
sony vaio vpcsa双显卡笔记本电脑:
map --e820cycles=-1后蓝屏,改成map --e820cycles=3正常
仔细看“framebuf”,说明是显示缓存有关

蓝屏的原因,以前就搞清楚了,是 Windows 保护模式的驱动程序导致的。zhaohj 的情况,在蓝屏时已经把出错的驱动程序名字列出来了,它叫 framebuf 。

如果能够更换掉这个驱动程序,就可以避免蓝屏。

别再怀疑 grub4dos 的 int15 了。完全与此无关。zw2312914 仔细看看,grub4dos 的 int15,基本上可以说,不可能出错的,这已经经过了无数次反复的锤炼了。应该是你自己搞错了。你从头到尾,仔细看看,就可知道,不会犯这样低级的错误。

为什么说与 grub4dos 的 int15 无关呢?因为已经证明了,在 grub4dos 的 int15 接管控制之后,什么也不做,立即用 jmp 指令转到 ROM 中原来的入口,照样死机。而只有完全把 int15 的中断向量直接改成 ROM 入口,才不死机。这就是为什么要添加 e820cycles 参数的缘由了。

就是说,只要中断号被修改成指向低于 ROM 的常规内存(即使立即又转向 ROM 入口),在有问题的机器上,必死无疑。否则,如果不被 grub4dos 接管,就不会蓝屏。问题十分清楚明白,这与 grub4dos 的 int15 的处理过程,完全无关。

所以,别在这个问题上纠结了。根本无解,除了更换驱动程序以外。

有证据显示,同一台机器,换用 win7 一切正常,这说明,问题不在 grub4dos 上,而正是 XP 的驱动程序的错。

以上都是有证明的,没有含糊不清的地方。

displaymem 命令不显示是否被 map 占据的空间。也就是说,displamem 命令永远显示原来的、系统 BIOS 所赋予的内存布局。

memcheck 才显示经过 map --hook 修改后的内存布局。

目前感觉大于4G内存的机器,map --mem --top /iso.iso (0xff)这种形式,会破坏仿真盘;
曾经测试上面8G内存的sony笔记本,前后map --mem --top一个虚拟盘,也不成功。
e820在4G以上是否没保护?
----------------------
再找了台8G内存的台式机,map --mem --top 成功。
看来还是双显卡主板的问题。
但双显卡主板的机器,不加--top是可以成功的。也许是4G以上的内存区域不是一个连续的空间,里面有空洞,我们没有检测出来。
大家知道,蓝屏的 workaround 解决方法是用 map --e820cycles=0 。但这并未根本解决问题。

map 后 PE 蓝屏原因专题讨论(e820cycles参数)的更多相关文章

  1. 揪出“凶手”——实战WinDbg分析电脑蓝屏原因

    http://www.appinn.com/blue-screen-search-code/ 蓝屏代码查询器 – 找出蓝屏的元凶 11 文章标签: windows / 系统 / 蓝屏. 蓝屏代码查询器 ...

  2. Thinkpad W540通过扩展坞连接显示器后蓝屏原因

    问题:Thinkpad W540通过扩展坞连接显示器后蓝屏 描述:直接扩展连接显示器重启电脑,一直黑屏,等待光标,进不了桌面.分离扩展,进入后,再连接显示器,蓝屏死机. 解决:用尽办法,重装显示驱动, ...

  3. AMD电脑装完Winsows10后开机蓝屏,报错代码:cdmsnroot_s.sys

    背景:今天装了个WIN10,电脑配置:联想 IdeaPad   Z485      : AMD   A8处理器      .完成安装后电脑没有问题,安装了驱动程序后将           电脑用360 ...

  4. 简单查看windows蓝屏原因

    相信各位在使用windows(xp.7.8.1.10...)过程中都遇到过蓝屏的情况,而蓝屏时,系统会将其记录起来,并追踪到引起蓝屏的程序,以下内容将简单介绍一下如何查看引起windows蓝屏的原因: ...

  5. Windows 7 蓝屏原因

    Windows 7 蓝屏 Microsoft (R) Windows Debugger Version 6.11.0001.404 X86 Copyright (c) Microsoft Corpor ...

  6. windbg 加载dump监测蓝屏原因时出现重复的星星框提示解决办法

    加载dump文件出现了重复上边的信息 总结: 要reload一下环境,说明符号库未加载出现的错误,!sym noisy 显示详细信息 ,reload重载符号库,未找到的,从服务器进行下载, 注意,第一 ...

  7. ubuntu 虚拟机复制后打开蓝屏解决办法

    sudo apt-get install xserver-xorg-lts-utopic sudo dpkg-reconfigure xserver-xorg-lts-utopic reboot

  8. ghost系统到硬盘完后,重启进入winxp安装的画面变成了蓝屏

    ghost系统到硬盘完后,重启进入winxp安装的画面变成了蓝屏 原因分析: 一.系统集成的驱动和主板不兼容  这种原因引起的故障在部份品牌机上较常见,主要症状是系统能正常安装完成,但完成后重启进入系 ...

  9. Windows机器配置启动加载器的高级选项后,机器出现蓝屏,无法RDP

    问题描述: 虚拟机重启后出现蓝屏,需要排查原因 蓝屏界面如下: 排查结果: 1.Console发现机器停留在上述蓝屏界面,按F8后,机器可以正常启动并成功连接:但通过console再次重启后,又会进入 ...

随机推荐

  1. 解决maven项目将model version改成3.0版本问题

    找到项目目录,找到.setting文件 找到org.eclipse.wst.common.project.facet.core.xml文件 修改如下标签 <installed facet=&qu ...

  2. Apache+Tomcat+mod_jk负载均衡

    一.需要的软件 1.jdk1.5以上 2.Tomcat6以上 3.Apache2.2以上 ,地址http://apache.dataguru.cn//httpd/binaries/win32/ ,名称 ...

  3. Linux中安装Cisco Packet Tracer

    Cisco Packet tracer是什么? Cisco Packet Tracer是一个强大的网络模拟工具,用于进行Cisco认证时的培训.它为我们 提供了各个路由器和网络设备的良好的接口视图,这 ...

  4. 【leetcode❤python】 438. Find All Anagrams in a String

    class Solution(object):    def findAnagrams(self, s, p):        """        :type s: s ...

  5. 【leetcode❤python】299. Bulls and Cows

    class Solution(object):    def getHint(self, secret, guess):        """        :type ...

  6. Entity Framework 不支持DefaultValue

    http://stackoverflow.com/questions/18506088/entityframework-not-updating-column-with-default-value Y ...

  7. PythonOCC 3D图形库学习—创建立方体模型

    Open CASCADE(简称OCC)平台是是一个开源的C++类库,OCC主要用于开发二维和三维几何建模应用程序,包括通用的或专业的计算机辅助设计CAD系统.制造或分析领域的应用程序.仿真应用程序或图 ...

  8. Create Stacked Canvas to Scroll Horizontal Tabular Data Blocks In Oracle Forms

    In this tutorial you will learn to create horizontal scrollable tabular or detail data block by usin ...

  9. StopWatch的使用

    //StopWatch在System.Diagnostics命名控件,要使用它就要先引用这个命名空间. //其使用方法如下: //var stopWatch = new StopWatch(); // ...

  10. jQuery:使用$获取对象后检查该对象是否存在

    注意: 1)即使jQ获取到网页中不存在的元素也不会报错 2)使用$("#tt")形式获取到的永远是对象,即使网页上没有此元素 jQuery检查某个元素在网页上是否存在时,不能使用以 ...