谢谢大家得帮助,我最终通过 Google + stackoverflow 解决了问题
解决方法是 Disable swap
在 windows 中添加如下文件 %userprofile%.wslconfig,内容是:
[wsl2]
swap=0
但具体是因为什么原因导致的,还不清楚
1
string2020 2021-10-18 16:43:23 +08:00
自己不会玩把
|
2
mxT52CRuqR6o5 2021-10-18 16:45:05 +08:00 2
@string2020 会玩的帮忙解决一下
|
3
SIGEV13 2021-10-18 16:45:40 +08:00
用管理员 PowerShell 重启服务
xxxx> Restart-Service LxssManager |
4
kischang OP @string2020 #1 我是真得不会玩了,求大佬支个招
|
5
qq316107934 2021-10-18 16:46:16 +08:00
vhdx 备份下,重装 WSL2 吧。(是 2 吗?还是 1 )
|
6
SIGEV13 2021-10-18 16:46:23 +08:00
docker 和自带的 kubernetes 猝死的时候这么干也好用
|
8
kischang OP 简单列一下情况
wsl2,Ubuntu18.04 试过,Restart-Service LxssManager 、net stop/start LxssManager 、重启系统,无效 试过,程序和功能,禁用 Linux 子系统再启用,无效 试过,netsh winsock reset / netsh int ip reset all, 无效 目前其他招还没有找到 |
9
Tony042 2021-10-18 16:53:11 +08:00
@kischang 应该是 wsl 2 网络设置的文章,试下这个改 dns 的 https://gist.github.com/coltenkrauter/608cfe02319ce60facd76373249b8ca6
|
10
kischang OP Restart-Service -Force -Name hns,Restart-NetAdapter -Name "vEthernet (WSL)",也试过了,无效
|
11
kischang OP @Tony042 #9 应该跟 dns 没有管理
现在 ifconfig,没有任何输出,连 lo 设备都没有,用 ifconfig eth0 up 起来后,也没有 ip |
12
hwdef 2021-10-18 16:59:05 +08:00
重启
|
13
hwdef 2021-10-18 16:59:31 +08:00
重开
重启 重装 win 三连 |
17
qq316107934 2021-10-18 17:03:37 +08:00
@kischang 先梳理下情况吧,在 WSL 里 ping 会返回 Unreachable 吗? ifconfig 是什么情况,有分配到 IP 和对应的 interface 吗?
在 WSL 外的宿主机,ipconfig 里有 vEthernet(WSL)相关的适配器吗?有的话到网络中心看适配器属性有没有流量。 |
19
hwdef 2021-10-18 17:06:42 +08:00
看看网络适配器里的状态,wsl 的网卡在 win 中也会有映射
|
20
kischang OP 谢谢大家得帮助,我最终通过 Google 和 stackoverflow 解决了问题
解决方法是 Disable swap 在 windows 得目录添加如下文件 %userprofile%\.wslconfig,内容是: [wsl2] swap=0 |
21
kischang OP @qq316107934 #17 问题解决了,在 20 楼
ifconfig 没有任何输出,没有任何 interface 机器上有 wsl1 和 wsl2 两个 Ubuntu,wsl1 一直是正常得,wsl2 突然出得问题 |
22
qq316107934 2021-10-18 17:21:16 +08:00
@kischang 为啥 swap 会影响网络...太迷了
|
23
hwdef 2021-10-18 17:25:01 +08:00
???? swap 影响网卡?啥原因
|
24
mxT52CRuqR6o5 2021-10-18 17:31:41 +08:00 2
|
25
qq316107934 2021-10-18 17:35:23 +08:00
@mxT52CRuqR6o5 看 mentioned issue 就知道有多少人被坑了...
|
26
kischang OP @qq316107934 #22
@hwdef #23 嗯,not exist FIB table,试了几个答案,试到了禁用 swap 就可以了,具体原因真的是不知道,也没有找到对应 wsl 的 issue 这是答案的链接: https://stackoverflow.com/questions/66338549/wsl2-network-unreachable |
27
weiceshi 2021-10-18 18:01:42 +08:00 8
楼主的 %Temp% 文件夹是不是启用压缩了?
.wslconfig 文件中两个参数的默认值如下 swap 25% of memory size on Windows rounded up to the nearest GB swapFile %USERPROFILE%\AppData\Local\Temp\swap.vhdx 所以如果 swapFile 在 wsl 中无法写入(发生最多的情况是 %TEMP% 文件夹开启压缩),那么 wsl 初始化过程中发现无法创建交换文件,所以跳过了后面的步骤,包括网络初始化 所以解决的方案就是两种 其中一种:就是楼上大家说的设置 swap=0,跳过 swap 创建 另外一种:使 swapFile 可写,比如通过设置 swapFile 到其他路径,或者关闭%Temp%目录的压缩 |
28
kischang OP |
29
weiceshi 2021-10-18 18:13:24 +08:00 4
@kischang
>以及微软官方说的压缩只是 ntfs 4k 的问题,而非真正的文件压缩,是怎么影响到功能的,不知道 ntfs 压缩不是 4k 对齐的问题,是使用 LZNT1 算法的透明压缩 >但至于为啥 swap 压缩会影响网络,不知道 因为 Linux 的 NTFS 驱动里只有 ntfs-3g 支持透明压缩,而 Windows 不支持 FUSE,因此无法在 Windows 目录上使用 NTFS-3G 也就是说在 WSL 的 linux 内部无法读写启动压缩的 windows 目录 |
30
kischang OP @weiceshi #29 这个 LZNT1 的透明压缩的来源是哪里啊?
这是我找到的关于 ntfs 压缩的解答 https://answers.microsoft.com/zh-hans/windows/forum/all/%E5%8E%8B%E7%BC%A9%E5%86%85%E5%AE%B9%E4%BB%A5/9f1240f1-d0cd-48b2-9d6f-358be786d7a1 |
31
weiceshi 2021-10-18 18:31:23 +08:00 1
@kischang
https://docs.microsoft.com/en-us/windows/win32/fileio/file-compression-and-decompression The NTFS file system volumes support file compression on an individual file basis. The file compression algorithm used by the NTFS file system is Lempel-Ziv compression. This is a lossless compression algorithm, which means that no data is lost when compressing and decompressing the file, as opposed to lossy compression algorithms such as JPEG, where some data is lost each time data compression and decompression occur. |
32
lb111223 2021-10-19 03:42:58 +08:00
hyper-v 好像是底层直接访问磁盘,压缩了会出现问题
|
33
Sendya 2021-10-19 11:05:45 +08:00
比较好奇什么需求要开磁盘压缩
|