我刚刚将笔记本电脑中的Windows 10升级到Redstone 1。因此,我对Linux子系统(aka.WSL、LXSS或Windows上的Bash)进行了测试。基本上,一切正常,但存在一个问题,WSL的RootFS位于%LocalAppData%
路径中(例如C:\Users\xyz\AppData\Local
),这也是我的Windows操作系统所在的位置。它在我的笔记本电脑上消耗了大量的SSD硬盘空间,我希望我能把它移到外置硬盘上。
还有一个问题。由于其他硬盘分区都挂载为DriveFS,它不支持一些Linux的文件系统功能,如chmod
,我的一些Linux项目构建脚本只适用于VoIFS,它只位于/
和/home
。
所以我试着把整个WSL RootFS移到另一个硬盘上。首先,我尝试为C:\Users\xyz\AppData\Local\lxss
创建一个NTFS连接(硬链接)。我已完全卸载WSL,并在另一个硬盘驱动器上为RootFS运行mklink
,当我再次重新安装WSL时,它无法创建新用户,并报告错误,代码为0x80070003。
然后我四处搜索,得到了这个消息:移动Linux文件系统-问题#449。似乎移动和制作WSL RootFS的硬链接只在Windows10Build14388之前起作用,而在Windows10Build14393 RTM中不起作用。唯一的方法是将整个%LocalAppData%
移动到外部硬盘,但我不能这样做,因为我是笔记本电脑用户,不能到处带外部硬盘!
所以我想问,有没有其他方法可以将WSL移出我的系统分区?如果我不能这样做,我可以在其他地方创建一个额外的VoIFS工作目录并编译我的东西吗?
谢谢和问候,杰克逊
看看https://github.com/DDoSolitary/LxRunOffline
scoop install lxrunoffline
choco install lxrunoffline
WSL目前不支持将发行版移动或安装到非系统驱动器。然而,这是我们正在为未来的Windows版本探索的场景。
请注意,从秋季Creators Update(FCU)开始,发行版现在通过Windows应用商店安装,并下载到不同的文件夹,并扩展到不同的文件夹(即不在%localappdata%\lxss下)。
注意:虽然我们正在努力在未来的Windows版本中改进此方案,但请不要从Windows或Windows应用程序进入发行版文件夹:https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/
如果您使用的是Windows 10版本1903(2019年4月更新)或更高版本,则可以使用带有export
和import
选项的WSL命令行工具。如果您使用的是较旧的Windows 10版本,则可以使用LXRONOFFLINE将分发版移动到另一个驱动器。
在Windows 10版本1903(2019年4月更新)或更高版本中,您可以使用wsl.exe
命令行工具。
1.导出分发。创建一个. tar
文件,使用wsl.exe--export
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
注意:您可以随时检查用于移动使用这些命令的WSL发行版的脚本https://github.com/pxlrbt/move-wsl
在任何Windows 10版本中,都可以使用lxRunOffline将分发版移动到另一个驱动器。
1.设置对目标文件夹的权限。首先,我认为您必须对要移动分发的文件夹设置一些权限。您可以使用icacls
C:\> whoami
test\jaime
C:\> icacls D:\wsl /grant "jaime:(OI)(CI)(F)"
注意:除了上述权限外,我还激活了Windows中的长路径名。
2.移动配电盘。使用
lxrunoffline移动
。
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
这个问题似乎不是关于特定的编程问题,软件算法或主要由程序员使用的软件工具。如果您认为该问题将与其他 Stack Exchange 站点的主题相关,则可以发表评论以解释问题可能在哪里可以得到解答。 我刚刚将笔记本电脑中的Windows 10升级到红石1。所以我对Linux子系统进行了测试(又名。WSL、LXSS 或 Windows 上的抨击)。基本上,一切都很好,但是存在一个问题,即WSL的根FS位
我在windows上下载了git,还有一些其他东西,包括GitBash。 虽然我不知道为什么bash终端被包含在“git”中,但它不仅支持git的功能,还支持其他功能,比如mkdir、cp、mv,就像一个真正的linux bash终端一样。 最近我知道了WSL(WindowsLinux子系统),它使bash终端在windows中可用。 git bash在功能上是否不如WSL? 它是否包含一些WSL
我需要过去7天的存储日志来移动一个新文件夹。但是,我不能移动它们,并得到了这个错误。 重命名(/var/www/html/eMarketing/storage/logs/old-log-2020-02-27,/var/www/html/eMarketing/storage/logs/laravel-2020-02-27.log):不是目录 我的密码在这里
问题内容: 情况: 我正在做一个自动化,我必须从一组文件中仅下载CSV文件。现在我只想将CSV文件从一个文件夹移动到另一个文件夹。 题: 您能为我提供代码,以便在文件移动后立即从源文件夹中删除文件吗? 到目前为止,这是我的代码: 编辑:但是我仍然面临一个问题。它会立即下载所有文件,然后删除。但是我的要求是这样的- 它应该下载第一个文件->将下载的文件移到另一个文件夹中->从下载文件夹中删除第一个下
我得到以下错误: 线程“main”java.lang.IllegalArgumentException:错误的fs:hdfs:/user/o/datasets/data.txt,应为:file:/// 也是如此,因为它们用于在文件系统之间传输文件,而不是在文件系统内传输文件。我还尝试了,但根本没有任何作用(没有错误或任何东西)。
我正在尝试创建一个PowerShell脚本,当我的电脑打开时,我可以每天早上运行该脚本,以移动我最近下载的所有类型。x从文件夹y到目标z。 当我运行该代码时,我得到这个错误: