WSL 簡介及安裝

      在〈WSL 簡介及安裝〉中尚無留言

WSL 簡介

WSL 全名為 Windows subsystem Linux,是微軟 Hyper-V 虛擬機器裏的一個輕量級子系統,可以在 Windows 裏跑 Linux 系統,而且支援 GPU-PV。GPU-PV 稱為顯卡虛擬化,是在 Linux 虛擬機上存取 Windows 宿主機硬体 GPU 的一種技術。這對沒有多餘機器安裝實体 Linux 的人而言,是蠻不錯的選擇。

WSL 僅支援 Windows 10/Windows 11 的 Professional(專業版) EnterPrise(企業版)若是Home(家用版),則無法使用。

安裝 WSL

以系統管理員身份啟動 Dos 視窗命令提示 ,執行如下指令安裝 wsl 系統

wsl --install

上面的指令除了安裝 wsl 子系統外,重新開機後,還會自動安裝 ubuntu 最新的版本。安裝 ubuntu 時需一段時間,請耐心請待。

安裝ubuntu 時,若出現 WslRegisterDistribution failed with error: 0x80370102 錯誤,請參考本篇最下面的核心隔離,然後重新開機,再執行如下指令

wsl --install -d ubuntu

GPU-PV

WSL2 支援 GPU-PV (顯卡虛擬化),所以 WSL2 一裝好,除了 ubuntu 一併裝進去,dxgkrnl 驅動程式也會自動裝好,馬上可以使用 “nvidia-smi” 這個指令測試。

nvidia-smi

Fri Apr 19 14:48:15 2024
+-------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.76.01          Driver Version: 552.22         CUDA Version: 12.4     |
|-------------------------------------+------------------------+----------------------+
| GPU  Name             Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf      Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                     |                        |               MIG M. |
|=====================================+========================+======================|
|   0  NVIDIA GeForce RTX 3080 Ti  On |   00000000:01:00.0  On |                  N/A |
| 53%   43C    P8         60W /  400W |    1758MiB /  12288MiB |     13%      Default |
|                                     |                        |                  N/A |
+-------------------------------------+------------------------+----------------------+

+-------------------------------------------------------------------------------------+
| Processes:                                                                          |
|  GPU   GI   CI        PID   Type   Process name                          GPU Memory |
|        ID   ID                                                           Usage      |
|=====================================================================================|
|  No running processes found                                                         |
+-------------------------------------------------------------------------------------+

有看到上面的訊息,表示GPU-PV 驅動程式已經安裝完成。

與 VMware相衝

wsl 一打開,市面上常用的 vmware, viturebox 馬上失效,這是因為 “Windows 子系統 Linux 版” 及 “虛擬機器平台” 被打開了,造成 VMware 的 Vituralize Intel VT-x/EPT 無法啟用。請由 “開始/Windows 系統/控制台/程式集/開啟或關閉 Windows 功能” 進入查看。

Vituralize Intel VT-x/EPT 加速虛擬機的技術,若要重新啟用 VMware的 Vituralize Intel VT-x/EPT,請將如下紅線框起來的功能全部都取消。

當然上面的功能關掉,WSL 就無法用。所以如果想要 VMware 與 WSL 共存並用,可以考慮將 VMware的 Virtualize Intel VT-X/EPT 取消,這樣VMware 就又可以執行了,只是速度可能會比較慢。

啟動 Ubuntu

開啟 Dos 視窗,輸入如下指令即可

wsl -d ubuntu

移除 Ubuntu

移除 ubuntu 請執行如下指令。

wsl --unregister ubuntu

手動安裝 Ubuntu

如果要重新安裝或手動安裝其它 ubuntu,進入 Dos 視窗輸入

wsl --install -d ubuntu

移除 WSL

要移除 WSL 請先確認如下步驟

wsl --unregister ubuntu
wsl --shutdown
wsl --uninstall
控制台關掉 windows 子系統 Linux
重新開機

預設安裝路徑

WSL 預設安裝在 C 碟如下目錄

C:\Users\mahal\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState

搬移安裝位置

通常我們不會把 utuntu 安裝在 C 碟,所以要作搬移的動作,請依續執行如下指令

wsl --shutdown
wsl --export Ubuntu d:\ubuntu.tar
wsl --unregister Ubuntu
d:
mkdir wsl
wsl --import Ubuntu d:\wsl d:\ubuntu.tar
del d:\ubuntu.tar

搬移後打開 wsl 進入 ubuntu,卻發現登入的帳號是 root。

請在 開始 按右鍵,執行 regedit,依序進入如下位置

 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\{xxxxxx}

然後將 DefaultUid 改成十進位的 1000,最後重新執行 wsl 即會用一般使用者登入。

ubuntu 初始設定

一開始要初始的設定如下

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install net-tools network-manager ubuntu-drivers-common
sudo apt-get install nvidia-cuda-toolkit

核心隔離

WSL2 有時會出現 WslRegisterDistribution failed with error: 0x80370102 錯誤,網路常教大家切換到 WSL1 即可,但這樣就無法支援 GPU-PV,唯一的方法就是重新安裝 Windows,這應該是微軟的嚴重bug。

若緊急狀況不能重新安裝 Windows ,可以將核心隔離暫時打開,就可以跑 wsl2 了,但核心隔離一打開,整台電腦的效能就會降低很多,由其是 “雷電” 或 “BlueStacks” 等 Android 模擬器更為嚴重,而且 VMware 及 VirtualBox 就無法執行了。所以想要執行其它虛擬器,核心隔離就要再度手動關上,然後重心開機。

開啟核心隔離的方法,請由 Windows 安全性/裝置安全性/核心隔離/記憶体完整性將之打開,如下圖所示

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *