WSL简介
对于Windows Subsystem for Linux,可以参考Windows Subsystem for Linux (WSL) 原理介紹了解一些基本的背景知识
文件系统的介绍可以参考:
https://blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support/
VolFs is used to mount the VFS root directory, using %LocalAppData%\lxss\rootfs as the backing storage by default.
我们以ubuntu-18.04为例,通过的Microsoft Store中的ubuntu的app只能默认将ubuntu分发安装到系统盘,而且上面提到的using %LocalAppData%lxss\rootfs as the backing storage
,因此这里需要考虑到windows系统分区的影响,/, /root, /home
的可用空间受rootfs
所在Windows分区的限制,目前WSL也没有提供有效的途径让我们可以在其他的Windows分区创建一个VolFs
分区来挂载,因此才有了需要将ubuntu移动到非系统分区的需求。
如何将ubuntu分发移动到非系统盘
想要达到我们这里的目的目前有两种方式:
-
通过LxRunOffline工具直接安装到任意的位置
具体方法可以参考how-to-install-wsl-distros-on-external-disks-1d22 -
通过
wsl.exe --export
和wsl.exe --import
移动已有的分发
在通过控制面板->启用或关闭Windows功能开启适用于Linux的Windows子系统
功能后,在C:\Windows\system32
目录下就有了wsl.exe
了
在以管理员身份运行cmd.exe
打开windows的命令行后,我们以wsl --list --running
可以查看正在运行的wsl分发,wsl --list
是查看所有的分发,最好的做法是通过wsl --terminate <DistritubtionName>
的方式来先关闭相关的分发,以免后续造成不必要的问题。
- 这里的
Ubuntu-18.04
就是DistributionName
,我们通过wsl --export <DistributionName> <FileName>
来导出这个分发 - 执行完后我们再通过
wsl --unregister Ubuntu-18.04
来注销这个分发,以便避免存在重复的分发,当然也可以不这样做,只是下面的命令需要指定一个不同的DistributionName - 然后通过
wsl --import <DistributionName> <InstallLocation> <FileName>
来导入之前export完的分发
如何配置wsl -import
后的实例,默认以非root账户启动
在注册表中找到HKEY_USERS\xxx\Software\Microsoft\Windows\CurrentVersion\Lxss
通过修改Lxss下的实例配置中的
DefaultUid
的值来修改wsl默认的用户图片.png
可用的目标值可以通过在wsl中运行
cat /etc/passwd
获取,我这里用的是1000
图片.png
通过右键
DefaultUid
->修改,会弹出如下的对话框图片.png
这里需要注意进制问题,
1000
对应的16进制数是3e8
Windows terminal相关的配置
{
"globals" :
{
"alwaysShowTabs" : true,
"defaultProfile" : "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",//我们把这里修改成下面对应WSL配置中的guid的值,让windows terminal默认启动wsl,而不是cmd或者powershell
"initialCols" : 120,
"initialRows" : 30,
"keybindings" :
[
...
],
"requestedTheme" : "system",
"showTabsInTitlebar" : true,
"showTerminalTitleInTitlebar" : true
},
"profiles" :
[
...,
{
"acrylicOpacity" : 0.5,
"closeOnExit" : true,
"colorScheme" : "Campbell",
"commandline" : "wsl.exe -d Ubuntu-18.04",
"cursorColor" : "#FFFFFF",
"cursorShape" : "bar",
"fontFace" : "Consolas",
"fontSize" : 10,
"guid" : "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
"historySize" : 9001,
"icon" : "ms-appx:///ProfileIcons/{9acb9455-ca41-5af7-950f-6bca1bc9722f}.png",
"name" : "Ubuntu-18.04",
"padding" : "0, 0, 0, 0",
"snapOnInput" : true,
"startingDirectory":"//wsl$/Ubuntu-18.04/home/ubuntu",// 这里指定wsl启动后,默认的目录位置
"useAcrylic" : false
}
],
"schemes" :
[
...
]
}
网友评论