Windows的Linux子系統被發現運行Ubuntu 20.04 LTS時會出現問題
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