我已经在 VirtualBox 上使用 Ubuntu 大约一年了,但最近我了解了 WSL,它似乎对我的目的更有用。我一直在尝试将所有数据从 VirtualBox VM 中迁移出来,但在网上找不到任何资源告诉我如何做到这一点。我能够将我的 VM 及其中的所有数据迁移到 Hyper-V,希望从 Hyper-V 迁移到 WSL2 会更简单,但到目前为止,这个过程也让我困惑。
现在我想要的是从 VM 外部(即可从 WSL 访问)访问我的 VM 中的所有文件。
任何建议都将非常感谢!
答案1
你可以在这里选择几条路线:
正如评论中提到的,这个问题介绍了如何在 Ubuntu 中直接安装 VirtualBox 磁盘映像。虽然我还没有尝试过,但我看不出这在 WSL2 上不起作用的任何理由(但它会不是在 WSL1 上)。
需要注意的一件事是大小和性能。我假设
.vdi
目前位于 Windows 驱动器上,因此您需要使用/mnt/c/path/to/vdi
(或/mnt/d
等)访问它。在 WSL2 下访问 Windows 驱动器上的文件时的性能会下降很多,但这通常只有在处理大量较小文件时才会出现问题。我不确定,但我思考单个大型 的性能就没问题了.vdi
。无论如何,这只是“一次性”的事情,所以我确信性能下降至少不会完全停止。或者,如果你选择复制你的
.vdi
进入在安装之前,请注意它将增加 WSL 虚拟磁盘的大小,并且当您删除.vdi
(或将其移回 WSL2 之外)时,所消耗的空间将不会被回收。请参阅我的回答这里有关如果遇到这种情况如何回收空间的详细信息,请参阅超级用户指南。或者,您可以选择使用从 VirtualBox 到 WSL 的网络共享/复制。这里的技巧是确保网络可访问,但我没有思考当您尝试从 WSL2 连接 VirtualBox VM 时,这将会是一个问题。如果您在连接时遇到问题,请告诉我,我们可以解决这个问题。
假设您已经
ssh
在现有 VM 内进行了设置,您可以始终使用sftp
或scp
将文件手动复制到 WSL。或者,如果你有安装 Samba在虚拟机中,您只需从 WSL2 内部挂载 CIFS 共享即可。请参阅这个答案在 Stack Overflow 上(由于它与编程无关,因此也是题外话,但其中一些漏掉了)以及有关安装 Samba 共享的问题的其他答案。