wsl ubunt迁移到指定盘符
wsl Ubuntu迁移
由于windows11上的linux子系统默认安装在C盘,且默认空间最大只有256GB,不仅占用了大量C盘的空间,而且在编译例如Android12等时,会因为空间不足导致编译无法通过,而网上对该部分的介绍有所欠缺,故对本人迁移的迁移过程做一个记录
wsl linux子系统安装
这部分的内容网上比较多,就不做介绍了,可以自行百度;
wsl linux子系统迁移
首先,以管理员权限运行Windows PowerShell,然后输入wsl -l
指令可以查看已安装且可供使用的 Linux 分发版
然后输入wsl --shutdown
指令终止所有运行的分发及 WSL 轻型工具虚拟机
接下来对当前Ubuntu子系统进行导出,输入如下命令,将Linux分发版Ubuntu-20.04导出到G盘,分发版名称即为wsl -l
时所看到的子系统分发版名称
wsl --export Ubuntu-20.04 G:\Ubuntu-20.04.tar
例如本次计划将该分发版本迁移到G:\Ubuntu20.04目录下,目前网上绝大部分都是告诉我们卸载分发版本,然后导入之前导出的分发版本即可,但是这样会面临在Windows PowerShell中ubuntu2004失效的问题。
解决步骤如下:
先不要卸载分发版本,通过应用商店安装的Ubuntu默认在C:\Program Files\WindowsApps目录下,在Windows PowerShell中切换到该目录后,输入如下指令:
dir CanonicalGroupLimited*
可以显示当前相关的目录如下所示:
一般我们需要的文件在最后一个文件夹内,输入cp .\CanonicalGroupLimited.Ubuntu20.04LTS_2004.4.5.0_x64__79rhkp1fndgsc\* G:\Ubuntu20.04
将其中的内容拷贝到迁移的目标目录(如本次目标G:\Ubuntu20.04目录),上述步骤不要用Windows的图形化节目操作,会遇到权限问题。
完成上述步骤后,可以卸载之前的Linux分发版,输入如下命令:
wsl --unregister Ubuntu-20.04
然后将之前的安装卸载掉,如下图所示
然后倒入之前导出的分发版到目的目录,命令如下(wsl 导入指令格式wsl --import <Linux分发版名称> <安装位置> <文件名>):
wsl --import Ubuntu-20.04 G:\Ubuntu20.04 G:\Ubuntu-20.04.tar
完成上述步骤后即完成了将Linux分发版本Ubuntu20.04迁移到G:\Ubuntu20.04目录下的工作。
最后,为了方便启动该分发版本,选择迁移目录下的ubuntu2004.exe,然后右键–固定到“开始”屏幕,即可在应用菜单以及Windows搜索栏中找到该分发版本并快速启动;
wsl 用户配置
在安装wsl linux分发版时,系统会让我们输入用户名和密码,但是此时创建的用户名和密码是root账户,对于系统的规范操作,git的版本管理等都会带来麻烦,通常我们只普通用户下进行日常的工作,在需要时切换为root账户;此时点击ubuntu2004,启动linux子系统直
然后输入sudo passwd root
命令,设置root账户密码,默认情况下root账户无密码导致无法切换到root账户;
设置完root账户密码后,输入su root
命令后切换为root账户,如果想将之前安装时输入的用户名作为普通用户,可以直接删除该用户及其在home目录,则输入如下命令deluser --remove-home xxxxx
,如果只是删除该用户,可以输入deluser newuser
,然后新建用户输入如下指令adduser newuser
,照着提示完成操作,即可完成普通用户的建立,然后关闭当前窗口,接下来打开Windows PowerShell,设置Linux分发版的默认登录账户为新建的普通账户,例如新建普通用户nongchaoer,迁移后的目录为G:\Ubuntu20.04,输入如下命令即可设置linux子系统的默认登录账户为普通用户nongchaoer:
G:\Ubuntu20.04\ubuntu2004.exe config --default-user nongchaoer
然后点击ubuntu2004的快捷启动图标,启动后节目如下图所示,显示登录账户为nongchaoer:
ssh连接wls linux子系统
由于linux子系统每次启动ip地址都会发生改变,而我们常用的xshell也不是很方便,这里推荐使用最新版的mobaxterm,其在新建回话时可以直接新建wsl会话,如下图所示:
其配置也非常简单,只需要选择wsl回话,然后在分发版本中选择Ubuntu-20.04,然后点击ok按钮即可
然后点击WSL-Ubuntu-20.04即可连接wsl中的linux分发版本,如下图所示:
vscode连接wls linux子系统
打开vscode后,进入扩展插件市场,然后安装Remote-WSL插件,如下图所示:
安装完成后,点击远程资源管理按钮,进入远程资源管理列表,在远程资源管理器列表选项中选择WSL Targets,既可以看到已安装的wsl Linux分发版本已连接,如下图所示:
然后从菜单栏打开文件夹或者从快捷选项中打开文件即可对wsl linux分发版本进行操作,更多操作请上网查找vscode用法。