From: 011netservice@gmail.com Date: 2025-06-14 Subject: WSL (Windows Subsystem for Linux 2) https://svc.011.idv.tw/CodeHelper/Windows/WSL.txt 歡迎來信交流, 訂購軟體需求. #### WSL 限制 和 用途, 20250614 WSL(Windows Subsystem for Linux)常見限制: 系統層級限制 1. **硬體存取限制**: - **WSL 1** 無法使用 GPU。 - **WSL 2** 支援部分 GPU 功能(如 CUDA),但需特定驅動與設定。 - USB 裝置(如 Arduino)無法直接存取,WSL 2 有部分支援但仍有限。 2. **核心模組限制**: - 無法自行載入 Linux 核心模組(如某些防火牆模組)。 3. **系統服務限制**: - WSL 2 現已支援 `systemd`,但需手動啟用。 - 無法完整模擬 Linux 的 init 系統,某些服務需手動啟動。 軟體相容性限制 1. **某些應用程式無法執行**: - 依賴完整 Linux 系統的應用(如 Docker daemon)需額外設定。 - GUI 應用需透過 WSLg(Windows 11)或 X Server(Windows 10)執行。 2. **網路限制**: - WSL 2 使用虛擬網路,與主機之間的連線需額外設定(如 port forwarding)。 - WSL 1 與主機共用 IP,但功能較少。 效能與資源限制 1. **資源分配**: - WSL 2 預設會動態分配 CPU 與記憶體,可透過 `.wslconfig` 設定上限。 - 跨系統(Windows ↔ Linux)檔案存取速度較慢。 2. **啟動速度**: - WSL 2 因為是完整虛擬機,啟動速度比 WSL 1 慢。 安全性限制 - WSL 執行於使用者空間,權限受限。 - 雖然可以使用 `sudo`,但仍無法模擬某些真正的 root 行為(例如修改核心設定)。 可以使用 WSL(Windows Subsystem for Linux)進行非常多樣化的開發工作, 幾乎涵蓋大多數在 Linux 環境下能做的開發任務。 以下是一些常見的開發類型與 WSL 的應用: 1. **Web 開發** - 使用 Node.js、Python(Flask/Django)、Ruby on Rails 等框架。 - 可搭配 VS Code 的 Remote - WSL 插件進行無縫開發。 - 可安裝 Nginx、MySQL、PostgreSQL 等伺服器與資料庫。 2. **前端開發** - 使用 npm、yarn、webpack、Vite 等工具。 - 可在 WSL 中安裝 Chrome/Firefox 並透過 WSLg 或 X Server 測試 GUI。 3. **後端開發** - 支援 Java(Spring Boot)、Go、Rust、C++ 等語言。 - 可模擬 Linux 環境部署流程,與實際伺服器一致。 4. **資料科學與機器學習** - 安裝 Python、Jupyter Notebook、Pandas、NumPy、TensorFlow、PyTorch 等。 - WSL 2 支援 GPU 加速(需 Windows 11 + NVIDIA CUDA 驅動)。 5. **DevOps / 自動化** - 使用 Docker(需安裝 Docker Desktop 並整合 WSL 2)。 - 使用 Ansible、Terraform、Kubernetes CLI 等工具。 - 撰寫 Shell Script、CI/CD 腳本。 6. **嵌入式開發** - 可交叉編譯 C/C++ 程式碼。 - 搭配 USB/IP 工具可有限度地連接開發板(如 Raspberry Pi)。 7. **區塊鏈開發** - 安裝 Ethereum、Solidity、Hardhat、Truffle 等工具。 - 模擬節點、部署智能合約。 開發工具整合 - **VS Code**:透過 Remote - WSL 插件直接在 Linux 環境中編輯與執行程式。 - **Git**:可直接使用 Linux Git CLI,與 GitHub/GitLab 整合。 - **Zsh / Oh My Zsh / tmux**:打造高效的終端機開發環境。 #### 重設 WSL Ubuntu 使用者密碼, 20250614 1. 使用 `wsl.exe` 以 root 身份啟動並重設密碼 wsl -u root 這會以 root 使用者身份啟動 WSL,不需要密碼。 2. **重設你的使用者密碼** passwd yourusername 系統會提示你輸入新密碼,並確認一次。 3. 退出 root,回到原本使用者 輸入 `exit` 離開 root,然後重新啟動 WSL 即可。 將預設使用者設回原本帳號(如果你曾經改成 root) 如果你曾經修改預設使用者為 root,可以用以下指令改回來(以 Ubuntu 為例): untu config --default-user yourusername #### wsl 安裝 Ubuntu-22.04, 20250614 wsl --install -d Ubuntu-22.04 lsb_release -a | 查詢版本 #### wsl 刪除舊版的 ubuntu, 20250614 你可以透過以下步驟在 Windows 中刪除 WSL 的舊版 Ubuntu 發行版: --- ### 🧹 步驟:刪除 WSL 中的舊 Ubuntu 發行版 #### 1. **列出所有已安裝的 WSL 發行版** 在 PowerShell 或 CMD 中執行: ```powershell wsl --list --verbose ``` 你會看到類似這樣的輸出: ``` NAME STATE VERSION * Ubuntu-22.04 Running 2 Ubuntu-20.04 Stopped 2 ``` #### 2. **卸載指定的 Ubuntu 發行版** 假設你要刪除 `Ubuntu-20.04`,請執行: ```powershell wsl --unregister Ubuntu-20.04 ``` 這個指令會**永久刪除該發行版的所有資料**,請務必先備份重要檔案。 --- ### 📦 備份資料(可選) 如果你想先備份舊版 Ubuntu 的資料,可以在 WSL 中執行: ```bash tar -czvf ubuntu-backup.tar.gz ~/ ``` 然後將備份檔案移到 Windows 的某個資料夾,例如: ```bash mv ubuntu-backup.tar.gz /mnt/c/Users/你的帳號/Desktop/ #### 以下確認後移到上方 #### wsl 升級 ubuntu 版本 怎麼做 ? 本次因為舊版不重要 直接更新 wsl --install -d Ubuntu-22.04 以下參考: 在 WSL 中升級 Ubuntu 版本(例如從 20.04 升級到 22.04),可以透過以下步驟完成。不過請注意:**升級前請務必備份重要資料**,因為升級過程可能會導致系統不穩定或失敗。 --- ### 🧭 步驟一:確認目前版本 ```bash lsb_release -a ``` --- ### 🧹 步驟二:更新現有套件 ```bash sudo apt update sudo apt upgrade -y sudo apt dist-upgrade -y sudo apt autoremove -y ``` --- ### 🛠 步驟三:安裝升級工具 ```bash sudo apt install update-manager-core ``` 確認 `/etc/update-manager/release-upgrades` 中的 `Prompt` 設為 `normal`: ```bash sudo nano /etc/update-manager/release-upgrades ``` 將這一行改為: ``` Prompt=normal ``` --- ### 🚀 步驟四:執行升級 ```bash sudo do-release-upgrade ``` > ⚠️ 注意:在 WSL 中執行 `do-release-upgrade` 有時會出現 systemd 或 init 系統相關錯誤,因為 WSL 沒有完整的 Linux 系統架構。建議使用 **新的 Ubuntu 發行版安裝** 方式會更穩定(見下方替代方案)。 --- ### 🧭 替代方案(推薦):安裝新版 Ubuntu 並遷移資料 1. 在 PowerShell 中安裝新版 Ubuntu(例如 22.04): ```powershell wsl --install -d Ubuntu-22.04 ``` 2. 啟動新版本的 Ubuntu,建立新帳號 3. 從舊版本中將資料複製過來(例如使用 `tar` 或 `rsync`) --- ### 📦 備份與還原資料(可選) #### 備份: ```bash tar -czvf ubuntu-backup.tar.gz ~/ ``` #### 還原: ```bash tar -xzvf ubuntu-backup.tar.gz -C ~/ ``` --- 你想升級到哪一個版本?我可以幫你查查是否支援,或幫你寫一個自動備份與升級腳本。 #### QA, Windows 啟用 WSL (Windows Subsystem for Linux 2) 和虛擬機平台, 20250614 執行環境: 1. Windows 10/11 Pro、Enterprise 或 Education (需支援 Hyper-V 和 WSL2) 2. 已啟用 Windows Virtual Machine Platform 啟用 WSL2 (Windows Subsystem for Linux 2) dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 下載並安裝 WSL2 核心更新 Invoke-WebRequest -Uri https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi -OutFile "$env:USERPROFILE\Downloads\wsl_update_x64.msi" Start-Process "$env:USERPROFILE\Downloads\wsl_update_x64.msi" 設定 WSL2 為預設版本 wsl --set-default-version 2 重新啟動 Windows (選項)