原因:一開始裝WSL的時候放在了C盤,這下好了,跑了幾個深度學習模型訓練后,C盤快滿了,這可怎么辦?可愁壞了。
沒關系,山人自有妙計。我們將WSL遷移到D盤或者E盤呀。
一.遷移操作步驟
前期準備:
a.確認WSL發行版名稱:
wsl -l -v
輸出示例:Ubuntu-22.04 Running 2
?記錄您的發行版名稱
b.用戶名驗證:
若忘記Linux用戶名,在備份前檢查:
# 在原始WSL中執行 echo $USER
這里我的用戶名是:fzyz123,你需要替換成你自己的用戶名
🛠 遷移操作流程(經實測驗證)
步驟1:完全關閉WSL(powershell)
wsl --shutdown
步驟2:創建完整備份(必須步驟)
# 替換"Ubuntu-22.04"為您的發行版名稱
wsl --export Ubuntu-22.04 D:\wsl_backup\ubuntu_backup.tar
步驟3:注銷當前發行版
wsl --unregister Ubuntu-22.04
此時C盤空間應立即釋放(檢查磁盤空間變化)
步驟4:遷移到新位置
wsl --import Ubuntu-22.04 D:\wsl\ubuntu D:\wsl_backup\ubuntu_backup.tar --version 2
參數說明:
Ubuntu-22.04
:您的發行版名稱D:\wsl\ubuntu
:新創建的目標目錄(建議空目錄)--version 2
:強制使用WSL2(必須指定)
步驟5:設置默認用戶(最關鍵步驟)
# 創建配置文件(替換YourUsername為您的Linux用戶名)
@"
[user]
default=YourUsername
"@ | Out-File -FilePath D:\wsl\ubuntu\etc\wsl.conf -Encoding utf8
步驟6:驗證遷移
wsl -d Ubuntu-22.04
# 在WSL內驗證:
whoami # 應顯示您的用戶名
df -h # 檢查掛載點是否正常
🔄 備選方案(當主方案遇阻時)
若步驟5不生效,使用注冊表修改法:
# 獲取發行版UUID
wsl -d Ubuntu-22.04 --exec sh -c "echo \$WSL_DISTRO_NAME"# 修改注冊表(替換[UUID]為實際值)
Set-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss\[UUID]" DefaultUid 0x3E8
?🚀 完整修正版遷移流程如下:
注意替換成你自己的用戶名。
# 1. 關閉WSL
wsl --shutdown# 2. 正確備份 (注意:無額外參數)
wsl --export Ubuntu-22.04 D:\wsl_backup\fzyz123_backup.tar# 3. 驗證備份 (文件應存在且>1GB)
$backup = Get-Item D:\wsl_backup\fzyz123_backup.tar
"備份文件大小: {0:N2} GB" -f ($backup.Length/1GB)# 4. 注銷原發行版
wsl --unregister Ubuntu-22.04# 5. 遷移到D盤
wsl --import Ubuntu-22.04 D:\wsl_env\fzyz123 D:\wsl_backup\fzyz123_backup.tar --version 2# 6. 設置用戶 (使用您的用戶名fzyz123)
@"
[user]
default=fzyz123
"@ | Out-File -FilePath D:\wsl_env\fzyz123\etc\wsl.conf -Encoding utf8# 7. 啟動驗證
wsl -d Ubuntu-22.04 -e echo "遷移成功! 當前用戶: $(whoami)"
二.conda不可用問題
🚨 針對深度學習的特殊檢查
遷移后務必驗證訓練環境:
# 在WSL內執行:
# 1. 檢查CUDA
python -c "import torch; print(f'PyTorch {torch.__version__}, CUDA: {torch.cuda.is_available()}')"# 2. 檢查存儲掛載
df -h | grep -E 'Filesystem|/mnt/d'# 3. 驗證用戶環境變量
echo $PATH
conda info --envs # 或 pip list
這里如果出現問題,多半是Conda 環境問題。很可能是由于遷移導致的路徑變化或環境變量丟失造成的。如果驗證發現conda不可用,那么我們需要正確的配置conda路徑,即可。
🔧 Conda 環境恢復方案(針對遷移后問題)
步驟1:定位 Conda 安裝位置
# 查找 conda 安裝路徑
find ~ -name "conda" -type f 2>/dev/null# 典型位置可能是:
# /home/fzyz123/miniconda3/bin/conda
# /home/fzyz123/anaconda3/bin/conda
步驟2:將 Conda 添加到 PATH
# 編輯 bashrc 文件
nano ~/.bashrc# 在文件末尾添加(根據您的實際路徑修改)
export PATH="/home/fzyz123/miniconda3/bin:$PATH"# 保存后加載配置
source ~/.bashrc
步驟3:重新初始化 Conda
# 初始化 conda
conda init bash# 關閉并重新打開終端
exit
重新登錄 WSL
📊 環境恢復檢查清單
步驟 | 命令 | 期望結果 |
---|---|---|
Conda 路徑 | which conda | /home/fzyz123/miniconda3/bin/conda |
環境列表 | conda env list | 顯示您的所有環境 |
環境激活 | conda activate your_env | 提示符變化?(your_env) fzyz123@AI0001 |
Python 路徑 | which python | ~/miniconda3/envs/your_env/bin/python |
CUDA 可用性 | python -c "import torch; print(torch.cuda.is_available())" | True |
三.數據集路徑優化
作為深度學習工程師,數據集路徑優化是提高工作效率和系統性能的關鍵。
為什么需要優化數據集路徑?
空間管理:C盤空間有限(300GB),D/E盤空間充足
性能考量:WSL訪問Windows分區(
/mnt/
)比內部文件系統慢工作流效率:統一路徑減少配置錯誤
數據安全:避免誤刪關鍵數據
優化方案(針對您的Windows+WSL環境)
1. 最佳存儲位置選擇
2. 環境變量配置(核心優化)
在~/.bashrc
中添加:
# 數據集根目錄
export DATASET_ROOT="/mnt/d/datasets"# 框架特定緩存路徑
export TORCH_HOME="$DATASET_ROOT/torch_cache"
export TFDS_DATA_DIR="$DATASET_ROOT/tfds"
export HF_DATASETS_CACHE="$DATASET_ROOT/huggingface"# 臨時數據集路徑
export TEMP_DATASET_DIR="~/.cache/datasets"
3.符號鏈接優化(解決兼容性問題)
對于必須使用特定路徑的工具:
# 創建符號鏈接
ln -s /mnt/d/datasets ~/datasets
ln -s /mnt/d/checkpoints ~/checkpoints# Windows端等效命令(管理員權限)
mklink /J "C:\Users\zongh\datasets" "D:\datasets"
以上,這期的內容就到這里結束了,希望能夠幫到大家。
碼字不易,動動你的小手,點贊收藏關注吧。