gpt4 book ai didi

windows - 将 WSL(Windows 上的 Bash)根文件系统移动到另一个硬盘驱动器?

转载 作者:可可西里 更新时间:2023-11-01 12:26:58 26 4
gpt4 key购买 nike

我刚刚将笔记本电脑中的 Windows 10 升级到 Redstone 1。所以我对 Linux 子系统(又名 WSL、LXSS 或 Windows 上的 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 连接(硬链接(hard link))。我已经完全卸载了 WSL 并将 RootFS 的 mklink 运行到另一个硬盘驱动器,当我再次重新安装 WSL 时,它无法创建新用户,并报告错误代码 0x80070003。

然后我四处搜索,我得到了这个:moving Linux filesystem - issue #449 . 似乎为 WSL RootFS 移动和制作硬链接(hard link)仅适用于 Windows 10 Build 14388 之前,它不适用于 Windows 10 Build 14393 RTM。 唯一的方法是移动整个 %LocalAppData % 到外置硬盘,但我不能这样做,因为我是笔记本电脑用户,我不能随处携带外置硬盘!

所以我想问一下,还有其他方法可以将 WSL 移出我的系统分区吗?如果我不能这样做,我可以在其他地方创建一个额外的 VoIFS 工作目录并编译我的东西吗?

感谢和问候, jackson

最佳答案

如果您使用的是 Windows 10 版本 1903(2019 年 4 月更新)或更高版本,您可以尝试使用 WSL 命令行工具 the export and import options .如果您使用的是较旧的 Windows 10 版本,您可以使用 lxRunOffline 将分发版移动到另一个驱动器。 .


使用 WSL 命令行工具

在 Windows 10 版本 1903(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

/grant " :(OI)(CI)(F)" 来设置适当的权限。

C:\> whoami
test\jaime

C:\> icacls D:\wsl /grant "jaime:(OI)(CI)(F)"

注意:除了以上权限,我还激活了long path names in 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

关于windows - 将 WSL(Windows 上的 Bash)根文件系统移动到另一个硬盘驱动器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38779801/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com