AI 帮我修复了 atrust 在 deepin25 上闪退的问题

7 月 30 日
 justcode

登陆客户系统需要用 atrust,但是装在 deepin 上面一直都在崩溃,尝试让 claude 修复一下,然后就修好了,哈?这也行,真是牛的

根本原因

Deepin 25 采用了不可变根文件系统架构,/usr 目录整体以只读方式挂载:

usr-overlay on /usr type overlay (ro,...)

而 aTrust 把运行时需要频繁读写的数据(端口锁文件、RPC socket 文件等)放在了 /usr/share/sangfor/.aTrust/var/run/ 下。程序启动时尝试删除/重建这些文件, 由于 /usr 只读而失败,报错:

Failed to start the RPC service, reason: Error: EROFS: read-only file system, unlink
'/usr/share/sangfor/.aTrust/var/run/aTrustWorkSpace-...'

RPC 服务起不来 → 主窗口跟着关闭 → 进程退出,也就是所谓的"闪退"。

同时确认了 aTrustDaemon.service( VPN 核心引擎服务)当时处于 activating (auto-restart) 状态,即不断崩溃重启的循环,同一个只读文件系统 原因导致。

已排除版本问题:Downloads 目录里的几个安装包(含 Lite 版)版本都是同一个 2.5.16.20 (或更旧的 2.4.10.50 ),说明这是 aTrust 客户端尚未适配这类不可变 系统发行版的兼容性 bug ,不是安装包选错或版本过旧的问题。

修复方案

思路:不改动系统整体的只读/不可变特性,只针对 aTrust 需要读写的这一个目录, 用 bind mount 把它重定向到系统里真正可写的分区(/var),这样 aTrust 就能 正常读写自己的运行时数据。

1055 次点击
所在节点    程序员
3 条回复
mMartin
7 月 30 日
客户的 atrust 登录之后就断网 我把 atrust 装树莓派上了 然后工作的电脑通过 ssh 代理访问 [手动狗头]
SilenceLL
7 月 30 日
@mMartin ,我的丢 wsl 里面了,太坑了,atrust
gadfly3173
12 小时 55 分钟前
往/usr 下扔缓存挺变态的。。。deepin 的不可变是可以关的,参考文档 https://bbs.deepin.org.cn/zh/post/286633

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1230996

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX