本文作者:丁辉
Linux触发软重启
使用 SysRq 触发软重启
这个操作会立刻让系统重新启动,跳过正常的关机流程,包括运行关机脚本和同步磁盘等,所以在使用前确保所有重要数据已经保存。
启用 SysRq 功能
默认情况下,出于安全考虑,SysRq 功能可能被部分或完全禁用。可以通过以下命令启用所有 SysRq 功能
1
echo 1 > /proc/sys/kernel/sysrq
触发重启
通过向
/proc/sysrq-trigger
写入b
来触发立即重启1
echo b > /proc/sysrq-trigger
注意事项:
- 数据丢失:使用 SysRq 功能触发的软重启相当于突然断电,可能导致未保存的数据丢失和文件系统损坏。
- 安全风险:开启 SysRq 功能可能会带来安全风险,因为任何拥有物理访问权限的人都可能使用这个功能。
使用 kexec 重启内核的步骤如下:
安装 kexec 工具
1
apt-get install kexec-tools
加载新内核
使用 kexec 命令加载你想要启动的新内核。你需要指定内核文件和对应的初始化内存盘(initrd)和内核参数。
这里的/path/to/vmlinuz
和/path/to/initrd.img
需要替换为实际的文件路径。root=/dev/sda1 ro quiet
是内核启动参数,需要根据实际情况进行调整。1
kexec -l /path/to/vmlinuz --initrd=/path/to/initrd.img --append="root=/dev/sda1 ro quiet"
触发快速重启
这将跳过 BIOS/UEFI 初始化和硬件检测,直接启动新的内核。
1
kexec -e
注意事项:
- 数据丢失风险:使用 kexec 重启内核,类似于正常重启,所有未保存的数据都可能丢失。确保在执行此操作前保存所有重要数据。
- 环境影响:这种重启方式不会重新初始化硬件设备,某些由硬件状态异常引起的问题可能不会被解决。
- 兼容性和支持:并非所有的 Linux 发行版都默认支持 kexec,可能需要核实你的系统环境和内核配置。
I'm so cute. Please give me money.
- 本文链接: https://blog.offends.cn/Linux/Docs/Linux触发软重启.html
- 版权声明: 本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。