前言
(在Windows操作系統(tǒng)中使用Linux虛擬機(jī)WSL可讓開(kāi)發(fā)人員直接在Windows上按原樣運(yùn)行GNU環(huán)境)
經(jīng)常使用電腦的同學(xué)一定不陌生Linux操作系統(tǒng),Linux作為一種開(kāi)源操作系統(tǒng)其好處自不必說(shuō):免費(fèi)、穩(wěn)定、兼容性等等,對(duì)于從事IT研發(fā)工作的同學(xué),Linux操作系統(tǒng)就更加的不可或缺了。
但現(xiàn)實(shí)情況卻是絕大部分個(gè)人PC都是Windows,部分是Mac,幾乎沒(méi)有Linux,盡管Linux也推出了不錯(cuò)的桌面發(fā)行版,比如Ubuntu(可見(jiàn)擁有自己的硬件產(chǎn)品是多么的重要...)。對(duì)于想體驗(yàn)Linux的同學(xué),再買(mǎi)一臺(tái)電腦重裝成Linux操作系統(tǒng)似乎代價(jià)過(guò)于高昂,于是雙系統(tǒng)與虛擬機(jī)成了唯二的選擇,雙系統(tǒng)本文不做介紹(僅來(lái)回切換系統(tǒng)這一點(diǎn)就讓筆者直接放棄),本文主要介紹如何在Windows操作系統(tǒng)中使用Linux虛擬機(jī)。
說(shuō)到虛擬機(jī),就不得不提VMware和VirtualBox是兩種虛擬化軟件。VMware是一個(gè)商業(yè)性質(zhì)的虛擬化解決方案,提供了豐富的功能并且具有較高的性能,但是是收費(fèi)的。VirtualBox則是一款開(kāi)源的虛擬化軟件,但功能相對(duì)于VMware有限。
對(duì)于筆者來(lái)說(shuō),是否收費(fèi)倒不是第一考慮因素(收費(fèi)軟件在國(guó)內(nèi)的待遇懂的都懂~),安裝配置是否方便,使用起來(lái)是否絲滑才是最重要的。遺憾的是這兩個(gè)產(chǎn)品都過(guò)于笨重、繁瑣,盡管經(jīng)過(guò)多年的版本迭代已經(jīng)有了很大的改善,但仍不盡如人意??嘤诓](méi)有更好的選擇,筆者曾用過(guò)很長(zhǎng)一段時(shí)間的VMware,直到WSL的問(wèn)世。
問(wèn)題1:WSL是什么?
WSL:適用于Linux的Windows子系統(tǒng)(windows subsystem for linux),可讓開(kāi)發(fā)人員直接在Windows上按原樣運(yùn)行GNU/Linux環(huán)境,包括大多數(shù)命令行工具、實(shí)用工具和應(yīng)用程序,且不會(huì)產(chǎn)生傳統(tǒng)虛擬機(jī)或雙啟動(dòng)設(shè)置開(kāi)銷(xiāo)。
問(wèn)題2:為什么使用WSL?
方便:在Windows下使用Linux,無(wú)需另外設(shè)置虛擬機(jī)或雙系統(tǒng),簡(jiǎn)化了操作。
效率:WSL在Windows內(nèi)核上運(yùn)行,不會(huì)像虛擬機(jī)一樣影響系統(tǒng)性能。
兼容性:WSL可以運(yùn)行大多數(shù)的Linux程序,可以使用Windows平臺(tái)上的文件。
靈活性:可以在Windows環(huán)境中安裝多個(gè)Linux發(fā)行版,可以選擇合適的版本。
開(kāi)發(fā)環(huán)境:對(duì)于軟件開(kāi)發(fā)者,WSL可以提供一個(gè)統(tǒng)一的開(kāi)發(fā)環(huán)境,方便在Windows下進(jìn)行開(kāi)發(fā)和測(cè)試。
說(shuō)明:本文中提到的WSL均代指WSL2,對(duì)于WSL1本文不作討論。
安裝流程如下:
第一步:檢查系統(tǒng)運(yùn)行WSL的要求,WSL需運(yùn)行在Windows 10或者Windows 11操作系統(tǒng)上,對(duì)于Windows 10用戶(hù)需檢查系統(tǒng)版本是否適配(Windows 11用戶(hù)無(wú)視即可)
檢查系統(tǒng)版本號(hào),打開(kāi)cmd(Windows徽標(biāo)鍵+ R,鍵入cmd并點(diǎn)擊“確定”)并執(zhí)行:winver,即可彈出Windows版本信息窗口。
需要版本1903或更高版本,內(nèi)部版本為18362或更高版本。若不然,可以在Windows“設(shè)置”菜單中或者使用Windows更新助手進(jìn)行更新。
第二步:啟用WSL以及虛擬機(jī)功能。
以管理員身份打開(kāi)PowerShell。
運(yùn)行:dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart。
運(yùn)行:dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart。
重啟計(jì)算機(jī)。
第三步:下載并安裝Linux內(nèi)核更新包,下載鏈接:
https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#
step-4---download-the-linux-kernel-update-package。
第四步:將WSL2設(shè)置為默認(rèn)版本,打開(kāi)cmd并執(zhí)行:wsl --set-default-version 2。
第五步:選擇你偏好的Linux分發(fā)版(筆者使用的是Ubuntu20.04),打開(kāi)Microsoft Store,搜索對(duì)應(yīng)的Linux分發(fā)版點(diǎn)擊“獲取”然后點(diǎn)擊“安裝”即可。
第六步:啟動(dòng)wsl,打開(kāi)cmd并執(zhí)行:wsl,即可啟動(dòng)Linux系統(tǒng),首次啟動(dòng)新安裝的Linux分發(fā)版時(shí),將打開(kāi)一個(gè)控制臺(tái)窗口,系統(tǒng)會(huì)要求你等待一分鐘或兩分鐘,以便文件解壓縮并存儲(chǔ)到電腦上,未來(lái)的所有啟動(dòng)時(shí)間應(yīng)不到一秒。然后按照提示輸入用戶(hù)名、密碼即可。
說(shuō)明:以下命令均在cmd中輸入。
1.啟動(dòng)WSL:wsl。
2.關(guān)閉WSL:wsl --shutdown。
3.查看已安裝的Linux分發(fā)版:wsl -l -v --all。
4.卸載Linux分發(fā)版:
a. 列出已安裝的Linux分發(fā)版:wslconfig /l。
b. 卸載(假定要卸載的分發(fā)版為:Ubuntu-20.04):wslconfig /u Ubuntu-20.04。
設(shè)置WSL虛擬資源
WSL啟動(dòng)之后會(huì)占用Windows系統(tǒng)部分系統(tǒng)資源,若占用過(guò)大則會(huì)導(dǎo)致Winndows系統(tǒng)卡頓,反之則可能導(dǎo)致在Linux中跑一些應(yīng)用時(shí)卡頓,用戶(hù)可以根據(jù)自身電腦的配置設(shè)置WSL占用系統(tǒng)資源的最大值來(lái)平衡這個(gè)問(wèn)題。
步驟如下:
1.打開(kāi)用戶(hù)主目錄,選擇Windows徽標(biāo)鍵+ R,鍵入%UserProfile%并點(diǎn)擊“確定”,即可打開(kāi)用戶(hù)主目錄。
2.在用戶(hù)主目錄下創(chuàng)建文件:.wslconfig,并填入以下內(nèi)容用以限制WSL占用的最大系統(tǒng)資源(具體值根據(jù)自身電腦配置而定):
[wsl2] processors=4 memory=4GB swap=4GB localhostForwarding=true
3.重啟WSL:
a. 打開(kāi)cmd。
b. 關(guān)閉WSL:wsl --shutdown。
c. 啟動(dòng)WSL:wsl。
修改WSL虛擬磁盤(pán)位置
Linux分發(fā)版安裝完成之后系統(tǒng)會(huì)為WSL分配一塊虛擬磁盤(pán)用于存放Linux分發(fā)版的相關(guān)數(shù)據(jù),該虛擬磁盤(pán)默認(rèn)存放在C盤(pán),隨著持續(xù)使用,虛擬磁盤(pán)占用的空間可能會(huì)越來(lái)越大從而導(dǎo)致C盤(pán)空間不足的問(wèn)題。通過(guò)以下步驟可以更改虛擬磁盤(pán)存放位置:
1.關(guān)閉WSL:wsl --shutdown。
2.導(dǎo)出分發(fā)版為tar文件到指定盤(pán)(比如D盤(pán)),首先,在D盤(pán)創(chuàng)建文件夾,名字隨意,比如:ubuntu。 然后,在cmd中執(zhí)行:wsl --export Ubuntu-20.04 D:\ubuntu\ubuntu2004.tar。
3.注銷(xiāo)當(dāng)前分發(fā)版,在cmd中執(zhí)行:wsl --unregister Ubuntu-20.04。
4.重新導(dǎo)入并安裝分發(fā)版到D盤(pán)的ubuntu文件夾,在cmd執(zhí)行:wsl --import Ubuntu-20.04 D:\ubuntu\Ubuntu-20.04 D:\ubuntu\ubuntu.tar --version 2。
5.設(shè)置默認(rèn)登陸賬戶(hù),在cmd中執(zhí)行:ubuntu2004 config --default-user xxx,其中xxx即為原Linux的用戶(hù)名。
6.刪除tar文件,在cmd中執(zhí)行:del D:\ubuntu\ubuntu.tar。
操作完成之后就會(huì)在指定目錄(比如:D:\ubuntu\Ubuntu-20.04)生成一個(gè)名為ext4.vhdx的虛擬磁盤(pán)文件:
清理虛擬磁盤(pán)空間
WSL使用了虛擬磁盤(pán),意味著它可能只有15GB的數(shù)據(jù),但是虛擬磁盤(pán)卻占用了100GB的空間。如果你往WSL中放了大量的數(shù)據(jù),然后刪掉,會(huì)發(fā)現(xiàn)WSL的磁盤(pán)占用沒(méi)有降下來(lái),這就是虛擬磁盤(pán)造成的。通過(guò)以下方法可以壓縮虛擬磁盤(pán)空間,視使用情況每隔一段時(shí)間執(zhí)行一次就好:
1.打開(kāi)cmd。
2.關(guān)閉WSL:wsl --shutdown。
3.打開(kāi)diskpart:diskpart。
4.選擇虛擬磁盤(pán),在diskpart中執(zhí)行:select vdisk file="D:\ubuntu\Ubuntu-20.04\ext4.vhdx"。
5.執(zhí)行壓縮,在diskpart中執(zhí)行:compact vdisk。
WSL安裝圖形界面
根據(jù)以上流程安裝完WSL之后,對(duì)Linux系統(tǒng)的基本使用已經(jīng)沒(méi)什么問(wèn)題了,稍顯遺憾的是只能通過(guò)命令行來(lái)操作Linux系統(tǒng),但某些時(shí)候,你可能還是要用到Linux上的圖形界面程序,比如Pycharm、Sublime Text等等。可以通過(guò)遠(yuǎn)程桌面的方式來(lái)使用圖形界面。
安裝xrdp:
1.sudo apt update。
2.sudo apt upgrade。
3.sudo apt install xorg。
4.sudo apt install xfce4
5.sudo apt install xrdp。
6.防止與Windows默認(rèn)遠(yuǎn)程端口3389沖突,此處改為3390: a. sudo cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini_bak。 b. sudo sed -i 's/port=3389/port=3390/g' /etc/xrdp/xrdp.ini。
7.防止閃退:sudo echo xfce4-session > ~/.xsession。
8.重啟xrdp:sudo service xrdp restart。
9.將xrdp服務(wù)設(shè)置為開(kāi)機(jī)自啟,在~/.bashrc中添加:sudo service xrdp start。
如何使用:
1.選擇Windows徽標(biāo)鍵+ R,鍵入mstsc。
2.輸入遠(yuǎn)程桌面host以及port:localhost:3390 。注意:對(duì)于Windows版本18945之前的用戶(hù),可能會(huì)失敗,如果失敗,輸入127.0.0.1:3390即可。
3.輸入Linux用戶(hù)名、密碼。
黑屏問(wèn)題解決,Xfce4會(huì)自動(dòng)鎖屏,鎖屏之后遠(yuǎn)程桌面會(huì)黑屏,解決方法如下:
1.關(guān)閉自動(dòng)鎖屏:Applications -> Settings -> Light Locking Settings -> Automatically lock the session -> Never。
2.刪除鎖屏快捷鍵:Applications -> Settings -> Keyboard,刪除快捷鍵:ctrl + alt + l、ctrl + alt + delete。
3.若不幸黑屏了,重啟WSL,然后重新連接遠(yuǎn)程桌面即可。
WSL的安裝以及基礎(chǔ)使用教程就先介紹到這里了,每個(gè)流程步驟筆者都親自驗(yàn)證過(guò)且不止一次,滿滿都是干貨,開(kāi)袋即食的那種。對(duì)于從事IT研發(fā)工作的同學(xué)一定會(huì)有些幫助的,對(duì)于圈子以外的同學(xué)...大家裝完WSL平常有事沒(méi)事去朋友面前裝裝X、吹吹牛,它不香嗎!
聯(lián)系客服