Linux笔记——Ubuntu子系统从系统盘迁移到非系统盘
- 一、子系统迁移
- 1. 关闭linux子系统
- 2. 使用move-wsl进行迁移
- 二、 虚拟机子系统瘦身
安了子系统还没用几天,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
两种策略解释
RemoteSigned | Restricted |
---|---|
Windows Server 计算机的默认执行策略,脚本可以运行。需要受信任的发布者对从 Internet 下载的脚本和配置文件(包括电子邮件和即时消息程序)的数字签名。不需要在本地计算机上编写且未从 Internet 下载的脚本上使用数字签名。如果未阻止脚本(例如使用 cmdlet),则运行从 Internet 下载且未签名的 Unblock-File 脚本。运行来自 Internet 以外的源的未签名脚本以及可能是恶意的已签名脚本的风险。 | Windows 客户端计算机的默认执行策略。允许单个命令,但不允许脚本。阻止运行所有脚本文件,包括格式化和配置文件 () .ps1xml 、模块脚本文件 (.psm1) ,以及 PowerShell 配置文件 () .ps1 |
等迁移完了记得改回来
- 开始迁移
用管理员权限打开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