add by zhj: 對原文略有修改
原文:https://blog.csdn.net/zhys2007/article/details/110958577
作者:zhys2007
WSL是Windows下的Linux子系統,可以代替虛擬機來運行Linux系統,佔用資源少,使用方便,下面說一下如何對已發佈子系統進行遷移。一種情況是針對同一個系統,更換安裝的位置;另一種情況跟換機器或重裝系統後的遷移。
網上查了基本都是使用LxRunOffline.exe工具,進入 Github 下載ZIP包,其實只用wsl命令也可以實現。
在Windows的PowerShell中輸入:
wsl --help
可以看到關於這個命令的使用幫助說明:
用法: wsl.exe [參數] [選項...] [命令行] 用於運行 Linux 二進制文件的參數: 如果未提供命令行,wsl.exe 將啓動默認的 shell。 --exec, -e <命令行> 執行指定的命令而不使用默認的 Linux shell。 -- 按原樣傳遞剩餘的命令行。 選項: --distribution, -d <分發版> 運行指定的分發。 --user, -u <用戶名> 以指定用戶身份運行。 用於管理適用於 Linux 的 Windows 子系統的參數: --export <分發版> <文件名> 將分發導出到 tar 文件。 對於標準輸出,文件名可以是 -。 --import <分發版> <安裝位置> <文件名> [選項] 將指定的 tar 文件作爲新分發進行導入。 對於標準輸入,文件名可以是 -。 選項: --version <版本> 指定用於新分發的版本。 --list, -l [選項] 列出分發。 選項: --all 列出所有分發,包括當前正在 安裝或卸載的分發。 --running 只列出當前正在運行的分發。 --quiet, -q 只顯示分發名稱。 --verbose, -v 顯示有關所有分發的詳細信息。 --set-default, -s <分發版> 將分發設置爲默認值。 --set-default-version <版本> 更改新分發的默認安裝版本。 --set-version <分發版> <版本> 更改指定分發的版本。 --shutdown 立即終止所有正在運行的分發和 WSL 2 輕型工具虛擬機。 --terminate, -t <分發版> 終止指定的分發。 --unregister <分發版> 註銷分發。 --help 顯示用法信息。
這裏我們使用到export 、unregister和import幾個選項就可以實現遷移。
1、終止正在運行的分發或虛擬機:
wsl --shutdown
2、對需要遷移的分發或虛擬機導出(我安裝的版本是Ubuntu-20.04):
wsl --export Ubuntu-20.04 D:\wsl-Ubuntu-20.04.tar
3、導入新的分發版或虛擬機,import時distribution名稱可以自已隨便定義,這裏名稱爲Ubuntu-20.04。D:\wsl\Ubuntu2004是import後數據
存儲目錄,建議提前創建好。
wsl --import Ubuntu-20.04 D:\wsl\Ubuntu2004 D:\wsl-Ubuntu-20.04.tar --version 2
最後的選項“--version 2”可以省略,則採用默認版本導入。如果導出的是WSL2,而這裏設置的是“--version 1”,還可以將其版本降爲WSL1,這樣就實現了子系統的遷移 ,注意文件存放的路徑一定不能錯。
4. 進入分發
如果分發沒有啓動,會立即啓動。如果沒有指定-u,會以root用戶登錄
wsl -d Ubuntu-20.04 -u <用戶名>
————————————————
版權聲明:本文爲博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
原文鏈接:https://blog.csdn.net/zhys2007/article/details/110958577