Contents

Sharing Files Between Guest and Host Operating Systems

To share files between a host computer and a virtual machine or between two virtual machines, you use the networking features of VMware ESX Server. If you know how to share files between two physical computers on a network, you already know how to share files with a virtual machine.

This section describes four scenarios for sharing files between a two systems, either a host computer and a virtual machine or two virtual machines, where

You can apply the same principles to share files between virtual machines. Configuration for FreeBSD guests is similar to that for Linux guests.

The following scenarios assume you have set up your virtual machine using NAT networking. Besides giving the virtual machine a direct connection to the host computer’s network, NAT networking sets up a virtual network adapter on the host computer. You can use this adapter, which connects to a virtual switch identified as vmnet8, to communicate between host and virtual machine. You can also connect two or more virtual machines using vmnet8.

In all cases, the user name you used to log in to the system from which you are connecting must be a user on the system to which you want to connect.

Sharing Files Between Two Windows Systems

To share files between two Windows systems (where one machine is a host and the other is a virtual machine, or both are virtual machines), be sure the file and printer sharing service is installed for both operating systems and the folders you want to share are marked as shared. Then you can browse from one system to the shared folder or folders on the other system.

Sharing Files by Connecting to a Windows System from a Linux System

To share files on a Windows system with a Linux system (by connecting to a Windows host from a Linux guest or connecting to a Windows guest from a Linux host), you can mark a folder as shared on the Windows system, then use the smbmount utility in the Linux system to mount the shared folder. For example, if you want to share the folder C:\docs on a Windows 2000 system called win2k with a Linux system at /mnt/docs, follow the steps below. You may want to set up a shell script to run these commands.

  1. Set up the folder or folders to share on the Windows system.

  2. Create a user account on the Windows system for the Linux system’s user name which you are using to connect to the Windows system.

    Otherwise, if you know the user name and password for a user account that can access the Windows system, you can specify that account on the command line.

  3. From your Linux system, log in as root.
    su -

  4. Add the Windows system’s host name and IP address to the hosts file, if the system cannot be found by name.

  5. Mount the Windows share on your Linux system. Enter the following command all on one line.

    mount -t smbfs -o username=<Windows system user account>,password=<password> //win2k/docs /mnt/docs

    (Recall the host name, share and mount point from above. Substitute the appropriate values for your systems.)

Note: If you do not want to expose this password on the command line or in a script, leave out that option and provide the password when prompted after you run the command.

Now you are connected to the shared folder on the Windows system from your Linux system and can begin to share files between the two.

Sharing Files by Connecting to a Linux System from a Windows System

To share files on a Linux system with a Windows system (by connecting to a Linux host from a Windows guest or connecting to a Linux guest from a Windows host), you can run Samba on the Linux system and browse shared directories in the Linux file system from Network Neighborhood in the Windows system.

You need to modify Samba on the Linux host operating system so it recognizes the vmnet8 switch, otherwise you cannot access the Linux file system. You need to do this even if you installed host-only networking (as Samba is installed when you install host-only networking with VMware ESX Server).

Connecting to a Linux Host from a Windows Guest

If you want to share the directory /home/user/shared, for example, on a Linux host operating system with a Windows guest operating system, follow these steps:

  1. On the Linux host operating system, copy the smb.conf file to a file called something like smb.conf.orig.
    cd /etc/vmware/vmnet1/smb
    cp smb.conf smb.conf.orig

  2. Modify Samba on the Linux host system. Edit the following lines in /etc/vmware/vmnet1/smb/smb.conf.

    1. Comment out the line starting with interfaces=<IP addresses>.
    2. Below this line, add interfaces=vmnet1 vmnet8.
    3. Provide a network workgroup name. Set workgroup=<name>.
    4. If you do not want to use the standard DNS name for the Linux system, set netbiosname=<Linux system name>.
    5. You can leave security=user, unless you cannot connect, in which case you would use security=share.
    6. Set encrypt passwords=yes.
    7. In the [global] section, define a different shared memory access key. Add this line:
      sysv shm key=/dev/vmnet8
    8. For better performance, at this line:
      socket options = TCP_NODELAY
      edit the line to state:
      socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
    9. To create the share, add the following:
      [SHARE_NAME]
      /home/user/shared
      public = no
      writable = yes
      printable = no (since you want to share files, not a printer)
    10. Save this file and create a backup copy to protect these changes when you upgrade VMware ESX Server.

  3. Restart the Samba services to load the new settings.

    If VMware ESX Server is running on the Linux host system, you need to shut down or suspend all running virtual machines and close all VMware ESX Server windows.

    On the Linux host operating system, at a command prompt, type
    /etc/init.d/vmware restart

    On some Linux distributions, the command is
    /etc/rc.d/init.d/vmware restart

    Start VMware ESX Server and run the Windows guest operating system from which you want to connect to the Linux host. The user ID you use to log in to the Windows guest must be in the Linux host’s smbpasswd file. If you use the same user name and password to log in to the guest as you do the Linux host, then you are not prompted to log in when you browse the Linux host.

    If you are connecting to the Linux system from a Windows Me, Windows 98 or Windows 95 guest operating system, NetBEUI must be installed in the guest operating system in order to browse the file system. If you need to install NetBEUI, keep your Windows installation CD-ROM nearby.

    When the system restarts, the Samba service does not appear in the list of services starting up, but it does start, unless an error appears.

Connecting to a Linux Guest from a Windows Host

To share the directory /home/user/shared, for example, on a Linux guest operating system with a Windows host operating system, follow these steps:

  1. On the Linux guest operating system, copy the smb.conf file to a file called something like smb.conf.orig.
    cp /etc/smb.conf /etc/smb.conf.orig

  2. Modify Samba on the Linux system to share the directory. To create the share, add the following to /etc/smb.conf.
    [SHARE_NAME]
    /home/user/shared
    public = no
    writable = yes
    printable = no (since you want to share files, not a printer)

  3. Restart the Samba services to load the new settings. On the Linux guest operating system, at a command prompt, type:
    /etc/init.d/smb restart

    On some Linux distributions, the command is
    /etc/rc.d/init.d/smb restart

    When the system restarts, the Samba service appears in the list of services starting up.

Sharing Files Between Two Linux Systems

To share files between two Linux systems (where one machine is a host and the other is a virtual machine, or both are virtual machines), you can use NFS on the system to connect to and the nfsmount utility in the system from which you are making the connection.

As with any Linux network, you can use NFS, FTP or telnet to connect from one Linux system (either virtual or physical) to another Linux system (either virtual or physical).

Related Topics:

Back to top

© 2001-2002 VMware, Inc. All rights reserved.