- PC错误信息通常表明驱动程序、内存、磁盘、权限或操作系统设置存在故障。
- Windows 蓝屏死机 (BSOD) 由 STOP 代码识别,有助于定位问题的根源。
- 好的错误信息应该具有相关性、清晰性、可操作性和以用户为中心,避免使用不必要的技术术语。
- 在 Windows 和 Linux 系统中,许多错误可以通过更新驱动程序和工具、检查硬件以及更正权限和设置来解决。
电脑错误信息总是在最糟糕的时刻出现:比如工作、玩游戏,或者只是想启动电脑的时候。有些错误信息一目了然,有些则完全令人费解,而且很多时候甚至根本不解释发生了什么。然而,每个错误信息背后通常都有一个相当合理的解释:硬件故障、内存问题、磁盘错误、驱动程序安装错误或操作系统损坏。
本指南将深入探讨PC(Windows和Linux)上最常见的错误信息类型,解释它们的实际含义,区分普通警告和严重错误(例如臭名昭著的蓝屏死机),并指导您如何修复这些错误信息,或者至少了解其背后的原因。您还将了解到“正确”的错误信息应该如何编写,以及为什么很多程序的错误信息写得如此糟糕。
常见的 Windows 错误:驱动程序、内存和系统资源
Windows 系统中常见的警告之一是设备驱动程序损坏或系统内存或资源不足,在设备管理器中显示为“代码 3”。完整的警告信息通常会提示驱动程序可能已损坏或计算机内存不足,并建议释放资源或安装更多内存。
当Windows 无法正确使用设备(网卡、显卡、USB 等)时,就会出现这种类型的错误,原因可能是驱动程序损坏、安装不正确或已过时,也可能是系统 RAM 或虚拟内存不足,无法再分配更多资源。
一个简单但有效的初步解决方法是关闭应用程序以释放内存。您可以按 Ctrl + Alt + Del 打开任务管理器,查看哪些进程正在占用 RAM 和 CPU。如果问题与虚拟内存有关,您可以在“系统属性”的“高级”选项卡下的“性能”部分调整页面文件大小。
如果问题出在驱动程序上,建议通过设备管理器卸载并重新安装驱动程序。在设备属性的“驱动程序”选项卡下,您可以卸载驱动程序,重启电脑,然后让 Windows 扫描硬件更改,以便重新检测设备。在某些情况下,您可能需要从制造商的网站下载更新的驱动程序。
如果您的电脑经常满负荷运行,反复出现内存错误和资源不足的提示,很可能是您需要升级内存(RAM)。增加内存可以缓解许多与“内存不足”、“应用程序无法继续运行”或随机崩溃相关的错误。
系统和文件级别的经典错误消息

除了驱动程序警告之外,任何电脑用户都可能遇到过一些常见的提示信息,表明权限、设备或文件存在问题。虽然不同操作系统的提示措辞可能有所不同,但其基本含义通常相同。
当出现“访问被拒绝”消息时,表示用户没有足够的权限读取、写入或执行文件、文件夹或资源,或者访问权限已被其他程序或用户限制。此类错误常见于多用户系统、受保护的文件夹或系统文件中。
当系统尝试访问一个未就绪的驱动器时,通常会显示“设备未就绪”的消息:例如,软盘驱动器或未插入介质或介质损坏的移动驱动器。这是典型的尝试读取一个没有可读取内容的驱动器的情况。
如果您看到“文件未找到”的消息,通常意味着该文件已被移动、删除、重命名或损坏。也可能是由于文件名拼写错误(在命令行中更常见)或指定的路径不存在。某些程序在文件损坏且无法正确打开时也会显示此消息。
当硬盘空间几乎已满时,会出现“硬盘空间不足”的提示。这可能会导致保存文档时出错、交换文件出现问题或程序安装程序出现故障。解决方法包括删除不必要的文件、清除临时文件或将数据移动到另一个硬盘,在极端情况下,可能需要升级到容量更大的硬盘。
“内存不足”提示表明系统可用内存不足,或者正在尝试加载过大的文件。通常的解决方法是关闭不使用的程序,避免同时打开过多的标签页和应用程序;如果频繁出现此问题,则应考虑升级物理内存。
操作系统中的历史错误和虚构信息

