跳转至

Bugs solutions

即自己遇到的问题以及相应的解决方法。

I Unix

I.1 ssh to WSL

I.2 Wsl default user

I.2.1 1(通用)

/etc/wsl.conf
[user]
default=darstib

I.2.2 2(终端中能运行对应发行版程序)

cmd/powershell
<Distro> config --default-user <user>

基本失效,一般都使用 wsl -d <Distro>

I.3 Wsl 磁盘转移

Wsl 越用越大,默认在 C 盘,如何移动到 D 盘自己指定的位置呢?

显然迁移是需要打包、迁移、解包的,那么当然是发行版越小的时候迁移越方便。

20250714 (来自 https://linux.do/t/topic/785798

in cmd or powershell
wsl --list -v # 获取发行版名称,此处以Ubuntu-24.04为例
$targetPath = "D:\Ubuntu-24"
if (!(Test-Path $targetPath)) { New-Item -Path $targetPath -ItemType Directory | Out-Null }
wsl --shutdown
wsl --manage Ubuntu-24.04 --move "$targetPath"
原方案
in cmd or powershell
wsl --shutdown # 关闭 wsl 上运行的发行版
wsl --export <Distro> <FileName> [选项] # 建议将分发版导出到 tar 文件。
wsl --unregister <Distro> # 将原来的卸载
wsl --import-in-place <Distro> <InstallLocation> <FileName>
windows docker 的迁移

可以参考 Windows 11 Docker Desktop 更换默认 C 盘存储路径,释放 C 盘空间

原文为(但是迁移上面文件夹的同时迁移了 docker *.vhdx ,所以看上面的文章即可How can I change the location of docker images when using Docker Desktop on WSL2 with Windows 10 Home?

I.4 wsl 磁盘压缩

wsl 不主动释放使用过的空间,可以使用 WSL2 虚拟磁盘文件 (.vhdx) 占用过大处理办法 解决。

I.5 忘记了 wsl root 权限密码

I.6 忘记 Vmware-machine 密码

I.7 change version of JAVA in linux

sudo update-alternatives --config java

I.8 change version of GCC in linux

  • https://blog.csdn.net/qq_39779233/article/details/105124478
  • https://lindevs.com/install-gcc-on-ubuntu/

I.9 WSL (0x80190193)

PowerShell
> wsl --update --pre-release
正在检查更新
已禁止(403)
错误代码: Wsl/UpdatePackage/0x80190193

解决方案:关闭代理,参考 wsl 安装问题

I.10 Kali linux install

I.11 内网服务器的网络问题

pip 安装 python 包缓慢 / 失败

使用清华源安装:

Text Only
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

vsc 插件的网络访问问题

20260304 更新】这里是原来的版本
  • https://blog.csdn.net/qq_40620465/article/details/152000104
  • ssh 连接时使用 RemoteForward 7890 localhost:7890
  • 服务器 setting.json 中添加下列选项(前两条是关键)
setting.json
{
    "http.proxy": "http://127.0.0.1:7890",
    "http.useLocalProxyConfiguration": true,
    "http.proxyStrictSSL": false,
    "http.proxySupport": "on"
}

按照上面的配置,很多时候是可用的(如果没问题用上面的做法即可;但有时出现了问题,可以表现为对 google.com 的请求异常:

Bash
$ export https_proxy=http://127.0.0.1:7890 

$ curl -I https://www.google.com              
HTTP/1.1 200 Connection established

curl: (35) OpenSSL SSL_connect: Connection reset by peer in connection to google.com:443 

经过对日志的排查以及借助 gemini-3.1-pro 的分析,猜测是:由于服务器是多人共用的(或者说我自己就是两台电脑,当不同的主机尝试通过 ssh 连接服务器并在 7890 端口建立转发服务时,就会产生一些奇怪的行为……所以我们换一个端口用,且不再使用本地主机的代理配置(ssh 连接时配置 RemoteForward 17890 localhost:7890

setting.json
{
    "http.useLocalProxyConfiguration": false,
    "http.proxy": "http://127.0.0.1:17890",
    "http.proxySupport": "override",
}

重新构建连接后测试:

Bash
$ export https_proxy=http://127.0.0.1:17890

$ curl -I https://www.google.com           
HTTP/1.1 200 Connection established

HTTP/2 200 
content-type: text/html; charset=ISO-8859-1
...

II windows

II.1 电脑假死

我的电脑的鼠标可以移动,针对键盘也有响应,但是鼠标无法点击屏幕上的任何东西。

虽然不知道为什么,但是成功在 reddit 上找到了“在我的情况下”可行的方式(原理不详

  1. Ctrl+Alt+Delete ,选中“资源管理器”
  2. 按下 Esc,似乎无事发生,但是此时发现可以点击了……

II.2 oh-my-posh 显示 python 虚拟环境

PowerShell 显示 Module 相关问题
Import-Module, Install-Module 无法识别
# 检查是否含有 PowerShellGet 模块
模块不存在
$Env:PSModulePath -split ';' # 检查 Module 路径,确认确实存在相关模块;否则去下载

注意 json 文件中实际不能够有注释:

JSON
{
  "type": "python",
  "foreground": "#ffffff",
  "style": "plain",
  "properties": {
    "home_enabled": true,
    "fetch_version": true,
    "fetch_virtual_env": true,
    "display_mode": "context",
    "display_virtual_env": true,
    "dispplay_default": true,
    "display_version": false
  },
  "template": "(\uE235 {{ if .Error }}{{ .Error }}{{ else }}{{ if .Venv }}{{ .Venv }}{{ else }}{{ .Full }}{{ end }}{{ end }})"
},

II.3 windows 文件资源管理器中的 “网盘图标” 移除

注册表中:

Text Only
计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\
也有些可能在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\

II.4 电脑不使用后两分钟锁屏自动锁屏

  • https://www.zhihu.com/question/55617612

II.5 Windows11 上隐藏任务栏中的 copilot

最近在 windows 11 更新后,任务栏中出现了一个 copilot ,基于仍然是试用期,而且大陆不能直接访问,懒得用了,放那也碍眼:

II.6 windows 多任务处理 edge 浏览器标签页显示过多

温知识

windows 上按住 Alt 同时按 Tab 键会进入“多任务处理”,展示当前打开的软件界面,点按 Tab 可以进行切换,松开 Alt 则聚焦对应界面。

我对多个浏览器都有使用,发现 Edge 浏览器在“多任务处理”界面中会展示多个标签页,对于我想要切换至其他软件非常不友好(需要多按几下 Tab;原来在系统设置中:

  1. 进入 “设置 > 系统 > 多任务处理”
  2. 调整“对齐或按 AIt+Tab 时显示应用中的标签页”为“不显示选项卡”

此时虽然说“不显示”,但还是会保留基本的 edge 的页面的。

Docker 未安装在指定位置导致 compose 插件无法被找到

Question

我使用 windows 上的 docker desktop 并默认安装在了 D 盘;在启动容器时出现下面的错误:

Text Only
Cannot start Docker Compose application. Reason: compose [start] exit status 125. unknown flag: --project-name Usage: docker [OPTIONS] COMMAND [ARG...] Run 'docker --help' for more information

但是在管理员权限下执行下面命令之后可以正常:

Bash
 C:\..\system32
> new-Item -ItemType SymbolicLink -Path "$HOME\.docker\cli-plugins\docker-compose.exe" -Target "D:\Docker\docker_desktop\resources\bin\docker-compose.exe"


    目录: C:\Users\xxxxx\.docker\cli-plugins


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---l         2026/2/25     10:53              0 docker-compose.exe
但依旧不幸的是 docker desktop (或者是电脑重启后)依旧会失效,需要重新执行该命令。

问题和这个 issue 类似,最后翻到可以在 $HOME\.docker\config.json 添加(路径结合实际修改

JSON
{
  "cliPluginsExtraDirs": [
    "D:\\Docker\\docker_desktop\\resources\\cli-plugins"
  ]
}

III Network

III.1 macOS clash 系统代理打开无效

III.2 missing cap_net_raw+p capability or setuid

Bash
$ ping github.com
ping: socktype: SOCK_RAW
ping: socket: Operation not permitted
ping: => missing cap_net_raw+p capability or setuid?
$ curl https://baidu.com
curl: (35) GnuTLS, handshake failed: The TLS connection was non-properly terminated.

ping 权限不够,sudo setcap cap_net_raw+ep /usr/bin/ping 提供权限。

III.3 From xxxx icmp_seq=n Destination Host Unreachable

WSL ping <domain>/<ip>时出现无法找到的问题,但是宿主机是可以正常访问的,unreachable 似乎将问题指向了 DNS,最后通过修改 /etc/resolv.conf 中的 nameserver 后的 DNS 服务器 ip 解决(修改至与宿主机一致即可

III.4 连接需要登录的 wifi 时重定向界面错误

在登入企业 / 学校 wifi 时,需要账号登入;但是发现只是跳转到 http://www.msftconnecttest.com/redirect 之后显示失败了,在这里 找到了答案。

简而言之,先把 VPN 什么的关了,否则影响上述链接重定向。

III.5 vscode 中使用 copilot 登录失败

在更换学生认证包后,vscode 上的 copilot 突然间登入不上,体现在点击登陆后自动跳转到认证界面,确定后 vscode 这边却没反应。

搜索后有人指向了 setting.json,打开搜索,确实发现了:

JSON
"github.copilot.chat.localeOverride": "zh-CN",
"github.copilot.preferredAccount": "...",  // 此处省略我的 GitHub 邮箱地址
"github.copilot.enable": {
  "*": true,
  "plaintext": false,
  "markdown": false,
  "scminput": false
},

尝试删除后重试,问题解决;建议 Ctrl x 剪切,万一问题不在这,也能复原。

IV Other

IV.1.1 如何获取 Google 安全码?

  • 热夏的博客
    • 有些手机没有 google 官方给出的获取安全码的方式,我们可以在 google play 中下载 "google" 这个应用。

IV.1.2 Tab Foucs in Vscode

  • Q: VSCode 中,Tab 键变成了在各选项间跳跃(即焦点切换,而不是接受 AI 插件给出的建议。
  • A: 使用 Ctrl M 快捷键切换了这一模式。

IV.1.3 obsidian 文件保存失败?

IV.1.4 Obsidian 调整 mermaid 宽度

IV.1.5 Syncthing 跨设备同步工具

IV.1.6 Deskflow

  • Q: NOTE: cursor is locked to screen, check scroll lock key
  • (windows) 键盘上的 ScrLk 按键。

  • Q: MacOS Deskflow 反复索要 accessibility,哪怕已经给到

  • (MacOS) 参考 #8028,之前卸载过 deskflow,导致重新安装后 accessibility 出了问题,只要将选项移除后重新启动 deskflow 并赋权即可。

评论