命令行运行geph5-client出现code11错误

我没有使用gui,我禁用了任务计划项,直接命令行使用:

"%ProgramFiles(x86)%\迷雾通\geph5-client.exe" --config "%ProgramData%\geph\child-config.yaml"

我使用的是socks模式。
之前一直正常,今天某次重启后出现错误:

2026-07-29T16:28:55.331010Z  INFO geph5_client::client: raised file descriptor limit to 65535
2026-07-29T16:28:55.331303Z DEBUG geph5_client::database: INITIALIZING DATABASE
2026-07-29T16:28:55.339506Z  INFO run_session: geph5_client::session: (re)starting main logic
2026-07-29T16:28:55.342105Z DEBUG run_session: geph5_client::session: raw dialer constructed elapsed=2.8µs
2026-07-29T16:28:55.386049Z ERROR geph5_client::client: auth loop stopped err=error returned from database: (code: 11) database disk image is malformed

Caused by:
    (code: 11) database disk image is malformed
Error: error returned from database: (code: 11) database disk image is malformed
2026-07-29T16:28:55.387594Z  WARN session_worker: geph5_client::session: individual client session failed... err=error returned from database: (code: 11) database disk image is malformed

Caused by:
    (code: 11) database disk image is malformed worker_id=0 wait_time=71.771908ms worker_id=0

这个错误代表什么?
我尝试使用gui,发现gui是正常的。
那么如何才能再次驱动命令行?

这是批处理命令行,不同于官方命令行(不能缺失计划任务)。运行时不能关闭命令提示符窗口,关闭即终止该批处理命令行,再次运行即可。

这我当然知道,现在每次运行就是上面那样的报错输出

1 个赞

试试:关闭命令行,删除C:\ProgramData\geph\cache 下最大的2个文件,再次运行。。。
或类似的3个文件,或全部6个文件?(以防万一,删除后可能需要还原)
其实,可以删除前述文件夹的所有文件,只需要重新开始,只怕触碰一号5设备的5次(?)通行证限制。

最好将批处理所使用的 child-config.yaml 放置在其它位置,防止与官方图形或命令行冲突。如配置文件中
cache: C:\ProgramData\geph\cache\db-xxxxxxxxxxxxxxxx
其中的 xxxxxxxxxxxxxxxx 按自己的那个无后缀的文件名替换;
或改成
cache: null
此时,缓存文件将保存在旧版原来的位置。批处理命令行与前述文件夹完全无关!(已将文件夹改名验证)

没有用。刚才尝试了重装,也没有用。直接geph5-client就报错。
奇怪的是gui能正常使用。
我在代码库里也找不到 database disk image is malformed 出现在哪里

按我上楼操作。。。没错!
只要不同时运行,批处理命令行、图形、官方命令行(可以与图形同行),一切正常。。。

没有用。我将 geph5 卸载完毕并将 programdata/geph 删除,然后在 d:/geph/ 目录里放置 geph5-client.exechild-config,然后在此处运行geph5-client.exe --config child-config。仍然得到上述报错。
从 ai 获知,database disk image is malformed 是 sqlite 报错。所以应该是 geph5 存储的数据库文件错误。推测直接运行 geph5-client.exe 存放的数据库并不在 programdata/geph,这里是 geph5.exe 存放文件的地方。需要找出直接命令行运行时数据库存放的位置将其删除。

缺失文件,复制迷雾通安装文件夹下的所有文件?其实,执行文件在原始安装位置即可,只是配置文件移位、修改。。。当然,N年前,网传(批处理相关)文件夹不要中文双字节。。。

image

不会是文件缺失。最开始运行的就是 programfiles(x86) 里面的 geph5-client.exe。
database disk image is malformed 报错来自 sqlite 数据库。问题应该是数据库文件损坏。我现在在找这个数据库文件在哪。它肯定不在 programdata/geph/cache 里面,使用这个目录的 geph5.exe 和 gui 一切正常。

敝人的, 对于V5.8.0:"X:\......\geph5-client.exe" --config "Y:\......\child-config.yaml"
1、安装V5.7.2在手动指定英文文件夹,移走。。。备用:(禁用计划任务的)V5.8批处理命令行,查看迷雾通节点状态
2、安装V5.8(随时安装更新)都会在(迷雾通首次安装、如前的V5.7.2)原始文件夹,
3、

哦哦哦,还有V5.7.2也正常。。。忘记了,还有V4.99.32也是。。。

1 个赞

找到原因了!child-config.yaml 里面 cache 指定的 %programdata%\geph\cache\ 目录,用户态执行的 geph5-client.exe 没有读写权限。
所以要另外复制一份 config.yaml,把里面 cache 删掉。

1 个赞

万一运行官方图形、命令行。。。又问题了。。。貌似图形没事,只有官方命令行有事。因为:

我原本以为可以直接命令行调用 %programdata%/geph/child-config.yaml,没想到这里面有坑,它的参数不适合用户态的 geph5-client.exe 直接调用。 需要复制出来改掉 cache。
现在既然命令行又能用了,那我就把任务计划禁用。平常不用 gui 和 geph5.exe。只在更新后运行一下,更新一下桥的配置,然后重新禁用任务计划。

1 个赞

官方除了用户界面,其它全是系统进程。。。批处理,用户进程。C:\ProgramData 需要管理员权限。。。