---
title: WSL|在 Windows 10 中安裝和使用 Ubuntu 子系統
date: 2022-07-20 22:59
is_modified: true
disqus: cynthiahackmd
image: https://i.imgur.com/5PJDakX.png
categories:
- "資訊科技 › 開發與輔助工具"
tags:
- "Windows/DOS"
- "Linux/Unix"
- "WSL"
- "工具安裝與部署"
---
{%hackmd @CynthiaChuang/Github-Page-Theme %}
<br>
實在不習慣在 Windows 開發的一些設定,而之前安裝的雙系統又被我洗掉了,因此打算來安裝 VM。不過就在此時我同事說或許可以安裝 WSL?
<!--more-->
<p class="illustration">
<img src="https://i.imgur.com/5PJDakX.png" alt="適用於 Linux 的 Windows 子系統">
適用於 Linux 的 Windows 子系統(圖片來源: <a href="https://docs.microsoft.com/zh-tw/windows/wsl/">Microsoft Docs</a>)
</p>
## WSL
WSL 是 Windows Subsystem for Linux 的縮寫,是由 Microsoft 與 Canonical 公司開發的相容 Linux 底層核心的接口,不細究其原理的話,使用上的感覺像是就好像是在 Docker 而且還是把整台電腦所有儲存空間都掛載進去的那種 XDDD
相較傳統 VM 跟 Docker,它不需要額外安裝虛擬機與容器,資源也沒那麼吃緊。這對 Linux 的初學者以及像我這種輕量使用的情境,它算是個超棒的工具。
另外一個對我來說的優點,就是它的終端機是用 Unix 指令,我再也不用擔心記不住 DOS 指令了XDDD
## 在 Windows 安裝 Ubuntu
有 Window 的介面輔助下,安裝起來其實相當方便快速:
1. **用系統管理員身分執行 Windows PowerShell**
在 Win10 中已經有內建 Windows PowerShell,你可以從開始選單旁的搜尋欄輸入 **Windows PowerShell** 找到它,再以系統管理員身分執行它。
<p class="illustration">
<img src="https://i.imgur.com/qNTogRI.png" alt="Windows PowerShell 在開始選單">
</p>
是說 PowerShell 的預設顏色真的有夠醜,字也很小。所以我開啟後的第一件事就是幫它換個顏色,順便把字體調大。
<p class="illustration">
<img src="https://i.imgur.com/wcyaqj0.png" alt="Windows PowerShell">
</p>
應該會注意到,打開 PowerShell 時會上面有一行字:
> Copyright (C) Microsoft Corporation. 著作權所有,並保留一切權利。
> 請嘗試新的跨平台 PowerShell https://aka.ms/pscore6
看起內建的 PowerShell 不是最新版的,雖說不升級不會怎像,但若真的很想弄到這行字的話,可以從 GitHub 下載安裝套件,詳細說明可參考[文件](https://docs.microsoft.com/zh-tw/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.1):
- [v7.2.0 Release of PowerShell](https://github.com/PowerShell/powershell/releases)
<br>
2. **安裝 WSL**
在終端機中輸入下列指令:
```bash=
$ Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
```
<br>
進度條跑完後請按照指令提示重新啟動電腦:
```bash=
是否要立即重新啟動電腦以完成此操作?
> [Y] Yes [N] No [?] Help (default is "Y"):
```
<br>
重啟後,再次啟動 PowerShell,測試是否安裝成功:
```bash=
$ wsl
Windows 子系統 Linux 版沒有任何已安裝的發行版本。
您可以透過瀏覽 Microsoft Store 來安裝各種發行版本:
https://aka.ms/wslstore
如果看到提示訊息代表安裝成功,可以開始來安裝所需要德 Linux 發行。
```
<br>
:::info
🤟 補充 WSL2 安裝方式 → [安裝 WSL2](https://hackmd.io/@CynthiaChuang/Install-Docker-in-WSL2#%E5%AE%89%E8%A3%9D-WSL2)
:::
=========================================
本文作者:辛西亞.Cynthia
本文連結:http://localhost:4000/NVIDIA-Clara-Discovery-Drug-Design/
版權聲明:除非另有標注,部落格中所有文章,均採用 CC BY-NC-SA 4.0 許可協議。 轉載請標明作者、連結與出處!
<br>
3. **安裝 Linux 發行**
在這邊遇到了點小問題,如果我按照剛剛的提示訊息連接到 [https://aka.ms/wslstore](https://aka.ms/wslstore),會被向 Microsoft Store,但卻會得到下列訊息:
```bash=
Wait a while, then try again. Something happened on our end.
```
<br>
所以我改在 Microsoft Store 中直接輸入 **Ubuntu**,不過如果直接輸入搜尋的話,需要注意 WSL 相容問題;或者考以直接使用網友提供的[連結](ms-windows-store://search/?query=WSL),找到與 WSL 相容的 Ubuntu 版本,我這邊選擇了了目前正在使用的 Ubuntu20.04:
<p class="illustration">
<img src="https://i.imgur.com/DP2Ls0Y.png" alt="Ubuntu 20.02">
</p>
## 執行 Ubuntu
在安裝好發行版本之後,就可以準備第一次的啟動,可以在 Microsoft Store 中找到剛剛安裝的 Ubuntu20.04,點擊畫面右上角的「啟動」按鈕。
<p class="illustration">
<img src="https://i.imgur.com/wGNVSc9.png" alt="Ubuntu 20.02 啟動">
</p>
或者你也可以在開始選單中,點擊剛剛安裝的 Ubuntu20.04:
<p class="illustration">
<img src="https://i.imgur.com/Jr6PicO.png" alt="Ubuntu 20.02 啟動2">
</p>
第一次啟動大概會花上幾分鐘的時間進行初始化設定,系統會要求提供 username 與 passward:
<p class="illustration">
<img src="https://i.imgur.com/GMIWpQG.png" alt="Ubuntu">
</p>
<br>
安裝完成後,可以打開 Windows PowerShell,輸入:
```bash=
$ wsl --list
Windows 子系統 Linux 版發布:
Ubuntu-20.04 (預設值)
```
你可以看到已經完成安裝的子系統。
<br>
下次再次執行時,除了從開始選單點擊 Ubuntu20.04 的 icon 外,你也可以在 PowerShell 中輸入:
```bash=
$ wsl
```
## 重設與解除安裝 Ubuntu
如果你再需要使用子系統了,只需要前往「應用程式與功能」把 Ubuntu 解除安裝即可,就像是一般的軟體的解除安裝:
<p class="illustration">
<img src="https://i.imgur.com/CjBhdGB.png" alt="Ubuntu 解除安裝">
</p>
<br>
如果你還想要使用子系統,但嫌環境太髒想要重裝,也可以幫它「回復成出廠預設值」。一樣前往「應用程式與功能」,選擇 Ubuntu,會注意到有一個進階選項。
<p class="illustration">
<img src="https://i.imgur.com/pltdetH.png" alt="Ubuntu 進階選項">
</p>
點選進階選項,找到裡面的重設,如此它就會將整個安裝給清掉了:
<p class="illustration">
<img src="https://i.imgur.com/CjBhdGB.png" alt="Ubuntu 重設">
</p>
用 PowerShell 檢查下,可以發現子系統被清掉了,
```bash=
$ wsl -l --all
Windows 子系統 Linux 版沒有任何已安裝的發行版本。
您可以透過瀏覽 Microsoft Store 來安裝各種發行版本:
https://aka.ms/wslstore
```
接下來只要重複[前一章](#執行-Ubuntu)的執行步驟重來一次就好了。
<br>
另外還有一個方法可以重設,雖然文件中說這叫「取消登錄發布」,但我目前看不出兩者的差異,所以還是稱之為重設吧 XDDD 這個方法就不用去設定了,在 PowerShell 就可以了:
```bash=
$ wsl --unregister Ubuntu20.04
```
## 儲存路徑
在使用時我有兩個問題:
1. 如何在存取 Windows 中的檔案?
2. Home 目錄下的資料又會存在 Windows 中的哪個位置?
<br>
找了下,Windows 的檔案會被掛載在 `/mnt/` 下,例如 D 槽就會被掛載在 `/mnt/d`。Home 目錄中的資料則存在 C 槽的 user 資料中,完整路徑如下:
> C:\Users\%UserName%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\rootfs
不過 `CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc` 這個會依照 Linux 系統版本而有所不同,所以可能要注意找一下。
<br>
在打這段的時候忽然想到,我能不能將 Home 目錄資料放到 D 槽?說道立刻就去查,不過看起來好像不行,因為[文件](https://docs.microsoft.com/zh-tw/windows/wsl/troubleshooting)上提到:「==適用於 Linux 的 Windows 子系統只會在系統磁碟機(通常是 C)上執行==」,因此看來是不能換了。
## 錯誤
為了寫網誌的時候,為了截圖看錯誤訊息,所以我反覆重設又啟動,結果在某次重起的時候就遇到了這個錯誤:
> WslRegisterDistribution failed with error: 0x800700b7
> The distribution installation has become corrupted.
> Please select Reset from App Settings or uninstall and reinstall the app.
> Error: 0x800700b7 ????????????????
不過這問題還滿好處理的了,訊息都寫了,卸掉重裝就好了。
## 後續
執行到現在,其實就已經差不多了,就像是一個 Ubuntu 的 Docker。不過如果在找資料的時候有發現 WSL + Linux GUI 的資料,所以我下次應該會來看看能不能安裝成功,就靜待我的好消息吧 XDDD
## 參考資料
1. Chen Do (2020-06-23)。[【工具】win10 安裝 ubuntu 子系統(WSL) 並安裝圖形化界面](https://www.twblogs.net/a/5ef12eb211be511c3893ecee)。檢自 台部落 (2021-11-05)。
2. 辛比 (2019-07-28)。[[推薦] WSL (Windows Subsystem for Linux) 安裝與使用教學](https://xenby.com/b/226-%E6%8E%A8%E8%96%A6-wsl-windows-subsystem-for-linux-%E5%AE%89%E8%A3%9D%E8%88%87%E4%BD%BF%E7%94%A8%E6%95%99%E5%AD%B8)。檢自 辛比誌 (2021-11-05)。
3. Will 保哥 (2019-02-01)。[介紹好用工具:WSL (Windows Subsystem for Linux)](https://blog.miniasp.com/post/2019/02/01/Useful-tool-WSL-Windows-Subsystem-for-Linux)。檢自 The Will Will Web (2021-11-05)。
4. Craig Loewen/olprod (2021-09-28)。[適用於 Linux 的 Windows 子系統文件](https://docs.microsoft.com/zh-tw/windows/wsl/)。檢自 Microsoft Docs (2021-11-05)。
5. 顧武雄 (2020-05-18)。[Win10內執行Linux程式 實戰WSL子系統安裝](https://www.netadmin.com.tw/netadmin/zh-tw/technology/163029C8DF994FE9BD51678CA04A5B42)。檢自 網管人 (2021-11-05)。
6. 玩轉Win10的MS酋長(2019-03-20)。[Win10重置/註銷Linux子系統教程](https://kknews.cc/zh-tw/code/69yoqnq.html)。檢自 每日頭條 (2021-11-05)。
7. 辛比(2019-07-28)。[[推薦] WSL (Windows Subsystem for Linux) 安裝與使用教學](https://xenby.com/b/226-%E6%8E%A8%E8%96%A6-wsl-windows-subsystem-for-linux-%E5%AE%89%E8%A3%9D%E8%88%87%E4%BD%BF%E7%94%A8%E6%95%99%E5%AD%B8)。檢自 辛比誌 (2021-11-05)。
8. Craig Loewen、olprod、Ticiana Ciminari、Bruce Chen(2021-10-06)。[針對適用於 Linux 的 Windows 子系統進行疑難排解](https://docs.microsoft.com/zh-tw/windows/wsl/troubleshooting)。檢自 Microsoft Docs (2021-11-12)。
## 更新紀錄
:::spoiler 最後更新日期:2022-07-20
- 2022-07-20 更新:附上 WSL2 安裝連結
- 2022-05-06 發布
- 2021-11-09 完稿
- 2021-11-05 起稿
:::
<br><br>
> **本文作者**: 辛西亞.Cynthia
> **本文連結**: [辛西亞的技能樹](https://cynthiachuang.github.io/WSL-Install-and-Use-the-Ubuntu-subsystem-in-Win10/) / [hackmd 版本](https://hackmd.io/@CynthiaChuang/WSL-Install-and-Use-the-Ubuntu-subsystem-in-Win10)
> **版權聲明**: 部落格中所有文章,均採用 [姓名標示-非商業性-相同方式分享 4.0 國際](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.en) (CC BY-NC-SA 4.0) 許可協議。轉載請標明作者、連結與出處!