告別虛擬機器!WSL2安裝配置教程!!!

SkyXZ發表於2025-01-16

作者:SkyXZ

CSDN:SkyXZ~-CSDN部落格

部落格園:SkyXZ - 部落格園

由於Linux的系統的穩定以及在環境管理方面的優越性,同時Linux對於ROS系統的獨佔,很多時候我們都樂意在Linux系統下開發我們機器人的演算法,但是由於Windows和Linux系統的存在核心方面的天壤之別,在我們手邊沒有Linux裝置的時候我們很多時候只能使用虛擬機器來代替,但是虛擬機器的使用往往帶來了一些效能上的問題,比如資源消耗較大、啟動慢、操作不夠流暢等。此外,虛擬機器的配置和管理也相對複雜,尤其是對開發人員來說,虛擬機器的管理和切換可能會影響開發效率。但是微軟推出的WSL2(Windows Subsystem for Linux 2)提供了一個更加高效且原生的解決方案,WSL2允許你在Windows 10及更高版本的作業系統上原生執行Linux核心,極大地提高了效能和相容性,同時可以直接在Windows環境中訪問Linux工具和命令,完全摒棄了虛擬機器的低效和麻煩,現在開始講解我們該如何配置自己的WSL2。

  • 具體詳細步驟請參考微軟官方文件:安裝 WSL | Microsoft Learn

首先我們需要確認自己的系統是否支援WSL2這項功能,我們需要使用win+R輸入winver或者是在"設定—>系統—>系統資訊—>Windows規格"中檢視我們的系統版本號,只有執行 Windows 10 版本 2004 及更高版本(內部版本 19041 及更高版本)或 Windows 11才能使用WSL2

image-20250116113243058

在確認無誤系統支援WSL2後我們進入"控制皮膚—>程式—>啟用或關閉Windows功能"中勾選開啟如下三個功能,點選確認後系統會需要大家重啟電腦來啟用這些功能

image-20250116112418163

PS:系統為家庭版的使用者在Windows功能中沒有"虛擬機器平臺"這一項,需要用管理員身份啟動Windows PowerShell額外使用如下命令開啟,接著在如下網站裡下載Windows核心功能包安裝外掛並重啟電腦即可

  • 適用於x64計算機的WSL2 Linux核心更新包:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

接著我們用開啟CMD輸入wsl -l,如果成功列印了資訊即代表WSL啟用成功,如果提示: wsl 不是內部或外部命令,說明你沒有啟用 Windows 的 Linux 子系統,請從頭檢查是否按照教程配置,啟用成功後我們在CMD中輸入以下命令來升級我們的WSL並設定WSL2:

wsl --update# 更新
wsl --set-default-version 2 #設定為WSL2

然後我們用Ubuntu22.04來演示如何安裝自己需要的Linux的系統,其他的系統版本步驟類似,在WSL中安裝Ubuntu和安裝虛擬機器其實是類似的,我們都需要一個系統映象來進行安裝,這個映象目前只能從微軟官方獲取,如果你的電腦啟用了代理,那麼你可以直接在cmd中輸入以下命令來獲取可用版本的 Linux 發行版列表,並使用如下命令進行安裝

wsl --list --online #列出所有可獲取發行版
wsl --install -d <Distribution Name># 安裝對應的發行版

image-20250116181102788

但是如果你的電腦沒有設定代理,使用上述命令大概會有如下報錯,因此我建議大家可以直接從微軟商店(Microsoft Store)來獲取系統分發,在[開始選單]中輸入Microsoft Store後點選即可開啟微軟商店,在搜尋框輸入Ubuntu即可顯示Linux系統分發,PS:如果你開著代理,大機率微軟商店將無法正常載入內容

image-20250116181216726

image-20250116181443755

安裝完成後我們開啟cmd在上方的下拉箭頭便會有對應的Ubuntu22.04選項,於是我們這時候可以點選這個選項便可以進入系統配置介面,或者是直接輸入wsl接著便會提示你輸入系統的使用者名稱以及密碼,這裡要注意的是使用者名稱最好是使用英文小寫字母不然可能會有報錯然後如果大家在"Installing,this may take a few minutes..."這個提示下等待時間過久,可以直接按ctrl+c強制退出然後進入賬號建立步驟哦

image-20250116182404179

0639532e412a1cec3d8937cc6371878

然後如果正式進入了系統那麼便代表系統配置成功啦!!!這個時候我們便可以在Win設定的應用管理中將我們之前下載的系統分發刪除啦!

ccaf9ed385874f9d65406292638be75

但是到目前為止我們的WSL系統還是安裝在C盤,隨著後續的開發我們的C盤便會有爆滿的風險,於是我們便可以將安裝的系統遷移至其他盤,大家按照以下步驟即可完成遷移:

#step 1
wsl -l --all -v   #檢視所有已安裝的 Linux 發行版本
#step 2 匯出wsl系統
wsl --export <Linux-name > <匯出路徑及名字>
wsl --export Ubuntu-22.04 d:\ubuntu22.04.tar  #示例
#step 3 登出原系統
wsl --unregister <Linux-name>
wsl --unregister Ubuntu-22.04 #示例
#step 4 重新匯入
wsl --import <子系統名稱> <遷移到哪一個檔案下> <要匯入的包路徑> --version 2
wsl --import Ubuntu-22.04 d:\wsl-ubuntu22.04 d:\ubuntu22.04.tar --version 2 #示例
#step 5 設定預設使用者
<wsl-Linux_name> config --default-user <user>
ubuntu2204.exe config --default-user xq #示例
#step 6 刪除匯出包
del d:\ubuntu22.04.tar 

最後我們搭配VScode即可實現Win上對Linux的優雅開發!

然後在WSL上訪問Win上USB裝置的方法請檢視我的另一篇部落格:老奶奶看了都會的WSL2連線USB裝置教程_wsl2 usb-CSDN部落格

PS:如果出現如下圖片的報錯,請檢查:

  1. 是否輸入過wsl --update

  2. 是否下載過 適用於x64計算機的WSL2 Linux核心更新包:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

  3. 是否按照教程啟用了每一個Windows功能並且重啟

    8f15085613fd4e11b1321f08555fb7d

相關文章