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 <IRQ>

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 <IRQ>

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重启的完整方法。

相关推荐
未来之窗软件服务14 小时前
Linux 运维日志删除的多种方式—东方仙盟
linux·运维·服务器·仙盟创梦ide·东方仙盟
卓豪终端管理14 小时前
IT 运维视角下的终端数据安全:能力框架与落地清单
运维
小雉系统14 小时前
BcoreOS实战:用一个升级包,让Rocky Linux跑进Debian服务器
linux·运维·服务器·debian
thethefighter14 小时前
快速预览Word、WPS秒开,支持空格弹窗
linux·word·wps·快速预览·空格弹窗·nhdeepview
甜到心里的蛋糕14 小时前
从 QQ 机器人到 B 站 AI 运营:一套可复现的视频流水线踩坑实录
运维·人工智能·python·自动化·视频制作
QYR-分析14 小时前
26.2% 高增!场内及园区无人物流车,厂内短驳自动化的 L4 货运载体
运维·自动化
熊猫钓鱼>_>14 小时前
鸿蒙 PC 三方库适配复盘:libfvad 1.0 —— 把 WebRTC VAD 做成能装进采集链路的静态库
服务器·开发语言·华为·harmonyos·openharmony·适配·鸿蒙pc
用户83514140494914 小时前
把日志和寄存器值喂给AI做故障定位,我的实际问法
linux·ubuntu
java_logo15 小时前
Docker 部署 DPanel:轻松搭建轻量容器管理平台
运维·docker·容器·podman·容器管理·dpanel·轩辕镜像
时间售卖铺15 小时前
Oracle DQL精髓:从基础到高级实战
运维·数据库·云原生·oracle