買了新電腦(3090ti)用來煉丹,猶豫了許久後在雙系統和 WSL 中選擇了後者。
原因如下:
- 不想折騰雙系統的硬碟、網路配置,而 WSL 可以同步主系統的 host
- 嘗鮮 WSL2,知道這東西好久了,但之前的用的拯救者筆記本跑起來很卡,沒當生產力用過
- 存在感低,2-3 秒就能開啟的子系統,可以跑著任務掛後台,同時滿足我 “不想在 windows 裡配環境” 的奇怪要求
- 網上說現在的 WSL2 對 NVIDIA GPU 的支持很好,很多帖子中要避的雷都已經不再重要了。
配置歷程#
回憶一下配置路程:
下載 WSL2#
Win11 下,只需要在 WIndows Powershell 中運行下面指令即可完成全部系統配置,不需要再去勾選什麼 “虛擬機平台” 和 “開啟 HyperV”:
wsl --install # 默認是 LTS 版本,要下載指定版本可以先輸入wsl --list --online 查看
遷移硬碟#
個人習慣把東西放其它盤裡,但 WSL 默認是裝在系統盤,先確定版本:
wsl --list --verbose
導出現有的系統:
wsl --export Ubuntu-20.04 D:\Ubuntu.tar # 我這裡的版本和命名是這樣的
取消掛載:
wsl --unregister Ubuntu-20.04
重新掛載:
wsl --import Ubuntu-20.04 D:\wsl2\Ubuntu D:\Ubuntu.tar
wslconfig#
Win + r 輸入 % UserProfile%,然後在該目錄下創建一個名為 .wslconfig
的文件(記得去開啟文件後綴顯示),具體配置還是得去網上找專業內容,WSL2 默認只能使用一半內存,我這裡希望全開而已,前兩條是網絡 host 省心設置。
[wsl2]
networkingMode=mirrored
autoProxy=True
memory=32GB
避雷#
這裡要注意的是,遷移硬碟重新掛載後默認用戶將是 root 而非一開始登陸的 Unix User,為了美好的未來,最好不要用 root 用戶來完成全部操作。
vim /etc/wsl.conf
然後複製下面內容,systemd 應該默認就有了現在:
[user]
default=你最開始註冊的用戶名
[boot]
systemd=true
此外,不要在 WSL 里嘗試刪庫大法,可能會把整個盤都刪了,想感受效果去虛擬機裡整。
關機#
不用的時候想釋放資源,可以在 Windows PowerShell 裡輸入:
wsl --shutdown
ZSH#
習慣了 zsh 作為默認終端,sudo apt install zsh
就行,再找個 oh-my-zsh 的配置貼跟著走完就能得到一個夠用的終端。
如:https://dev.to/equiman/zsh-on-windows-with-wsl-1jck
不過這篇推薦的用來適配終端的 font 不太好看,個人還是喜歡 JetBrains Nerd Font Mono 字體。
其它配置#
我的需求是配置深度學習環境,沒什麼可講的,跟你在純正 Linux 伺服器上操作一樣,miniconda
+uv pip install
即可。
如果這裡 pip 下載時提示你當前在用 root 賬戶操作的話,注意本文前面提到的
尾聲#
感覺 WSL2 確實節省了不少精力,也能便調配方、煉丹邊摸魚,這樣的 Windows 才是我心中理想的操作系統,Mb Air 都放了兩天了,除非出門根本不會用。
至於煉丹速度,能跑起來就行了,網上說的 20% 左右的損耗只要不去想就沒事,越愛比較煩惱越多~