Move WSL (Bash on Windows) root filesystem to another hard drive?
我刚刚将笔记本电脑中的Windows 10升级到Redstone1。因此,我对Linux子系统(又名Windows上的WSL,LXSS或Bash)进行了测试。基本上,一切都很好,但是存在一个问题,即WSL的RootFS位于
还有另一个问题。由于其他硬盘驱动器分区是作为DriveFS挂载的,因此它不支持某些Linux文件系统功能,例如
因此,我尝试将整个WSL RootFS移至另一个硬盘驱动器。首先,我尝试为
然后我四处搜索,然后得到了:移动Linux文件系统-问题#449。似乎移动和建立WSL RootFS硬链接仅在Windows 10 Build 14388之前有效,而在Windows 10 Build 14393 RTM中则无效。唯一的方法是将整个
所以我想问,还有其他方法可以将WSL移出系统分区吗?如果不能这样做,是否可以在其他地方创建一个额外的VoIFS工作目录并编译我的东西?
感谢和问候,
杰克逊
如果您使用的是Windows 10版本1903(2019年4月更新)或更高版本,则可以尝试使用
使用WSL命令行工具
在Windows 10版本1903(2019年4月更新)或更高版本中,可以使用
1。导出分发。创建一个
进行分发
1 | wsl.exe --export <DistributionName> <Tar-FileName> |
例如,要导出
1 | C:\\> wsl.exe --export Ubuntu c:\\data\\ubuntu.tar |
2。将分发导入到目标文件夹。然后,您可以将导出的发行版导入另一个文件夹
1 | wsl.exe --import <DistributionName> <Folder-To-Install> <Tar-FileName> |
例如,要将导出的
1 | C:\\> wsl.exe --import UbuntuCustom d:\\wsl\\UbuntuCustom c:\\data\\ubuntu.tar |
注意:您可以在https://github.com/pxlrbt/move-wsl
中查看使用这些命令移动WSL发行版的脚本。
使用LxRunOffline
在任何Windows 10版本中,都可以使用lxRunOffline将发行版移动到另一个驱动器。
1。设置对目标文件夹的权限。首先,我认为您必须对将分发文件移动到的文件夹设置一些权限。您可以使用
1 2 3 4 | C:\\> whoami test\\jaime C:\\> icacls D:\\wsl /grant"jaime:(OI)(CI)(F)" |
注意:除了上述权限,我还激活了Windows中的长路径名。
2。移动发行版。使用
1 | C:\\wsl> lxrunoffline move -n Ubuntu-18.04 -d d:\\wsl\\installed\\Ubuntu-18.04 |
您可以使用
检查安装文件夹
1 2 | C:\\wsl> lxrunoffline get-dir -n Ubuntu-18.04 d:\\wsl\\installed\\Ubuntu-18.04 |
3。运行发行版。移动发行版后,可以使用
运行发行版
1 2 3 4 5 6 7 | C:\\wsl> lxrunoffline run -n Ubuntu-18.04 -w user@test:~$ exit logout C:\\wsl> wsl user@test:/mnt/c/wsl$ exit logout |
WSL(当前)不支持将发行版移动或安装到非系统驱动器。但是,这是我们在将来的Windows版本中探索的方案。
请注意,从Fall Creators Update(FCU)开始,发行版现已通过Windows应用商店安装并下载并扩展到其他文件夹(即不在%localappdata%\\\\\\\\ lxss下)。
注意:当我们正在努力在将来的Windows版本中改进此情况时,请不要从Windows或Windows应用程序的残留文件夹中摸索出来:https://blogs.msdn.microsoft.com/commandline/2016 / 11/17 /请勿更改使用Windows应用程序和工具的Linux文件/
看看https://github.com/DDoSolitary/LxRunOffline
1 2 | scoop install lxrunoffline choco install lxrunoffline |
- 安装时不需要Internet访问。
- 将任何Linux发行版安装到磁盘上的任何位置。
- 将现有安装移动到其他位置。
- 复制现有安装。 (创建备份。)
- 注册现有的安装目录。 (用于便携式用途。)