在计算机发展史上,出现过一些非常奇特的错误信息,以至于它们都成为了名人。有些系统拥有标志性的警告信息,任何计算机爱好者都能一眼认出。
在MS-DOS系统中, “中止、重试、忽略?”这条信息非常常见——这是一个令人困惑的对话框,用户必须在不清楚每个选项具体作用的情况下做出选择。这显然不是良好用户体验的典范。
AmigaOS 系统曾出现过著名的“Guru Meditation ”(大师冥想),这是一种该平台特有的“死亡屏幕”。在 Unix 系统中,与之对应的现代错误是“内核崩溃”(kernel panic),它表明系统内核遇到了无法恢复的错误。
在网络领域,最常见的错误之一是404 错误,它表示服务器正在响应,但请求的资源不存在。这可能是由于 URL 已更改、文件已被删除或地址拼写错误造成的。
当然,在 Windows 系统中,我们还有令人恐惧的蓝屏死机 (BSOD),当系统检测到内核、驱动程序或硬件中存在严重错误时,就会出现蓝屏死机,并被迫停止以避免进一步损坏。
Windows 蓝屏:STOP 代码和常见原因
当 Windows 遇到无法在不重启的情况下解决的问题时,就会出现蓝屏死机 (BSOD) 错误。在 Windows 10 和 11 等较新版本中,典型的错误信息是“你的电脑遇到问题,需要重新启动”,以及一个十六进制格式的停止 (STOP) 代码(例如 0x00000050、0x0000007E 等)。
导致蓝屏的最常见原因包括驱动程序故障或不兼容、内存损坏、硬盘坏扇区、线缆损坏、过热、BIOS 版本过旧或系统文件损坏。每个 STOP 代码都指向一个特定的问题根源。
例如,最常见的错误之一是PAGE_FAULT_IN_NONPAGED_AREA (0x00000050),这表明系统尝试访问它不应该访问的内存区域,通常是由于RAM 故障、驱动程序问题或 NTFS 卷损坏造成的。
错误代码IRQL_NOT_LESS_OR_EQUAL (0x0000000A)表示内核模式组件尝试以不适当的优先级访问内存,这是编写不佳或不兼容的驱动程序常见的问题。当异常处理程序检测到进程执行了无效指令时,会发生错误KMODE_EXCEPTION_NOT_HANDLED (0x0000001E) 。
其他经典错误包括DRIVER_IRQL_NOT_LESS_OR_EQUAL (0x000000D1),它类似于 0x0A,但明确指出罪魁祸首是驱动程序;SYSTEM_SERVICE_EXCEPTION (0x0000003B),它指向抛出异常的系统服务或驱动程序;以及SYSTEM_THREAD_EXCEPTION_NOT_HANDLED (0x0000007E),通常是由过时或不兼容的驱动程序引起的。
您还会看到一些更直接指向硬件故障的错误,例如MEMORY_MANAGEMENT (0x0000001A),与内存管理问题和故障的 RAM 模块相关;或者WHEA_UNCORRECTABLE_ERROR (0x00000124) ,与 CPU、主板、RAM 的物理故障或电压和温度问题密切相关。
磁盘和文件系统相关的停止代码
当问题与磁盘或文件系统相关时,STOP 代码有助于识别问题。例如,STOP 0x00000024(NTFS 文件系统)或0x00000023/0x00000024(FAT 文件系统/NTFS 文件系统)表示Windows 在读取或写入分区时遇到困难,通常是由于 ntfs.sys 文件错误、电缆损坏、坏扇区或文件系统损坏造成的。
在这种情况下,强烈建议运行设备或磁盘制造商提供的诊断工具,暂时禁用可能造成干扰的防病毒软件、碎片整理程序或备份程序,并在受影响的驱动器上运行chkdsk /fo chkdsk /f /r以查找和隔离问题扇区。
错误UNMOUNTABLE_BOOT_VOLUME (0x000000ED)通常在启动时出现,表示Windows 无法访问启动分区。这可能是由于主板或控制器更换,或者磁盘连接被修改所致。有时可以通过从恢复控制台运行 chkdsk 命令来修复,但有时则需要进行全面的硬件和配置检查。
同样,INACCESSIBLE_BOOT_DEVICE (0x0000007B)表示系统在启动过程中无法访问启动设备。常见的原因包括 BIOS SATA 模式(RAID/AHCI)更改、存储控制器错误或启动文件损坏。
最后,诸如BAD_POOL_HEADER (0x00000019)之类的错误表明保留内存区域头(池)损坏,这通常是由不稳定的驱动程序、硬件问题或处理内存不当的软件冲突引起的。
与内存、驱动程序和 CPU 相关的蓝屏死机
还有另一类蓝屏错误明显与驱动程序、内存和处理器故障有关。一个典型的例子是前面已经讨论过的STOP 0x00000050 (PAGE_FAULT_IN_NONPAGED_AREA)错误,通常可以通过移除新安装的硬件、运行内存诊断程序、检查驱动程序以及在分区为 NTFS 格式时运行 chkdsk 命令来解决。
停止代码0x0000007E (SYSTEM_THREAD_EXCEPTION_NOT_HANDLED)和0x0000008E (KERNEL_MODE_EXCEPTION_NOT_HANDLED)表示系统线程或内核模式进程抛出了未处理的异常。这些异常通常与驱动程序或 BIOS 不兼容、硬件故障,或者最常见的是显卡驱动程序(例如,来自 Nvidia 的驱动程序)故障有关。
STOP 0x0000007F (UNEXPECTED_KERNEL_MODE_TRAP)错误通常与内存故障、主板缺陷或软件不兼容有关。一个常见的、有据可查的原因是,在旧版本的 Windows 系统上使用某些杀毒软件(例如 Norton)时会发生此错误。检查硬件兼容性并运行内存测试几乎是必须的。
另一方面,STOP 0x0000009F (DRIVER_POWER_STATE_FAILURE)表示驱动程序与节能功能(尤其是在笔记本电脑上,例如睡眠、休眠等)不兼容。更新或禁用有问题的驱动程序、以安全模式或使用已知最新的良好配置启动,以及检查使用过滤器的软件(例如防病毒软件、备份软件)通常是合理的解决方案。
STOP代码 0x000000EA (THREAD_STUCK_IN_DEVICE_DRIVER)在显卡领域几乎是一个经典错误:它表示设备驱动程序(通常是 GPU 驱动程序)已进入无限循环,重复执行指令,导致系统无法恢复。
配准、成像和机器验证中的关键错误
当问题影响注册表或系统二进制文件本身时,会出现诸如STOP 0xC0000218 (UNKNOWN_HARD_ERROR)之类的错误,表明注册表文件已损坏或被删除,甚至可能是内存模块故障。在这种情况下,系统通常无法正常启动。
停止代码0xC000021A (STATUS_SYSTEM_PROCESS_TERMINATED)表示关键用户模式进程(例如 Winlogon 或 CSRSS)已失败。其原因通常是软件或驱动程序不兼容,通常需要检查最近的安装、卸载驱动程序,最坏的情况下,可能需要修复或重新安装 Windows。
出现STOP 0xC0000221 (STATUS_IMAGE_CHECKSUM_MISMATCH)错误时,Windows 检测到系统文件或驱动程序的校验和与预期值不匹配。这表明文件已被修改、已损坏,或者从磁盘或内存读取文件时出现问题。系统在加载文件时会计算校验和,如果计算结果与存储的校验和不匹配,则会抛出此错误。
最后,STOP 0x0000009C (MACHINE_CHECK_EXCEPTION)直接与处理器检测到的不可恢复的硬件错误有关。奔腾处理器及后续型号中的机器检查异常 (MCE) 或机器检查架构 (MCA) 等技术会通知 Windows,物理层面(处理器、主板、内存等)出现了严重故障,有时是超频造成的。具体的诊断通常比较复杂,往往需要制造商或专业技术人员的介入。
面对所有这些错误,除了针对每个代码的具体操作之外,使用DISM /Online /Cleanup-Image /RestoreHealth和系统文件检查器等工具,以及查看事件查看器和小型转储文件来完善诊断,都是非常有用的。
来自“正常”Windows 的常见错误和奇怪消息
并非所有 Windows 错误信息都会导致蓝屏或灾难性后果。许多错误信息是应用程序警报、模态对话框或通知,它们报告的都是一些或多或少的小问题,尽管这些信息的编写质量并不总是很好。
有些提示信息荒谬可笑,比如复制文件时会警告“此操作可能需要一些时间”,并给出“127年”这样离谱的预估时间。还有一些错误报告对话框会依次失败,导致一个错误嵌套另一个错误。
另一个例子是过高的要求,例如 Windows 2000 要求设置长度荒谬的密码(超过 18.000 个字符)。或者一些笼统的“有什么问题? ”警告,提及潜在的安全风险,却不提供任何有用的解释,大多数人根本不看就直接关闭了。
即使键盘无法工作,也经常会出现“按任意键继续”之类的提示信息;或者出现“问题出在 Windows Vista”的错误提示,而实际上是由第三方驱动程序或应用程序引起的。此外,我们也不能忽视那些看似严重错误但实际上无需担心的误报。
即使在像 Windows 10 这样的现代系统中,更新过程中也会出现“出了点问题”之类的消息——这句话或许对开发人员内部有意义,但对用户来说却毫无意义。当然,还有一些弹出窗口会阻止你关机或重启,直到你点击其中没有任何有用信息的消息为止。
微软认为,好的错误信息应该是什么样子?
微软发布了非常详细的指南,讲解如何在 Windows 系统中设计有用的错误信息,特别是针对 Windows 7 及更高版本,但几乎适用于所有软件。其核心理念很明确:好的错误信息应该报告一个实际存在的问题,解释问题发生的原因,并提供一个具体的解决方案。
一条好的错误信息应该与用户相关、可操作、以任务为中心、简洁、清晰、具体、礼貌且不频繁出现。换句话说,它应该使用用户的语言,而不是编译器的语言,并且不应该无缘无故地每隔几分钟就出现一次。
建议避免显示不必要的消息,尤其是在用户无法进行任何操作或情况对他们来说并非问题时。例如,如果用户尝试删除一个已不存在的文件,从用户的角度来看,目标(文件消失)已经达成,因此显示错误信息毫无意义。
此外,还强调通过良好的设计来预防错误比用大量警告信息轰炸用户更为可取。使用仅允许输入有效值的控件(例如列表、日期/时间选择器、复选框等)、禁用无意义操作的按钮以及提供合理的默认值,都能大大降低出错的可能性。
最后,必须强调的是,信息中不应指责或嘲讽用户。带有指责意味的措辞,或诸如“灾难性的”、“非法的”等词语,只会吓唬人,毫无益处。更好的做法是关注问题本身以及如何解决问题,而不是互相指责。
使用模式:系统错误、文件、安全和输入
微软根据错误的性质将其分为几类。系统问题会影响操作系统、硬件设备、网络或程序本身,当它们未处于完成任务所需的正确状态时就会发生这种情况。许多此类问题可以通过激活设备、重新连接电缆或重启服务来解决。
此外,还会出现文件问题,例如文件或文件夹缺失、已被其他进程使用或格式不兼容。在这种情况下,消息应明确指出是哪个文件出现故障以及故障原因,而不是笼统地显示“文件错误”。
当用户缺乏访问资源所需的必要权限或完成任务所需的足够权限时,就会出现安全问题。与其发送晦涩难懂的信息,不如清晰地指出缺少的权限,并建议用户使用权限更高的帐户或申请管理员权限。
任务问题也分为两类:任务问题和用户输入问题。任务问题是指执行操作时出现的特定错误(例如,在不支持该类型数据的应用程序中从剪贴板粘贴数据、安装更新时出现故障等);用户输入问题是指由于格式错误的值、不正确的范围或字段之间的不一致而导致的问题。
在后一种情况下,通常最好在受影响的字段旁边直接指出错误,如果可能的话,在键入时(上下文错误或气泡提示)指出错误,而不是最后将所有错误堆放在一个对话框中,而不指出每个错误的位置。
呈现错误消息的最佳实践
错误信息的呈现方式几乎与错误内容同等重要。弹出一个阻塞所有操作的模态对话框,与简洁明了的上下文消息或低调的通知截然不同。理想情况下,应该采用对特定问题有效且干扰最小的方法。
对于轻微的表单错误(例如,时间拼写错误),最好在问题字段旁边使用上下文消息或气泡提示,而不要使用醒目的图标。如果错误是在用户按下确认按钮时检测到的,则可以在受影响的字段旁边显示一个小图标,这样用户就无需自行查找错误原因。
模态对话框应仅用于需要立即处理的问题,例如无法保存文件或设备严重故障。在这种情况下,建议使用相应的错误图标(而非警告图标)和清晰的文本,包含简短的主要说明,并在必要时提供补充解释。
对于可能需要高级诊断的更复杂或罕见的错误,可以通过“显示详细信息”按钮提供更多详细信息,这样大多数用户就不会被不必要的信息淹没,但技术支持人员可以获得有用的数据,例如错误代码或路径。
按钮文字也很重要。对于错误提示,最好使用“关闭”而不是“确定”,因为失败时没有什么需要“接受”的。如果错误需要关闭程序,那么像“退出程序”这样的按钮比简单含糊的“关闭”要清晰得多。
Linux 系统中的常见错误及典型错误信息
在 Linux 系统中,错误信息也相当复杂。许多错误信息会在启动或关闭时出现,其他错误信息则会在使用控制台工具时出现。一个典型的例子是modprobe、insmod 或 rmmod命令提示找不到某个特定的内核模块。如果该模块并非真正必要,你可以在 `/etc/modules.conf` 或 `/etc/modutils/aliases` 等文件中添加类似`alias <模块名> off` 的行,以阻止加载该模块。
另一个常见的错误信息是“未知终端类型”或类似信息,这表示终端类型配置错误。有时,只需调整 /etc/termcap 文件中的相应条目,或者将 TERM 变量更改为“console”或“linux”,应用程序就能正确识别终端环境。
网络还会显示诸如“ INET:警告:调用了旧式 ioctl ”之类的警告,这表明正在使用过时的网络配置实用程序。解决方法是将 ifconfig、route 等工具更新到更新的版本(例如,更新 net-tools 软件包或将其替换为 iproute2),如 NET-2 和 NET-3 HOWTO 指南中所述。
在编译阶段,诸如“ld: 无法识别的选项 '-m486'”之类的错误表明正在使用旧版本的 binutils 或 ld,这些版本无法识别某些选项。将 binutils 软件包更新到新版本通常可以立即解决此问题。
如果 GCC 中出现类似“内部编译器错误”这样的信息,即使重启后仍然反复出现在同一位置,通常是编译器存在 bug或硬件(内存、CPU 等)不稳定的迹象。如果在更新 GCC 并检查内存和磁盘后错误仍然存在,正确的做法是按照 GCC 文档中的说明报告此错误。
Linux 中的权限、UTMP 和磁盘写入问题
Linux 系统中经常会出现一些配置错误的警告。例如,登录时出现“ Shell-init: Permission denied ”错误通常是由于用户没有对主目录或其父目录的读取和执行权限造成的。遵循 Unix 最佳实践,使用 chmod 命令调整权限通常可以解决此问题。
消息“没有 utmp 条目。您必须执行… ”表明/var/run/utmp文件已损坏、丢失或未在启动时创建。您需要确保启动脚本(rc.local、rc.d 等)生成此文件,并且在较旧的系统上,还需要检查 /var/adm/ 或 /etc/ 等路径。
当出现“ bdflush 未运行”的警告时,表示系统正在使用较旧的磁盘块写入机制(例如经典的每 30 秒执行一次的“update”),而不是现代的 bdflush 守护进程或其等效程序。编译并安装 bdflush,并在文件系统检查之前运行它,可以提高磁盘缓存的性能和可靠性。
另一个常见的警告是“ EXT2-fs: warning: mounted unchecked filesystem ”,这表明已挂载了一个未经检查的 ext2 分区。运行e2fsck(或 fsck -t ext2)并使用适当的选项清除“dirty”标志,并确保每次关机时都正确卸载该分区,即可避免出现此消息。
简而言之,大多数 Linux 错误,就像 Windows 系统一样,可以通过更新软件、检查权限、修正配置和验证硬件来解决。了解如何解读具体的错误信息以及应该查看哪些内容(日志、dmesg、syslog)至关重要。
从幽默的到最严厉的,所有这些消息都表明,理解PC 错误消息是保持系统稳定的关键:它们有助于及时发现有问题的驱动程序、即将发生故障的磁盘、有故障的 RAM 或配置不当的网络设置,它们还为如何编写更好的软件提供了指导,以便用户不必为无用或难以理解的警告而苦恼。