You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁用Solaris 10 x86易误触发的重启按键绑定?

解决Solaris 10 x86虚拟机中误触触发紧急重启的问题

我之前维护Solaris 10 x86虚拟机时也碰到过一模一样的坑——误触一下就丢了所有未保存的工作,简直头疼。结合当时的解决经验,给你几个可行的方案:

首先得明确:你碰到的这个「类似Stop-A的立即重启」,在Solaris 10 x86里对应的是键盘紧急终止序列(Keyboard Stop Sequence),默认触发组合是Alt+SysRq+R,但因为VirtualBox的按键映射差异,可能被识别成Win键相关的组合误触发。下面从虚拟机配置和系统内部设置两个层面解决:

一、先调整VirtualBox的按键捕获设置

先排除宿主机按键被误传递给虚拟机的可能:

  • 打开VirtualBox,选中你的Solaris 10虚拟机,进入设置 -> 输入 -> 键盘:
    • 确认「自动捕获键盘」的触发逻辑(默认是点击虚拟机窗口时捕获),避免宿主机的Win键组合被误传给虚拟机;
    • 可以修改「主机键」(默认是右Ctrl),确保操作虚拟机时,不会因为误按Win键触发冲突快捷键;
  • 进入VirtualBox的全局设置 -> 热键,检查有没有和Win-R冲突的快捷键,如有可以直接修改或禁用。

二、在Solaris系统内部禁用或重映射紧急重启序列

这是最彻底的解决方式,直接从系统层面控制这个功能:

1. 临时禁用(立即生效,重启后失效)

打开终端执行:

kbd -s stop=off

执行后可以用kbd -s stop验证,输出应该显示stop: off。

2. 永久禁用(重启系统后依然生效)

编辑/etc/default/kbd配置文件,添加或修改以下一行:

KEYBOARD_STOP=OFF

保存后执行以下命令让设置立即生效(无需重启系统):

kbdadm reload

或者也可以把kbd -s stop=off添加到/etc/rc2.d/S99local脚本中,确保系统启动时自动执行。

3. 重映射为不易误触的序列(如果不想完全禁用)

如果你需要保留紧急重启功能,但想改成更难触发的组合,可以用kbd命令修改触发序列。首先查看当前序列:

kbd -l stopseq

输出会是类似stopseq: 0x13,0xe0,0x38的键码(对应默认的Alt+SysRq+R)。然后用kbd -s stopseq=新键码修改,比如改成Alt+PrintScreen+F12(可以用kbd -l keys查看所有键的编码)。修改后同样要加到/etc/default/kbd或启动脚本中,确保永久生效。

额外提示

因为你说无法随意复现,建议优先尝试永久禁用的方案,这样不管误触什么按键,都不会触发重启了。如果之后确实需要紧急重启虚拟机,直接用VirtualBox的「重启」按钮即可,完全不影响日常维护工作。

内容的提问来源于stack exchange,提问作者Kaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:22:46