glibc 2.31补丁导致Linux子系统WSL 1运行Ubuntu 20.04出问题

我们使用的Linux系统最近出现了一些问题,可能会在子系统WSL 1运行Ubuntu版本的时候出现一些故障 。据悉是因为glibc 2.31补丁导致问题的出现 。详细内容请见下文~

glibc 2.31补丁导致Linux子系统WSL 1运行Ubuntu 20.04出问题

文章插图
【微软win10最新资讯】
glibc 2.31补丁导致Linux子系统WSL 1运行Ubuntu 20.04出问题Ubuntu 论坛一个帖子指出,Windows 的 Linux 子系统 WSL 1 在运行 Ubuntu 20.04 LTS 时将会出现问题
提醒用户注意相关版本的使用 。
问题来自 glibc 2.31 中的补丁,该补丁以类似于 UNIX 的方式实现了基于 CLOCK_REALTIME 的 nanosleep() 库调用 。
在 NT 内核上模拟 UNIX 系统时钟非常棘手 。WSL 1 实现了最流行的基于时钟的系统调用
但并非全部都实现,并且没有将 CLOCK_REALTIME 支持构建到 nanosleep 中 。
WSL 1 完全实现这一支持还需要一些时间,而除非是 Windows Insider 用户
glibc 2.31补丁导致Linux子系统WSL 1运行Ubuntu 20.04出问题

文章插图
否则可能几个月内都不会见到问题修复 。没有此修复程序,WSL 1 上的 Ubuntu 20.04 往往会崩溃
甚至在升级到 Ubuntu 20.04 的过程中也会有问题 。
用户可以怎么做呢?对于 WSL 1 用户,建议暂时停留在 Ubuntu 18.04 LTS,不向上升级到 20.04(几周后发布) 。
对于 WSL 2 用户,Ubuntu 20.04 发布时可以随意升级,甚至更早就可以使用非稳定版本进行测试 。
对于升级到 WSL 2 的 WSL 1 用户,当 Ubuntu 20.04 可用时
【glibc 2.31补丁导致Linux子系统WSL 1运行Ubuntu 20.04出问题】
glibc 2.31补丁导致Linux子系统WSL 1运行Ubuntu 20.04出问题

文章插图
应首先使用以下命令将 Ubuntu 18.04 镜像转换为 WSL 2:
$ wsl.exe --set-version Ubuntu 2
再将其升级到 20.04 。
而如果无论如何就是想要从 WSL 1 升级 Ubuntu 20.04,那么在升级前,先阻止 libc6 更新:
$ sudo apt-mark hold libc6


    推荐阅读