Linux笔记——Ubuntu子系统从系统盘迁移到非系统盘
安了子系统还没用几天,C盘提示我没空间了。。。剩余0kb的那种。。。Ubuntu安装的时候默认按C盘了,所以还是移走腾点地方出来。
一、子系统迁移
1. 关闭linux子系统
命令行关闭正在运行的虚拟机引擎,查看子系统状态,确保要迁移的子系统STATE处于stopped状态。
// 关闭虚拟机子系统
wsl --shutdown
// 查看已安装系统状态
wsl -l -v
2. 使用move-wsl进行迁移
move-wsl是个方便子系统迁移的小工具
下载地址:CSDN、Github
- 修改系统策略
直接使用move-wsl有可能会遇到系统报错:
无法加载文件 G:\move-wsl-master\move-wsl.ps1,因为在此系统上禁止运行脚本。
这是为了安全起见不让运行.ps1文件,需要修改系统策略
(1)打开终端管理员
(2)输入下面代码修改策略
// 显示当前策略
get-ExecutionPolicy
// 修改策略为
set-ExecutionPolicy RemoteSigned
两种策略解释
等迁移完了记得改回来
- 开始迁移
用管理员权限打开PowerShell,进入move-wsl所在的文件夹,输入命令
// 运行move-wsl脚本文件
.\move-wsl.psl
// 选择要移动的虚拟机编号,我的是2
2
// 输入虚拟机磁盘的新地址
G:\wsl_Ubuntu
// 按y确认操作
Y
稍等片刻就可以迁移成功了,而且C盘的空间会自动释放
- 修改默认用户
迁移完成后,会默认变成root用户登录。打开命令行/PowerShell修改默认用户
ubuntu2004.exe config --default-user username
ubuntu2004.exe是虚拟机子系统对应的可执行文件名,wsl显示的是虚拟机的名字Ubuntu-20.04。如果是Ubuntu,那么这里就是ubuntu.exe;虚拟机的名字是ubuntu-18.04,那这里就是ubuntu1804.exe。
二、 虚拟机子系统瘦身
迁移以后的文件以.vhdx文件存储,这个文件大小会随着使用增长,但是无法自动回收。需要手动回收
// 打开window Diskpart
diskpart
//选择虚拟磁盘文件,路径和文件名最好复制
select vdisk file="G:\wsl_Ubuntu\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit