从VirtualBox迁移到WSL

我现在已经使用VirtualBox上的Ubuntu大约一年了,但最近我了解到了WSL,它似乎对我的目的更加有用。我一直在尝试将所有数据从VirtualBox虚拟机迁移到其他地方,但是我无法找到任何在线资源告诉我如何做到这一点。我能够将我的虚拟机和其中的所有数据迁移到Hyper-V,希望从Hyper-V迁移到WSL2会更简单,但到目前为止,这个过程也困扰着我。
现在我只想从虚拟机外部(即从WSL中)访问所有文件。
非常感谢您提供的任何建议!

2WSL与VM安装有很大不同。您需要从Windows商店安装Ubuntu。然后,您可以手动复制任何文件到您的WSL安装中。 - Nmath
2请参考https://askubuntu.com/questions/19430/mount-a-virtualbox-drive-image-vdi,了解如何在WSL Ubuntu中挂载Virtualbox的.vdi虚拟硬盘。我建议您在尝试修改虚拟驱动之前先备份一份副本——在尝试新事物时,可能会出现意外情况。 - user535733
谢谢!我已经安装了Ubuntu,并创建了原始文件的副本 - 我正在使用副本来获取文件,而不是原始文件。我不介意手动复制文件,只是找不到这些文件的位置。 - arenay
欢迎再次光临!感谢您将问题重新发布在这里,而不是在Stack Overflow上。@user535733提出的想法正是我希望在这里看到的专业知识,也是为什么我建议您来Ask Ubuntu而不是Super User提问这个特定问题的原因。 - NotTheDr01ds
1个回答

你可以选择几种方式:
如评论中所提到的,这个问题涵盖了如何在Ubuntu上直接挂载VirtualBox磁盘映像。虽然我没有尝试过,但我认为在WSL2上应该也可以工作(但在WSL1上不行)。
需要注意的一点是大小和性能。我假设目前.vdi文件位于Windows驱动器上,所以您需要使用/mnt/c/path/to/vdi(或/mnt/d等)来访问它。在WSL2下访问Windows驱动器上的文件性能会有所降低,但通常只在处理大量较小文件时才会成为问题。我不确定,但我认为对于单个大型.vdi文件,性能应该还可以。无论如何,这只是一个“一次性”的操作,所以我相信性能下降不会完全阻碍进展。
另外,如果您选择在挂载之前将.vdi文件复制到WSL中,请注意这将增加WSL虚拟磁盘的大小,并且当您删除.vdi文件(或将其移回WSL2之外)时,所占用的空间将不会被回收。如果您遇到这种情况,请参考我在Super User上的答案这里,了解如何回收空间的详细信息。
另外,您也可以选择使用网络共享/从VirtualBox复制到WSL。关键在于确保网络可访问,但我认为当尝试从WSL2联系VirtualBox虚拟机时,这不会成为问题。如果连接有问题,请告诉我,我们可以解决这个部分。
假设您已经在现有的虚拟机中设置了ssh,您始终可以使用sftpscp手动将文件复制到WSL。
或者,如果您在虚拟机中安装了Samba,您可以直接从WSL2内部挂载CIFS共享。请参考Stack Overflow上的这个答案(虽然与编程无关,但有些问题会被漏掉),以及该问题的其他答案,了解有关挂载Samba共享的详细信息。

1这个方法很有效,谢谢!我使用了第一种方法,在Ubuntu中直接挂载了.vdi镜像。非常感谢您的帮助! - arenay