Linux
無論 kernel.sysrq 設置如何,如何確保始終啟用 SysRq?
一些 Linux 發行版
kernel.sysrq=16
意味著只允許 Sysrq+s(同步)。例如:Fedora(25 和 28)在/usr/lib/sysctl.d/50-default.conf
我必須
/etc/sysctl.d/95-sysrq.conf
在手動設置kernel.sysrq=1
的位置創建一個文件,以便它盡快可用(但根據情況可能不夠快):$ grep -nHi sysrq /usr/lib/sysctl.d/* /etc/sysctl.d/* /usr/lib/sysctl.d/50-default.conf:16:# Use kernel.sysrq = 1 to allow all keys. /usr/lib/sysctl.d/50-default.conf:17:# See http://fedoraproject.org/wiki/QA/Sysrq for a list of values and keys. /usr/lib/sysctl.d/50-default.conf:18:kernel.sysrq = 16 /etc/sysctl.d/95-sysrq.conf:1:kernel.sysrq=1
**有沒有辦法從早期啟動啟用 Sysrq,也可能忽略任何設置
kernel.sysrq
?**例如添加一個核心引導參數(例如,cat /proc/cmdline
對於目前參數),例如從 Grub 引導菜單(或在xen.cfg
’skernel=
行)。
sysrq_always_enabled
根據文件有核心啟動參數:sysrq_always_enabled [KNL] Ignore sysrq setting - this boot parameter will neutralize any effect of /proc/sys/kernel/sysrq. Useful for debugging.
我已經測試了 Sysrq 的工作(例如幫助,同步),即使
kernel.sysctl=0
(所以就像上面的文件所說),如果我添加核心啟動參數sysrq_always_enabled
(注意:它不一定是sysrq_always_enabled=1
)。(仔細檢查,我還測試了 Sysrq 在 Sysrq 中不存在時不工作
kernel.sysctl=0
)sysrq_always_enabled
源/proc/cmdline
程式碼也證實了這一點。
注意:
/proc/sys/kernel/sysrq
是另一種讀/寫方式kernel.sysrq
有關 sysrq 的更多資訊:https
://www.kernel.org/doc/html/v4.15/admin-guide/sysrq.html (雖然sysrq_always_enabled
沒有在此處提及,但在此處)**編輯:**生效時
sysrq_always_enabled
,有一條 dmesg 行:[ 0.000000] sysrq: sysrq always enabled.