如何在虚拟机之间复制数据

我有一台linux机器,windows安装为VM。 将数据从Linux桌面复制到Windows时,数据无法接收(我的意思是复制和粘贴)。

有没有办法在两个虚拟机之间复制数据?

答案应该是复杂的,我希望不要太复杂,但你读得越多越复杂:

  1. 您可以使用复制和粘贴机制复制少数(或更多)行。

    为此,您需要在主机操作系统和来宾操作系统之间共享剪贴板 ,在两个虚拟机上安装Guest Addition (可能设置双向并重新启动它们)。
    您从与主机操作系统共享的剪贴板中的来宾操作系统进行复制
    然后从主机操作系统 粘贴到第二个客户操作系统

  2. 您也可以使用相同的方法启用拖放function (单击机器,设置,常规,高级,拖放:设置为双向

  3. 您可以在两个虚拟机上拥有公共 共享文件夹 ,并使用共享目录之一作为缓冲区进行复制。

    安装Guest Additions您也可以设置共享文件夹 。 当您将文件放在来自主机操作系统来宾操作系统的共享文件夹中时,另一个文件立即可见。 (请记住,当不同虚拟机上有不同的时钟设置时,文件的日期/时间可能会出现一些问题)。
    如果您使用在更多计算机上共享的同一文件夹,则可以直接在此文件夹中交换文件。

  4. 您可以使用常规方法在客户端 – 服务器应用程序的2台不同计算机之间复制文件 。 (例如scp with sshd active for linux,winscp … 你可以得到一些关于SSH服务器的信息,例如这里 )

    您需要接收计算机上的活动服务器( sshd )和发送计算机上的客户端。 当然,您需要设置授权(通过密码,或者更好,通过自动身份validation方法 )。

    注意:许多Linux / Ubuntu发行版默认安装sshd :您可以看到它是否与shell中的pgrep sshd一起运行。 您可以使用sudo apt-get install openssh-server

  5. 您可以通过NFS或SSHFS在另一个上安装虚拟机的部分文件系统 ,也可以与Samba 共享文件和目录
    您可能会发现文章在guest虚拟机和主机之间共享文件而没有VirtualBox共享文件夹以及详细的分步说明。

您应该记住,您正在使用具有不同操作系统的小型机器网络拨号,特别是:

  • 每个虚拟机都有自己的运行系统,并充当物理机器。
  • 每个虚拟机是由托管操作系统中的用户 拥有的程序的实例,并且应该在托管OS中经受用户的限制。

    例如,让我们说Hastur和Meow是托管机器的用户,但是他们不允许彼此看到他们的目录(没有读/写/执行授权)。 当每个虚拟机运行虚拟机时,对于托管操作系统,这些虚拟机是Hastur和Meow拥有​​的两个普通程序,无法看到其他用户的私有目录。 这是托管操作系统的限制。 克服它很容易:它足以授予对目录的读/写/执行权限,或者选择两个用户都可以读/写/执行的不同目录。

  • Windows喜欢鼠标和Linux手指。 🙂
    我的意思是我建议你使用Windows机器和共享文件夹来实现拖放操作,或者熟悉Linux。
    当您需要快速使用Linux时, 您将感觉需要 ssh-keygen并生成一次SSH密钥以在远程计算机上复制文件而不再写入密码。 通过这种方式,它也可以远程执行bash自动完成function!

您可以使用scp或WinSCP。
另一种方法是在VirtualBox和主机之间设置共享文件夹。

我没有VirtualBox,但要从我的主机复制到我使用的KVM客户端:

 scp  guest: 

最后的’:’是让scp知道它复制到“另一台”机器而不是主机。 VirtualBox VM的命令可能是相同的。

我在这里找到了更详细的解释,但由于我自己不使用VirtualBox,我无法validation它。

在Virtual Box Manager中检查VM的“常规”设置的“高级”选项卡。 你可以在那里激活共享剪贴板和拖放。

更多的是,您可以在VM设置中设置主机和VM之间的共享。

最后,您可以启动一个虚拟网络,链接所有VM和可选的主机。 转到全局首选项,行网络,选项卡“仅主机网络”,然后单击添加按钮。 接下来,在VM设置中,添加仅主机网络适配器并选择您创建的专用网络。

HTH