在VMWARE 客户机和主机操作系统之间共享文件

来源:互联网 发布:韩子高网络剧百度云 编辑:程序博客网 时间:2024/05/01 09:32

原作者:VMware,Inc             翻譯: 赵宇(Pianfeng)

要在一台主机和一台虚拟机之间或者两台虚拟机之间共享文件,你可以使用 VMware Workstation 的网络功能。如果你知道如何在一个网络上的两台物理计算机之间共享文件,你就已经知道如何与一台虚拟机共享文件。

这个部分说明在两个系统之间共享文件的四种情况,可以是一台主机和一台虚拟机,也可以是两台虚拟机,如果:

  • 两个系统都运行 Windows 操作系统,使用 Windows 文件共享
  • 你正在 从一个 Linux 系统连接到一个 Windows 系统,使用 smbmount
  • 你正在 从一个 Windows 系统连接到一个 Linux 系统,使用 Samba
  • 两个系统都运行 Linux 操作系统,使用 NFS、FTP 和 Telnet

你可以应用相同的原理在虚拟机之间共享文件。配置 FreeBSD 客户机类似于配置 Linux 客户机。

下面的情况假定你已经设置你的虚拟机使用 NAT 网络。除了让虚拟机直接连接到主机的网络,NAT 网络在主机上安装一个虚拟网络适配器。你可以使用这个连接到标识为 vmnet8 的虚拟交换机的适配器,在主机和虚拟机之间进行通讯。你也可以使用 vmnet8 连接两台或多台虚拟机。

在所有情况下,用于登录到你正在从其中进行连接的系统的用户名必须是你想要登录到的系统上的一个用户。

在两个 Windows 系统之间共享文件

要在两个 Windows 系统(其中一台机器是主机而另一台是虚拟机,或者两台都是虚拟机)之间共享文件,确认为两个系统都安装文件和打印机共享服务,并且你想要共享的文件夹被标记为共享。然后,你可以从一个系统中浏览共享文件夹或者其他系统上的共享文件夹。

通过从一个 Linux 系统连接到一个 Windows 系统共享文件

要使用一个 Linux 系统共享一个 Windows 系统上的文件(通过从一台 Linux 客户机连接到一台 Windows 主机或者从一台 Linux 主机连接到一台 Windows 客户机),你可以在 Windows 系统上标记一个文件夹为共享,然后在 Linux 系统中使用 smbmount 工具挂载共享文件夹。例如,如果你想使用一个 Linux 系统在 /mnt/docs 位置共享名为 win2k 的 Windows 2000 系统上的一个文件夹 C:/docs,按照下面的步骤进行。要运行这些命令,你可能需要设置一个外壳脚本。

  1. 在 Windows 系统上设置文件夹或者要共享的文件夹。

  2. 在 Windows 系统上为你将要使用它连接到 Windows 系统的 Linux 系统的用户名创建一个用户帐号。

    或者,如果你知道能够访问 Windows 系统的一个用户帐号的用户名和密码,你可以在命令行中指定该帐号。

  3. 从你的 Linux 系统中登录为 root。
    su -

  4. 如果不能通过名称找到系统,添加 Windows 系统的主机名和 IP 地址到 hosts 文件中。

  5. 在你的 Linux 系统上挂载 Windows 共享。在一个行上输入下面全部的命令。

    mount -t smbfs -o username=<Windows 系统用户帐号>,password=<密码> //win2k/docs /mnt/docs

    (回忆上面提及的主机名、共享和挂载点。替换为你的系统的适当的值。)

注释: 如果你不希望在命令行或者一个脚本中暴露这个密码,省略该选项,在运行命令之后,提示时提供密码。

现在,你已经从你的 Linux 系统中连接到 Windows 系统上的共享文件夹,可以开始在两者之间共享文件。

通过从一个 Windows 系统连接到一个 Linux 系统共享文件

要使用一个 Windows 系统共享一个 Linux 系统上的文件(通过从一台 Windows 客户机连接到一台 Linux 主机或者从一台 Windows 主机连接到一台 Linux 客户机),你可以在 Linux 系统上运行 Samba,然后在 Windoiws 系统中从网上邻居浏览 Liunx 文件系统中的共享目录。

你需要在 Linux 主机操作系统上修改 Samba 以使它识别 vmnet8 交换机,否则你不能访问 Linux 文件系统。即使已经安装仅为主机网络(因为在你使用 VMware Workstation 安装仅为主机网络时,Samba 被安装),你也需要这样做。

