通过Snap设置内核参数失败后的状态确认求助
通过Snap设置内核参数失败后的状态确认求助
我最近碰到个头疼的问题:为了解决显示故障,我打算通过Snap设置内核参数当临时 workaround,听说现在Snap能处理这个了,于是我执行了下面这条命令:
sudo snap set system system.kernel.cmdline-append="initcall_blacklist=simpledrm_platform_driver_init"
结果直接报错了:
error: cannot communicate with server: Get "http://localhost/v2/changes/109": dial unix /run/snapd.socket: connect: connection refused
现在我完全摸不着头脑——这个内核参数到底有没有被成功设置啊?我试着用sudo snap get system system.kernel.cmdline-append查询状态,结果这条命令卡了好几分钟都没反应,根本不知道该怎么确认情况。
针对这个问题的排查建议:
别慌,咱们一步步来搞清楚状况:
先检查snapd服务状态:错误提示说连不上
/run/snapd.socket,大概率是snapd服务没正常运行。先执行这条命令看看服务状态:sudo systemctl status snapd如果显示服务未运行或者异常,就重启它:
sudo systemctl restart snapd等服务启动完成后,再重新尝试执行查询命令。
直接查看内核实际生效参数:不用死等Snap的查询命令,咱们可以直接读取当前内核的启动参数。执行这条命令:
cat /proc/cmdline在输出内容里找找有没有
initcall_blacklist=simpledrm_platform_driver_init这串内容。如果有,说明参数已经生效;如果没有,那之前的设置肯定没成功,等snapd恢复正常后重新执行设置命令就行。处理卡住的Snap命令:如果
snap get一直卡着不动,直接按Ctrl+C终止进程,先确认snapd服务正常(比如用sudo snap list测试Snap命令能不能正常响应),没问题之后再重新查询参数状态。
备注:内容来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

