Windows 11 的 WSL2 提供了各種 Linux 環境,還支援 GUI 程式。但是你只會從 Microsoft Store 安裝 Linux distro 嗎?使用 VMware 或 VirtualBox 可以安裝多個同版本的 Linux 根據不同的使用情境客製化,那 WSL 呢?當然可以。善用 import 與 export 指令就能做到一樣的事情。
使用 Microsoft Store 選擇一個自己喜歡的 Linux distro (例如 Ubuntu 24.04 LTS)安裝當然很方便。但是有時候同一個環境安裝了同一種套件的不同版本包裝,可能會對開發造成一些綁手綁腳的影響。如果能像 VMware 或 VirtualBox 一樣跑多個虛擬機多方便?WSL 當然可以。但是需要透過終端機的文字模式來達成。
首先要知道,WSL 有個指令就叫 wsl。你打開一個終端機(cmd or PowerShell 都可以)輸入
wsl --help
就可以看到完整的幫助說明。這裡主要介紹 export 與 import 這兩個參數。
EXPORT
wsl --export <Distro Name> <Filename> [Option]
[Option]
--format <Format>
<Format> 支援 tar, tar.gz, vhd
例如說,我從 Microsoft Store 安裝了 Ubuntu 24.04 LTS。接著打開一個終端機,輸入
PS C:\Users\user> wsl --list
Windows Subsystem for Linux Distributions:
Ubuntu-24.04 (Default)
wsl –list 會列出目前系統已經安裝的 distro。可以看到目前安裝了一份 distro,名字叫做 Ubuntu-24.04。現在可以用 export 來備份這一份 distro。export 輸出的格式支援 tar,tar.gz 與 vhd。
wsl --export Ubuntu-24.04 C:\Users\user\Ubuntu-24.04-rootfs.tar
wsl --export Ubuntu-24.04 C:\Users\user\Ubuntu-24.04-rootfs.tar.gz --format tar.gz
wsl --export Ubuntu-24.04 C:\Users\user\Ubuntu-24.04-rootfs.vhdx --format vhd
IMPORT
使用 export 備份一份 distro 之後,就可以利用 import 來建立一份 distro。
wsl --import <Distro name> <Installation location> <FileName>
利用 import 指令建立 distro 的時候,可以自己命名。如此一來可以根據應用環境需求來命名。例如
wsl --import OpenCTI C:\Users\user\CustomWSL\OpenCTI C:\Users\user\Ubuntu-24.04-rootfs.tar.gz
也支援直接匯入 vhd
wsl --import OpenCTI C:\Users\user\CustomWSL\OpenCTI C:\Users\user\Ubuntu-24.04-rootfs.vhdx --vhd