安裝WSL
- Powershell用管理員方式打開,然后運(yùn)行以下命令
- 啟用適用于 Linux 的 Windows 子系統(tǒng)功能(也可以到服務(wù)里面打開)
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
- 啟用虛擬機(jī)功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- 重啟系統(tǒng)哩陕,然后Powershell管理員方式運(yùn)行下面命令
- 設(shè)置默認(rèn)用WSL2沥邻,而不是WSL1(更新一下危虱,現(xiàn)在默認(rèn)的是2了,這個(gè)不用設(shè)置)
wsl -s 2
- 更新適用于 x64 計(jì)算機(jī)的最新 WSL2 Linux 內(nèi)核更新包唐全,舊的內(nèi)核包是安裝Linux發(fā)行版會(huì)出問題的
wsl --update
- 更新最新內(nèi)核包完成后埃跷,既可以用命令行的方式安裝,也可以到微軟商店查找然后安裝分發(fā)版邮利,命令行方式如下
- Powershell里使用以下命令弥雹,查看可以用于安裝的分發(fā)版
wsl -l -o
- 安裝自己喜歡的版本
wsl --install -d 分發(fā)版的名字(例如Ubuntu-20.04)
- 安裝完成后,自己輸入用戶名密碼就進(jìn)入子系統(tǒng)了(默認(rèn)用戶延届,可以用--user 用戶名選擇登錄用戶剪勿,忘記密碼時(shí)可以用--user root進(jìn)去,然后改密碼方庭,--cd 可以決定進(jìn)入分發(fā)版后的用戶主目錄窗宦,例如--cd ~),
wsl -d Ubuntu-20.04
wsl2子系統(tǒng)的一些配置(非常有用)
- 為該虛擬機(jī)網(wǎng)卡添加防火墻規(guī)則赦颇,解決與宿主機(jī)網(wǎng)絡(luò)不通問題,在windows系統(tǒng)的PowerShell管理員模式下輸入如下命令赴涵。
# 這個(gè)是入站規(guī)則(-InterfaceAlias 后面設(shè)置的是具體的網(wǎng)卡的名字,不同機(jī)器可能不一樣)
New-NetFirewallRule -DisplayName "WSLInbound" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
# 這個(gè)是出站規(guī)則(-InterfaceAlias 后面設(shè)置的是具體的網(wǎng)卡的名字订讼,不同機(jī)器可能不一樣)
New-NetFirewallRule -DisplayName "WSLOutbound" -Direction Outbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
- 替換wsl2鏡像源并升級軟件包髓窜,命令步驟如下
# 切換root用戶
sudo su
# 修改鏡像源
將/etc/apt/sources.list中類似這樣的
deb http://archive.ubuntu.com/ubuntu/ focal main restricted
其中的url換成阿里的
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted
# 更新包管理器的存儲(chǔ)庫索引
apt update
# 升級安裝包并自動(dòng)解決依賴關(guān)系
apt full-upgrade
下面的這個(gè)第三步wsl2已經(jīng)改了,其ip不是用dhcp的方式了欺殿,現(xiàn)在就是static的方式寄纵,官方改了一下,非常的nice脖苏,這樣就不用配置啟動(dòng)腳本了
3. 在子系統(tǒng)內(nèi)設(shè)置一個(gè)腳本程拭,把wsl2的dhcp地址對應(yīng)一個(gè)域名(我這里是ubuntu20),然后每當(dāng)啟動(dòng)wsl2的時(shí)候把這個(gè)對應(yīng)的關(guān)系寫入windows的hosts文件棍潘,讓自己的windows程序可以hosts文件中的對應(yīng)關(guān)系得到wsl2的dhcp出來的ip恃鞋。以后自己想要連接子系統(tǒng)的程序,只用填域名就行亦歉。命令步驟如下
# 暫時(shí)借用root權(quán)限
sudo su
# 編輯/etc/profile
vim /etc/profile
再profile后面加上這三條命令
# 獲得子系統(tǒng)ip
ipaddr=$(ifconfig eth0 | grep 'inet ' | awk '{print $2}')
# 刪除之前配置的DNS解析信息
sed -i '/ubuntu20/d' /mnt/c/Windows/System32/drivers/etc/hosts
# 追加最新的DNS解析信息
echo "$ipaddr ubuntu20" >> /mnt/c/Windows/System32/drivers/etc/hosts
然后修改hosts文件的權(quán)限