banner
NEWS LETTER

Linux触发软重启

Scroll down

本文作者:丁辉

Linux触发软重启

使用 SysRq 触发软重启

这个操作会立刻让系统重新启动,跳过正常的关机流程,包括运行关机脚本和同步磁盘等,所以在使用前确保所有重要数据已经保存。

  1. 启用 SysRq 功能

    默认情况下,出于安全考虑,SysRq 功能可能被部分或完全禁用。可以通过以下命令启用所有 SysRq 功能

    1
    echo 1 > /proc/sys/kernel/sysrq
  2. 触发重启

    通过向 /proc/sysrq-trigger 写入 b 来触发立即重启

    1
    echo b > /proc/sysrq-trigger

注意事项:

  • 数据丢失:使用 SysRq 功能触发的软重启相当于突然断电,可能导致未保存的数据丢失和文件系统损坏。
  • 安全风险:开启 SysRq 功能可能会带来安全风险,因为任何拥有物理访问权限的人都可能使用这个功能。

使用 kexec 重启内核的步骤如下:

  1. 安装 kexec 工具

    1
    apt-get install kexec-tools
  2. 加载新内核

    使用 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"
  3. 触发快速重启

    这将跳过 BIOS/UEFI 初始化和硬件检测,直接启动新的内核。

    1
    kexec -e

注意事项:

  • 数据丢失风险:使用 kexec 重启内核,类似于正常重启,所有未保存的数据都可能丢失。确保在执行此操作前保存所有重要数据。
  • 环境影响:这种重启方式不会重新初始化硬件设备,某些由硬件状态异常引起的问题可能不会被解决。
  • 兼容性和支持:并非所有的 Linux 发行版都默认支持 kexec,可能需要核实你的系统环境和内核配置。

I'm so cute. Please give me money.

其他文章
cover
Linux禁用su
  • 70/01/01
  • 00:00
  • Linux-Docs
cover
Linux部署Minio
  • 70/01/01
  • 00:00
  • Linux-Docs
目录导航 置顶
  1. 1. Linux触发软重启
    1. 1.1. 使用 SysRq 触发软重启
      1. 1.1.1. 注意事项:
    2. 1.2. 使用 kexec 重启内核的步骤如下:
      1. 1.2.1. 注意事项:
请输入关键词进行搜索