我刚刚把笔记本电脑里的Windows 10升级到Redstone 1,所以我对Linux子系统进行了测试。(Windows上的WSL、LXSS或Bash )。基本上,一切都很好,但存在一个问题,即WSL的RootFS位于%LocalAppData%
路径(例如C:\Users\xyz\AppData\Local
)中,这也是我的Windows所在的位置。它消耗了大量的SSD硬盘空间在我的笔记本电脑,我希望我可以把它移到我的外部硬盘驱动器。
还有另一个问题。因为其他硬盘分区是以DriveFS的形式挂载的,所以它不支持chmod
这样的Linux文件系统特性,而且我的一些Linux项目构建脚本只在VoIFS中工作,而VoIFS只位于/
和/home
中。
所以我试着把整个WSL RootFS移动到另一个硬盘上。首先,我尝试为C:\Users\xyz\AppData\Local\lxss
建立一个NTFS连接(硬链接)。我已经将WSL完全卸载,并将mklink
为RootFS运行到另一个硬盘驱动器,当我再次重新安装WSL时,无法创建新用户,它用代码0x80070003.报告错误。
然后我四处搜索,我得到了这个:移动Linux文件系统-问题#449。似乎只有在Windows10Build 14388之前才能移动和制作RootFS的硬链接,而在Windows10Build 14393 RTM中则不能工作。唯一的方法是将整个%LocalAppData%
移动到外部硬盘驱动器上,但是我不能这样做,因为我是笔记本用户,而且我不能到处带一个外部硬盘驱动器!
所以我想问一下,有没有其他方法将WSL从我的系统分区中移出?如果我不能这样做,可以在其他地方创建一个额外的VoIFS工作目录并编译我的资料吗?
谢谢和问候,杰克逊
发布于 2018-08-09 13:02:06
如果您使用的是Windows10Version1903(2019年4月更新)或更高版本,则可以使用选项尝试WSL命令行工具。如果您使用的是旧版本的Windows 10,则可以使用lxRunOffline将发行版移动到另一个驱动器。
使用WSL命令行工具
在Windows10Version1903(2019年4月更新)或更高版本中,您可以使用wsl.exe
命令行工具。
1.导出发行版.创建一个要使用wsl.exe --export
移动的.tar
文件
wsl.exe --export <DistributionName> <Tar-FileName>
例如,要导出Ubuntu
发行版,可以使用
C:\> wsl.exe --export Ubuntu c:\data\ubuntu.tar
2.将发行版导入目标文件夹。然后,可以将导出的发行版导入到另一个文件夹中。
wsl.exe --import <DistributionName> <Folder-To-Install> <Tar-FileName>
例如,要将导出的Ubuntu
导入新的UbuntuCustom
发行版,可以使用
C:\> wsl.exe --import UbuntuCustom d:\wsl\UbuntuCustom c:\data\ubuntu.tar
注意:您可以在https://github.com/pxlrbt/move-wsl上检查用于移动使用这些命令的WSL发行版的脚本
使用LxRunOffline
在任何Windows 10版本中,您都可以使用lxRunOffline将发行版移动到另一个驱动器。
1.设置对目标文件夹的权限。首先,,我认为您必须对要移动发行版的文件夹设置一些权限。您可以使用icacls <dir> /grant "<user>:(OI)(CI)(F)"
设置适当的权限。
C:\> whoami
test\jaime
C:\> icacls D:\wsl /grant "jaime:(OI)(CI)(F)"
注意:除了上述权限外,我还激活了Windows中的长路径名称。
2.使用lxrunoffline move
移动发行版.。
C:\wsl> lxrunoffline move -n Ubuntu-18.04 -d d:\wsl\installed\Ubuntu-18.04
您可以使用
C:\wsl> lxrunoffline get-dir -n Ubuntu-18.04
d:\wsl\installed\Ubuntu-18.04
3.运行发行版。移动发行版后,可以使用wsl
或相同的lxrunoffline
运行发行版。
C:\wsl> lxrunoffline run -n Ubuntu-18.04 -w
user@test:~$ exit
logout
C:\wsl> wsl
user@test:/mnt/c/wsl$ exit
logout
发布于 2017-10-24 20:31:15
WSL不支持将发行版移动或安装到非系统驱动器。然而,这是我们正在探索的未来Windows版本的场景。
注意,从秋季创建者更新(FCU)开始,发行版现在通过Windows存储安装,下载到不同的文件夹中,并扩展到不同的文件夹(即不在%localappdata%\lxss下面)。
NOte:虽然我们正在努力在未来的版本中改进这一场景,但请不要将插入到Windows或Windows应用程序的发行文件夹中:https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/
发布于 2018-07-13 20:57:19
看看https://github.com/DDoSolitary/LxRunOffline
scoop install lxrunoffline
choco install lxrunoffline
https://stackoverflow.com/questions/38779801
复制相似问题