linux 怎么模拟系统panic重启

1,如果我们想要系统异常重启,那么我们怎么实现呢,有软件和硬件两种方式,但是都是通过sysrq的方式来实现的。

(1)前提情况确认,确认sysrq功能是否正常打开。

cat /proc/sys/kernel/sysrq

0为完全禁用,1为完全启用

代码查看

grep CONFIG_MAGIC_SYSRQ /boot/config-$(uname -r)

如果没有打开可以CONFIG_MAGIC_SYSRQ=y设置打开即可。

(2)确认sysrq 功能打开可以使用后,我们分别使用物理方法和软件方法实现模拟panic异常冲i

命令行输入

echo c > /proc/sysrq-trigger

下面时sysrq 触发重启的日志

4563.721004\] sysrq: Trigger a crash \[ 4563.721012\] Kernel panic - not syncing: sysrq triggered crash \[ 4563.721019\] CPU: 2 PID: 0 Comm: swapper/2 Not tainted 5.4.0-135-generic \[ 4563.721024\] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996) \[ 4563.721029\] Call Trace: \[ 4563.721037\] \ \[ 4563.721043\] dump_stack+0x6d/0x9a \[ 4563.721050\] panic+0x101/0x2e3 \[ 4563.721056\] sysrq_handle_crash+0x1a/0x20 \[ 4563.721062\] __handle_sysrq+0xba/0x1b0 \[ 4563.721068\] write_sysrq_trigger+0x2b/0x30 \[ 4563.721074\] proc_reg_write+0x3d/0x60 \[...

4563.721204\] ---\[ end Kernel panic - not syncing: sysrq triggered crash \]---

如果键盘不能输入时,我们使用硬件的方式来使系统触发sysrq信号,比如说用导线短接 TXD 与 GND (持续约 1 秒),模拟键盘发送 SysRq 信号。

此方案需要和硬件确认是否可行,确认串口的连接方式。

1,确认串口类型

需使用 RS-232 标准的串口(如 DB9 接口)。关键引脚定义:

TXD(Pin 3):数据发送端

RXD(Pin 2):数据接收端

GND(Pin 5):地线

2,短接操作

用导线短接 TXD 与 GND (持续约 1 秒),模拟键盘发送 SysRq 信号。此操作需在系统崩溃但仍能响应硬件中断时生效。

前提,确保sysrq功能正常开启

CONFIG_MAGIC_SYSRQ=y

CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1

3,串口打印

1234.567890\] SysRq : Emergency Sync \[ 1234.567901\] Emergency Sync complete \[ 1234.567912\] SysRq : Emergency Remount R/O \[ 1234.569876\] EXT4-fs (sda1): re-mounted. Opts: (null) \[ 1234.570123\] SysRq : Raising Panic \[ 1234.570135\] Kernel panic - not syncing: sysrq triggered crash \[ 1234.570148\] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.4.0-135-generic \[ 1234.570160\] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996) \[ 1234.570172\] Call Trace: \[ 1234.570183\] \ \[ 1234.570194\] dump_stack+0x6d/0x9a \[ 1234.570205\] panic+0x101/0x2e3 \[ 1234.570216\] sysrq_handle_crash+0x17/0x20 \[ 1234.570227\] __handle_sysrq+0xfe/0x1b0 \[ 1234.570238\] write_sysrq_trigger+0x3b/0x40 \[ 1234.570249\] proc_reg_write+0x3c/0x60

以上就是通过软件和硬件短接实现sysrq触发系统panic重启的完整方法。

相关推荐
wj3055853781 天前
课程 9:模型测试记录与 Prompt 策略
linux·人工智能·python·comfyui
abigriver1 天前
打造 Linux 离线大模型级语音输入法:Whisper.cpp + 3090 显卡加速与 Rime 中英混输终极调优指南
linux·运维·whisper
wangqiaowq1 天前
windows下nginx的安装
linux·服务器·前端
YYRAN_ZZU1 天前
Petalinux新建自动脚本启动
linux
charlie1145141911 天前
嵌入式Linux驱动开发pinctrl篇(1)——从寄存器到子系统:驱动演进之路
linux·运维·驱动开发
Agent手记1 天前
异常考勤智能预警与处理与流程优化方案 | 基于企业级Agent的超自动化实战教程
运维·人工智能·ai·自动化
于小猿Sup1 天前
VMware在Ubuntu22.04驱动Livox Mid360s
linux·c++·嵌入式硬件·自动驾驶
cen__y1 天前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
不仙5201 天前
VMware Workstation 26.0.0 在 Ubuntu 24.04 (内核 6.17.0) 上的安装与内核模块编译问题
linux·ubuntu·elasticsearch
189228048611 天前
NY352固态MT29F32T08GWLBHD6-24QJ:B
大数据·服务器·人工智能·科技·缓存