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 用戶,否則可能幾個月內都不會見到問題修復。沒有此修復程序,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 可用時,應首先使用以下命令將 Ubuntu 18.04 鏡像轉換為 WSL 2:
$ wsl.exe --set-version Ubuntu 2
再將其升級到 20.04。
而如果無論如何就是想要從 WSL 1 升級 Ubuntu 20.04,那麼在升級前,先阻止 libc6 更新:
$ sudo apt-mark hold libc6
更多細節查看原帖:https://discourse.ubuntu.com/t/ubuntu-20-04-and-wsl-1/15291
[admin
]