起因
WSL 默认只能安装在 Windows C 盘,而且 WSL 占用的空间只会增加不会减少,加之家里的 Dell 台式机 C 盘只有 105G,空间随时处于消耗殆尽的状态。
而最近正好在做 Rasa 语言模型训练,模型占用空间巨大,我一直没敢在这个台式机上搭建开发环境。
可是,我的笔记本虽然空间足够,AMD CPU 却是个短板,每次训练时间比台式机能慢个四五倍,且发热严重,在大夏天非常燥。加之 Python 的不环保特性,开几个服务 CPU 风扇就嗷嗷叫。开发效率极低,且影响心情。
不得已只能把开发环境挪到台式机上。
入手一块 SSD
今年 SSD 价格真是白菜价,于是在京东上下单了一个京东京造的 480G SATA3 SSD,才 120 元。唯一的不足是没有送螺丝,我也没固定,直接放在光驱那个架子上了。
本来第一计划是用这块新 SSD,替换掉现有的 C 盘,但是担心迁移出问题,而我又懒得折腾,不想重装系统。加之我同事都说 SATA3 SSD 只能算是玩具,速度不行,对我打击很大。。。
在确认了可以将 WSL 迁移到非系统盘之后,干脆继续使用原有的小空间 M.2 PCIe4 SSD 作为 C 盘,只需要将 WSL 迁移至新 SSD。这样就不再有 C 盘空间焦虑了。
WSL 迁移工具 LxRunOffline
参考这里的教程:
https://learnku.com/articles/46234
到 github 上下载工具:
https://github.com/DDoSolitary/LxRunOffline
我没有执行授权操作那步,直接进行迁移了.
首先需要关闭 WSL:
> .\LxRunOffline move -n Ubuntu-18.04 -d E:\apps\wsl\Ubuntu-18.04
[ERROR] The distro "Ubuntu-18.04" has running processes and can't be operated. "wsl -t <name>" or "wsl --shutdown" might help.
> wsl --shutdown
但是执行报错:
> .\LxRunOffline move -n Ubuntu-18.04 -d E:\apps\wsl\Ubuntu-18.04
[ERROR] Couldn't set the case sensitive attribute of the directory "\\?\C:\Users\壹一\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\".
Reason: Indicates that the directory trying to be deleted is not empty.
参考 github issue :
https://github.com/DDoSolitary/LxRunOffline/issues/159
去里面下载最新的 bug fix 包,真是折腾,然后再次执行就能成功了。
耗时
我这大概 20G 的 WSL 迁移了半个小时。
迁移后的 C 盘空间
这下我 Dell 台式机又能再战 10 年了。。。
$ df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 448G 23G 425G 6% /
none 448G 23G 425G 6% /dev
none 448G 23G 425G 6% /run
none 448G 23G 425G 6% /run/lock
none 448G 23G 425G 6% /run/shm
none 448G 23G 425G 6% /run/user
tmpfs 448G 23G 425G 6% /sys/fs/cgroup
C:\ 106G 54G 52G 52% /mnt/c
D:\ 932G 278G 654G 30% /mnt/d
E:\ 448G 23G 425G 6% /mnt/e
测试了一下基本命令,及文本写入,都没有问题。
错误信息
忽略即可:
> .\LxRunOffline.exe list
[ERROR] Couldn't get the value "DistributionName" of the registry key "Software\Microsoft\Windows\CurrentVersion\Lxss\TryStoreWSL".
Reason: 系统找不到指定的文件。
迁移中的警告信息:
[WARNING] Ignoring an unsupported file "\\?\C:\Users\壹一\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\tmp\nvimPSGDe4\0" of type 0140000.
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式