首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以通过"wsl -导入“来制作distro.exe?

是否可以通过"wsl -导入“来制作distro.exe?
EN

Stack Overflow用户
提问于 2020-01-30 09:32:23
回答 2查看 2.6K关注 0票数 4

我通过wsl --export从另一台机器通过wsl --import导入了一个wsl备份文件。

但是,与我在Window Store上安装WSL时不同的是,没有创建distro.exe文件,比如ubuntu.exe(在开始菜单中找到)。因此,从JetBrain IDE获得WSL支持是有问题的。这是因为JetBrain IDE通过distro.exe文件识别到distro.exe的路径。

如果有人解决了这个问题,我想找人帮忙。谢谢你的阅读。

编辑: Windows是v.1909(OS build 18363.592),我尝试使用https://winaero.com/blog/export-import-wsl-linux-distro-windows-10/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-06 02:53:56

我找到了一个解决方案。(Windows 10构建18363.592)

1.出口您的WSL发行版

wsl --export {your_distribution_name} rootfs.tar.gz导出您的wsl发行版。(您的发行版将保存到tarball中。)

2.通过地区发射器安装你的发行版。

我用的是Yuk7版本。首先,下载Launcher.exe,并将其重命名为your_distro_name.exe,然后使目录定位于WSL发行版。把your_distro_name.exerootfs.tar.gz放进去。

现在您可以安装发行版了,只需运行your_distro_name.exe。安装之后,您可以在powershell中运行您的发行版。PS > your_distro_name

3. Settig wsl.distributions.xml

C:\users\\{user_name}\\.{jetbrains_ide_name_version}\config\options\wsl.distributions.xml

Jetbrains通过wsl.distributions.xml支持WSL,您应该在Jetbrains上添加distro.exe以使用WSL。

代码语言:javascript
复制
<application>
  <component name="WslDistributionsService" version="1">
    <descriptors>
      <set>
        <descriptor>
          <id>DEBIAN</id>
          <microsoft-id>Debian</microsoft-id>
          <executable-path>debian.exe</executable-path>
          <presentable-name>Debian GNU/Linux</presentable-name>
        </descriptor>
        <descriptor>
          <id>KALI</id>
          <microsoft-id>kali-linux</microsoft-id>
          <executable-path>kali.exe</executable-path>
          <presentable-name>Kali Linux</presentable-name>
        </descriptor>
        ...
      </set>
    </descriptors>
  </component>
</application>
代码语言:javascript
复制
<!-- DESCRIPTOR FOR YOUR DISTRO -->
<descriptor>
  <id>YOUR_DISTRO_NAME</id>
  <microsoft-id>Your-distro-name</microsoft-id>
  <executable-path>your_distro_name.exe</executable-path>
  <presentable-name>your_distro_name</presentable-name>
</descriptor>

只需将<descriptor>添加到<set>中即可。

4.重新启动JetBrains IDE

最后,我可以在另一台机器的WebStorm中使用导出的wsl发行版:)

票数 5
EN

Stack Overflow用户

发布于 2021-03-24 23:34:12

不幸的是,最新的解决方案似乎不再有效,至少对我和03/2021。也许Phpstorm不再使用xml了,它会查询注册表(在本例中最好不要弄乱注册表),我想和您分享一下我是如何让它工作的(不仅是wsl$ path,还有phpstorm中的php和git可执行文件)。

  • 按照上面的说明,直到第2点:发行版已经安装,并且在同一个目录中创建了包含vm磁盘的文件ext4.vhdx。用wsl -l -v检查一下
  • 从Microsoft安装您选择的发行版,并使用相同版本的导入发行版。
  • 运行新发行版一次,然后关闭它wsl --shutdown <YOUR_DISTRO_NAME>
  • 转到%LOCALAPPDATA%\Packages\CanonicalGroupLimited.<YOUR_DISTRO_NAME>\LocalState并将ext4.vhdx重命名为ext4.vhdx.old (为了安全起见,稍后可以删除它)
  • 将先前生成的ext4.vhdx复制到上面的LocalState路径中
  • 使用wsl --set-default <YOUR_DISTRO_NAME>将新发行版设置为默认版本
  • 取消注册以前导入的发行版wsl --unregister <IMPORTED_DISTRO>

现在,存储中的新安装将使用导入的vhdx磁盘。您可以删除ext4.vhdx.old

在我的例子中,现在一切都很顺利:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59982813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档