前言

我一直以為正在使用的 windows 電腦只有 128G 的 SSD。工作一年多以來,發現空間嚴重不足,實在是撐不下去了。本來想換 Mac,但覺得太貴,想說先升級硬體看看,沒想到居然解鎖了 1T 的 HDD 硬碟!!

原來,門市人員跟我說,我的硬碟被鎖起來了,所以電腦上才看不到。解鎖步驟也意外簡單,就是按右鍵解鎖而已,真的很奇葩。所以,當下我簡單換了電池 ( NTD 3500 ) + 記憶體 ( 16 GB | NTD 2000 ),SSD 等我備份完畢再來換,目前詢價是 480 GB,2500,也是很特別的規格 🤔。

因為 SSD 容量真的太小了,所以我打算 把整個 WSL2 和 Docker 搬到 HDD 裡面。雖然可能會跑比較慢,但也許是目前折衷最好的辦法。

WSL2 搬移

Terminal 使用 Window PowerShell

  1. 查看 wsl 版本: wsl -l --all -v

    檢查 WSL 版本

  2. 將系統資料匯出,把整個 WSL2 系統 + 資料匯出成壓縮檔: wsl --export Ubuntu-22.04 D:\wsl-ubuntu22.04.tar

  3. 取消目前正在使用的 WSL2: wsl --unregister Ubuntu-22.04

    取消目前正在使用的 WSL

  4. 重新導入,並安裝 WSL2 在 D:\Ubuntu-22.04 ( 資料夾名稱可以自己設定 ): wsl --import Ubuntu-22.04 D:\Ubuntu-22.04 D:\wsl-ubuntu22.04.tar --version 2

    • <Ubuntu-22.04>: 要導入的 Linux 版本
    • <D:\Ubuntu-22.04>: 要導入的資料夾
    • <D:\wsl-ubuntu22.04.tar> –version 2: 使用的壓縮案

    解壓縮,重新導入 WSL2

  5. 移轉到 D 槽的 WSL2 預設是用 root 開啟,改成用 david 使用者開啟: ubuntu2204 config --default-user david

    • 發生錯誤: 無法將磁片 ‘D:\wsl-ubuntu22.04\ext4.vhdx’ 連結到 WSL2: 程序無法存取檔案,因為檔案正由另一個程序使用。 ( 可能是 docker desktop 還連著 WSL2 系統 )

    • wsl --shutdown 仍然無效

    • 重開機機: 再次輸入 ubuntu2204 config --default-user david 即可。

      切換 WSL2 使用者

Docker Desktop 搬移

基本上跟 WSL2 的搬移是一樣的,要在 Windows 的系統上跑 Docker,一定要有 WSL,不然就是要灌雙系統。所以我也一起把 Docker 跟 Docker 的資料搬到 D 槽中。

  1. 將 Docker 跟 Docker 資料匯出

    • wsl --export docker-desktop-data D:\docker-desktop-data.tar
    • wsl --export docker-desktop D:\docker-desktop.tar

    匯出 Docker 跟 Docker 資料

  2. 取消註冊 Docker 跟 Docker 資料

    • wsl --unregister docker-desktop-data
    • wsl --unregister docker-desktop

    取消註冊 Docker

  3. 重新導入並安裝 Docker 在 D:\docker-desktop-data、D:\docker-desktop

    • wsl --import docker-desktop-data D:\docker-desktop-data D:\docker-desktop-data.tar
    • wsl --import docker-desktop D:\docker-desktop D:\docker-desktop.tar

    重新導入並安裝 Docker

要用 Windows 還是 Linux 版本?

之前還搞不太懂, Windows 跟 WSL2 都裝了一樣的工具,導致 SSD 大爆炸。但好在有這個經驗,讓我不斷刪掉不必要的檔案,才知道如果用了 WSL2,很多工具大部分是用 Linux 版本即可。

使用 Linux 版本:

  • google cloud sdk
  • MySQL
  • PostgreSQL
  • Node.js
  • Git

使用 Windows 版本:

  • Docker Desktop

後記

後來才發現,Docker Desktop 跟 Docker 的資料真的很大,難怪 SSD 一下就被撐滿了。

  • WSL2: 7.48 GB
  • Docker Desktop: 54.7 MB
  • Docker Desktop Data: 37.9 GB

WSL 和 Docker 容量