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. 2016 Al-Baath University Training Camp Contest-1 F

    Description Zaid has two words, a of length between 4 and 1000 and b of length 4 exactly. The word a ...

  2. jQueryEasyUI Messager基本使用

    二.jQueryEasyUI Messager基本使用 1.$.messager.alert(title, msg, icon, fn)1>.基本用法 代码: 1 2 3 4 5 6 7 8 9 ...

  3. 常用PDF文档开发库

    C++库: 1,PDF类库 PoDoFo   http://podofo.sourceforge.net/  PoDoFo 是一个用来操作 PDF 文件格式的 C++ 类库.它还包含一些小工具用来解析 ...

  4. WCF 自托管、无配置文件实现jsonp(跨域)的访问

    以下内容基于WCF4.0,本文将对比讨论配置文件方案和无配置文件方案的实现方式. WCF4.0加入了对RESTFU和标准终结点的支持,这为实现跨域提供了简单的方式. 一.有配置文件的情况: 首先我们先 ...

  5. MVC开发模式

     关于mvc详情可参阅:http://www.w3school.com.cn/aspnet/mvc_intro.asp MVC (Modal View Controler)本来是存在于Desktop程 ...

  6. Cheatsheet: 2014 02.01 ~ 02.28

    Database Managing disk space in MongoDB When to use GridFS on MongoDB .NET The Past, Present, and Fu ...

  7. 曲线救国,解决Mac系统下,Android sdk下载失败的问题

    Mac下翻_墙的问题 话说GFW屏蔽谷歌已经有一阵子了,最近打算在Mac系统下折腾个Android应用,备好了IDE,只欠SDK,无奈下载时因为GFW的缘故,总是失败,我心痛哉! 由于本人偏爱Mac系 ...

  8. 判断浏览器是否为IE内核的最简单的方法

    没啥说的,直接贴代码,算是ie hack了. if (!+[1,]) { alert('is ie'); }

  9. PHP clone

    PHP  clone     定义一个电视类 class Tv{public $width=100;public function setWidth($v){$this->width = $v; ...

  10. Lucky String

    Lucky String -- 微软笔试 标签(空格分隔): 算法 A string s is LUCKY if and only if the number of different charact ...