需手动调取dmesg、journalctl、/var/log/、Xorg日志及UEFI固件日志五层源交叉定位:dmesg查内核硬件错误,journalctl查服务级失败详情,/var/log/文件追溯历史错误码,Xorg日志诊断图形崩溃,UEFI日志捕获国产固件级中止信号。

如果您在银河麒麟V10系统中遇到黑屏、卡顿、服务崩溃或安装中断等异常,但只看到一串十六进制数字(如0x000000、0x80070005)或简短英文提示(如“Failed to start”“Segmentation fault”),却无法判断具体故障环节,说明系统默认未启用错误溯源机制,需手动调取多层日志源交叉定位。
查 dmesg 内核环形缓冲区原始报错
这一步直接读取内核启动后至今的硬件级错误快照,不经过日志服务过滤,适合定位驱动加载失败、内存映射异常、ACPI解析中断等底层问题。
执行命令:sudo dmesg -T | grep -i "error\|fail\|warn\|panic"
若输出为空,说明当前内核缓冲区未记录显式错误——此时需先扩大缓冲区容量并捕获新事件:执行 sudo dmesg -n 8 提升日志级别,再复现故障动作(如插拔USB设备、启动某服务),立即再次运行上述 grep 命令。
注意:dmesg 输出时间戳为本地时区,-T 参数可读性更强;若需导出供分析,用 sudo dmesg -T > /tmp/kernel_errors.log 保存。
查 journalctl 系统服务级详细错误
systemd-journald 记录了所有单元(service、target、socket)的完整生命周期日志,包含精确时间戳、进程ID、错误代码及堆栈片段,是定位服务启动失败、依赖冲突、权限拒绝的核心依据。
第一步:查看最近1小时内所有失败单元及其错误行
sudo journalctl --since "1 hour ago" --priority=3 --no-pager | grep -A 2 -B 2 "failed\|denied\|timeout"
第二步:聚焦特定服务(例如 lightdm 图形登录管理器崩溃)
sudo journalctl -u lightdm.service -p 3 --no-pager -n 50
-p 3 表示只显示 error 及以上级别;-n 50 限制输出行数防刷屏;--no-pager 强制文本流输出便于管道处理。
第三步:按错误代码反向检索(如搜索 0x000000)
sudo journalctl --all | grep -i "0x000000\|0x80070005"
--all 强制显示二进制字段(如 systemd 的 errno 值),避免关键错误被截断。
查 /var/log/ 下结构化日志文件
rsyslog 生成的明文日志保留更长时间,且按模块归类,适合追溯历史问题或比对多个错误码的时间关联性。
方法一:快速筛查 auth.log 中认证相关错误码
sudo grep -i "0x\|error.*code\|errno" /var/log/auth.log
方法二:检查 boot.log 中引导阶段十六进制错误
sudo tail -n 200 /var/log/boot.log | grep -E "(0x[0-9A-F]{4,8}|failed.*with.*code)"
方法三:定位 rpm 包管理器返回的错误码(如 rpmdb open failed 对应 errno 13 或 2)
sudo grep -i "rpm.*error\|errno" /var/log/yum.log /var/log/dpkg.log 2>/dev/null
注意:dpkg.log 在基于 Debian 的麒麟桌面版存在,yum.log 在服务器版常见;2>/dev/null 屏蔽“文件不存在”警告。
查图形界面崩溃时的 Xorg 日志
当桌面卡死、窗口闪烁、输入无响应时,X Server 日志会记录显卡驱动初始化失败、EDID 解析错误、DRI 模块加载异常等专属错误码,位置固定且格式统一。
执行命令查看最新 Xorg 错误段:sudo grep -A 5 -B 5 "EE\|WW" /var/log/Xorg.0.log
EE 行代表 Error,WW 行代表 Warning;-A 5 -B 5 向前后各延伸5行,确保捕获上下文(如“Failed to load module 'nvidia' (module does not exist, 0)”)。
若 /var/log/Xorg.0.log 为空或不存在,说明当前未使用 X11 而是 Wayland,需改查 journalctl -u gdm3 -p 3 获取 GNOME Display Manager 的实际错误。
查 BIOS/固件级错误代码(需重启进入UEFI日志)
部分 0x 开头的错误(如 0x000000、0x000001)并非 Linux 内核生成,而是国产固件(飞腾、兆芯平台)在 POST 或 SMM 阶段抛出的硬件中止信号,必须通过 UEFI Shell 或厂商工具提取。
第一步:重启进入 UEFI 设置界面,开启 “Boot Option Log” 或 “Firmware Log Output”(路径因主板而异,通常在 Advanced → Firmware Configuration)。
第二步:保存设置并重启,待系统再次触发错误后,立即按快捷键(如 F11 或 Ctrl+Alt+Esc)调出 UEFI Shell。
第三步:在 Shell 中执行:dmesg(部分固件支持)或 log(长城/中科曙光定制 Shell 命令),查看最后几行含 “ERR” 或 “0x” 的原始输出。
第四步:若 Shell 不可用,需使用厂商提供的诊断工具(如 Kylin Diagnostic Tool for UEFI)导出 .bin 日志,用 kylin-uefi-log-decode 命令解析(该工具预装于 SP3 及更新版本)。


















