windows11設定wsl2虛擬linux環境

2023-11-12 15:00:51

windows11設定wsl2虛擬linux環境

wsl( Windows Subsystem for Linux )是microsoft官方為windows開發的模擬Linux方法。避免了虛擬機器器vmware的效能損耗開銷,或者雙系統兩者不能同時執行的問題。wsl2似乎可以滿足大部分Linux需求。方便且優雅!

安裝wsl2

安裝方法

官方的介紹檔案:

WSL 的基本命令 | Microsoft Learn

安裝wsl只需要在windows終端輸入一條指令

wsl --install

等待幾分鐘,會安裝wsl工具和預設的Linux系統。

也可以指定安裝的Linux系統

wsl --list --online  //檢視可安裝的Linux版本
wsl --list --verbose  //檢視已安裝Linux
wsl --install <Distro>   //安裝指定Linux版本
wsl --set-default <Distribution Name> //設定預設 Linux 發行版

通過wsl執行Linux

wsl --distribution <Distribution Name> --user <User Name>  //執行特定的 Linux 發行版

可能的報錯

無法執行Linux

安裝完後,執行Linux,一般出現error 0x80370114。

需要在Windows中, 「設定」->「應用」->「可選功能」 , 下滑至選單最下面,找到「更多windows功能」選項 。開啟「適用於Linux 的Windows子系統」功能。

參考:

WIN11按照官方檔案安裝WSL2時出現error 0x80370114_半路殺出來的小黑同學的部落格-CSDN部落格

其他設定

遷移wsl位置

因為wsl預設是在C槽。出於空間問題,移動到D槽。

步驟是:匯出系統 ——刪除系統——匯入系統並重新設定儲存位置—— 修改預設登入使用者

wsl --export Ubuntu D:\wsl\ubuntu.tar  #即 wsl --export <系統名> <匯出檔案目錄>
wsl --unregister Ubuntu  #刪除目錄
wsl --import Ubuntu D:\wsl\Ubuntu D:\wsl\ubuntu.tar  --version 2  # 即 wsl --import <系統名>  <新的安裝位置>  <tar檔案目錄> WSL版本號
Ubunatu config --default-user <Username>  //修改預設登入使用者

參考:

通過WSL2搭建Pytorch1.10+CUDA11.4+NVIDIA Driver深度學習框架全過程 - 簡書 (jianshu.com)

磁碟掛載

需要和系統磁碟不一樣的磁碟(掛載不同分割區不行)。這個沒有設定。

Linux設定

apt換源

國內的映象伺服器,有 阿里源 ,清華源,中科大源。

apt映象源組態檔是 /etc/apt/sources.list 。

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak      #備份
sudo vim /etc/apt/sources.list      #編輯源組態檔

不同的Linux版本代號,需要用不同的源。不然後面在apt update和下載軟體時,會出現各種問題。(update後有wrong,gedit下載不了,gcc下載後無法編譯原始檔,報錯找不到stdio.h等,實際上是源問題導致下載不相容的軟體)

正常的話,reading後面是沒有 wrong的。

檢視系統代號

lsb_release -a    #檢視系統版本代號
uname -r   #檢視核心版本,核心不對可能也有問題

我的Ubuntu的發行版是jammy,下面的換源地址就不行,它的發行版是 bionic。可以直接把bionic 改為 jammy,懶的可以直接百度jammy的映象源地址。

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

找到的jammy源。

# 預設註釋了原始碼映象以提高 apt update 速度,如有需要可自行取消註釋
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
 
# 預釋出軟體源,不建議啟用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

解除安裝換源前下載的軟體

sudo apt-get remove XXX
sudo apt-get update

環境設定

一般的話,用apt install 安裝 g++,然後用vscode寫程式碼,用Linux工具編譯。

編譯時需要的硬體驅動,是在物理機(Windows)下安裝。

vscode設定

WSL外掛

在vscode下載官方的WSL外掛。現在已經改名叫WSL了。

連線方法1

vscode中,快捷鍵ctrl+shift+p,可以開啟外掛控制面板,呼叫外掛功能,在WSL中重新開啟資料夾。

這個的優點是可以開啟Windows下的目錄,對應的速度慢點。這種方法更靈活。

在終端通過指令方式編譯程式並執行。

連線方法2

也可以在遠端資源控制器中,選擇WSL目標,進入ubuntu。

進入之後的介面如圖

但是這個相當於進入了Linux目錄中,只能在Linux中建立檔案和目錄,速度也快些。

其他問題

講道理,應該是可以直接用vscode的執行按鈕,直接編譯檔案的。但是要處理組態檔,而vscode的組態檔launch.json,我目前還是看不懂的。不然會更方便。