从 Windows 客户机连接到一台 Linux 主机

例如,如果希望使用一个 Windows 客户操作系统共享一个 Linux 主机操作系统上的目录 /home/user/shared,按照这些步骤进行:

  1. 在 Linux 主机操作系统中,复制 smb.conf 文件到一个名称类似于 smb.conf.orig 的文件。
    cd /etc/vmware/vmnet1/smb
    cp smb.conf smb.conf.orig

  2. 在 Linux 主机系统中修改 Samba。在 /etc/vmware/vmnet1/smb/smb.conf 中编辑下面的行。

    1. 注释以 interfaces=<IP 地址> 起始的行。
    2. 在这一行下面,添加 interfaces=vmnet1 vmnet8
    3. 提供一个网络工作组名称。设置 workgroup=<名称>
    4. 如果你不想为 Linux 系统使用标准的 DNS 名称,设置 netbiosname=<Linux 系统名称>
    5. 你可以忽略 security=user,除非不能连接,在这种情况下,你可以使用 security=share
    6. 设置 encrypt passwords=yes
    7. [global] 小节中,定义一个不同的共享内存访问 key。添加这一行:
      sysv shm key=/dev/vmnet8
    8. 要获得更好的性能,找到这一行:
      socket options = TCP_NODELAY
      编辑这一行描述为:
      socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
    9. 要创建共享,添加下面的行:
      [SHARE_NAME]
      /home/user/shared
      public = no
      writable = yes
      printable = no (因为你想要共享文件而不是一台打印机)
    10. 保存这个文件并且创建一个备份副本,以便在升级 VMware Workstation 时保护这些更改。
  3. 重新启动 Samba 服务加载新的设置。

    如果在 Linux 主机系统上正在运行 VMware Workstation,你需要关闭或者挂起所有正在运行的虚拟机,然后关闭所有 VMware Workstation 窗口。

    在 Linux 主机操作系统中,在一个命令提示符下,输入
    /etc/init.d/vmware restart

    在某些 Linux 分发中,这个命令是
    /etc/rc.d/init.d/vmware restart

    启动 VMware Workstation,然后运行你想要从其中连接到 Linux 主机的 Windows 客户操作系统。你用于登录到 Windows 客户机的用户 ID 必须在 Linux 主机的 smbpasswd 文件中。如果你使用与登录 Linux 主机相同的用户名和密码登录到客户机,那么,当你浏览 Linux 主机时,不会提示你登录。

    如果你准备从一个 Windows Me、Windows 98 或者 Windows 95 客户操作系统连接到 Linux 系统,为了浏览文件系统,在客户操作系统中必须安装 NetBEUI。如果你需要安装 NetBEUI,就近保管好你的 Windows 安装光盘。

    在系统启动重新之后,Samba 服务不会出现在服务启动列表中,但是它已经启动,除非出现一个错误。

从一台 Windows 主机连接到一个 Linux 客户机

例如,要使用一个 Windows 主机操作系统共享一个 Linux 客户操作系统上的目录 /home/user/shared,按照这些步骤进行:

  1. 在 Linux 客户操作系统中,复制 smb.conf 文件到一个名称类似于 smb.conf.orig 的文件。
    cp /etc/smb.conf /etc/smb.conf.orig

  2. 在 Linux 系统上修改 Samba 以共享目录。要创建共享,添加下面的行到 /etc/smb.conf 中。
    [SHARE_NAME]
    /home/user/shared
    public = no
    writable = yes
    printable = no (因为你想要共享文件而不是一台打印机)

  3. 重新启动 Samba 服务加载新的设置。在 Linux 客户操作系统中,在一个命令提示符下,输入:
    /etc/init.d/smb restart

    在某些 Linux 分发中,这个命令是
    /etc/rc.d/init.d/smb restart

    在系统启动重新之后, Samba 服务出现在服务启动列表中。

在两个 Linux 系统之间共享文件

要在两个 Linux 系统(其中一台机器是主机而另一台是虚拟机,或者两台都是虚拟机)之间共享文件,你可以使用系统上的 NFS 进行连接,然后在你正在从其中进行连接的系统中使用 nfsmount 工具。

对于任何 Linux 网络,你可以使用 NFS、FTP 或者 Telnet 从一个 Linux 系统(可以是虚拟的也可以是物理的)连接到另一个 Linux 系统(可以是虚拟的也可以是物理的)。