麒麟os故障排查需结合journalctl、syslog、dmesg、kysec日志和dpkg日志:一用journalctl按优先级/时间/服务筛选错误;二查syslog文本关键词;三用dmesg定位内核硬件异常;四通过ausearch分析kysec策略拒绝;五检查dpkg.log追溯软件包操作异常。

如果您在使用麒麟OS过程中遇到异常行为或系统功能失效,系统日志中的错误信息往往是定位根源的关键线索。以下是多种可立即执行的查看系统日志错误及开展故障排查的操作方法:
一、使用 journalctl 实时筛选错误日志
journalctl 是 systemd 日志系统的原生工具,能直接读取结构化日志并按优先级精准过滤错误事件,无需解析文本文件,响应迅速且支持时间回溯。
1、在终端中执行以下命令,仅显示优先级为 error 及更严重级别的日志条目:
sudo journalctl -p err
2、若需聚焦最近5分钟内发生的错误,运行:
sudo journalctl -p err --since "5 minutes ago"
3、结合服务名进一步缩小范围,例如检查 SSH 服务相关错误:
sudo journalctl -u ssh.service -p err
4、将当前错误日志导出至桌面便于离线分析:
sudo journalctl -p err > ~/桌面/错误日志_$(date +%Y%m%d_%H%M%S).log
二、查看传统 syslog 文件中的错误记录
/var/log/syslog 是麒麟OS中长期保留的通用系统日志文件,采用纯文本格式,兼容 grep 等通用文本处理工具,适合快速扫描关键词或进行脚本化提取。
1、使用 less 分页查看 syslog 并高亮 error 字样:
sudo less /var/log/syslog
2、在 less 界面中按下 /error 回车,即可跳转到首个含 “error” 的行
3、直接提取所有含 “fail”、“failed”、“panic”、“segfault” 的行:
sudo grep -iE "fail|failed|panic|segfault" /var/log/syslog
4、查看最近100行中与硬件驱动相关的报错:
sudo tail -100 /var/log/syslog | grep -i "driver\|firmware\|pci"
三、调用 dmesg 检查内核级错误与硬件异常
dmesg 输出来自内核环形缓冲区的日志,涵盖启动阶段设备识别、内存分配失败、驱动加载崩溃等底层问题,是诊断硬件兼容性或内核模块故障的第一手依据。
1、以人类可读时间戳显示全部内核消息:
sudo dmesg -T
2、仅显示带 “error” 或 “warning” 标签的内核消息:
sudo dmesg -T | grep -iE "(error|warning)"
3、筛选与 USB 设备连接异常有关的记录:
sudo dmesg -T | grep -i "usb.*disconnect\|usb.*reset\|usb.*not responding"
4、检查是否存在内存校验失败(ECC 错误)或页面分配失败:
sudo dmesg -T | grep -iE "memory.*error|page.*allocation.*failure|oom-killer"
四、定位 KYSEC 安全日志中的策略拒绝事件
KYSEC 是麒麟OS内置的强制访问控制(MAC)安全子系统,其审计日志记录了所有被 SELinux 或 KYSEC 策略拦截的操作请求,此类错误常表现为应用无法读写文件、网络端口被拒等“权限不足”现象。
1、列出今日所有被 KYSEC 策略拒绝的访问尝试:
sudo ausearch -m avc -ts today
2、筛选出涉及 /etc/shadow 文件的拒绝事件:
sudo ausearch -m avc -ts today | grep "/etc/shadow"
3、查看与 dbus 通信被拒相关的策略冲突:
sudo ausearch -m avc -ts today | grep -i "dbus\|system_bus_socket"
4、将全部 KYSEC 拒绝事件导出为文本以便提交给安全团队分析:
sudo ausearch -m avc -ts today > ~/桌面/kysec_rejects_$(date +%Y%m%d).log
五、检查软件包操作引发的日志异常
/var/log/dpkg.log 记录了所有通过 apt 工具安装、卸载、配置软件包的过程,当系统功能因依赖缺失、配置覆盖或包损坏而失效时,该日志可快速还原变更时间点与操作内容。
1、查看最近一次 apt upgrade 执行期间产生的错误:
sudo grep "upgrade.*status.*error\|upgrade.*failed" /var/log/dpkg.log
2、提取过去24小时内所有失败的软件包配置操作:
sudo awk -v d="$(date -d '24 hours ago' '+%Y-%m-%d %H:%M')" '$0 > d && /status.*failed/' /var/log/dpkg.log
3、查找是否在近期卸载了关键系统组件(如 network-manager、systemd):
sudo grep "remove" /var/log/dpkg.log | tail -20
4、确认某特定软件包(如 firefox)是否曾被强制中断安装:
sudo grep -A 5 -B 5 "firefox.*install.*half-configured\|firefox.*postinst.*failed" /var/log/dpkg.log










