Features | Documentation | Knowledge Base | Discussion Forumsphp
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 Workstation. 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.ios
This section describes four scenarios for sharing files between two systems, either a host computer and a virtual machine or two virtual machines, whereshell
Both systems run Windows operating systems, using Windows file sharingwindows
You are connecting from a Linux system to a Windows system, using smbmountapp
You are connecting from a Windows system to a Linux system, using Sambaless
Both systems run Linux operating systems, using NFS, FTP and Telnetsocket
You can apply the same principles to share files between virtual machines. Configuration for FreeBSD guests is similar to that for Linux guests.jsp
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. For details on NAT networking, see Network Address Translation (NAT).ide
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 SystemsTo 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 SystemTo 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.
Set up the folder or folders to share on the Windows system.
Create a user account on the Windows system for the Linux system user name that 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.
From your Linux system, log in as root.
su -
Add the Windows system's host name and IP address to the hosts file, if the system cannot be found by name.
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
(Substitute the appropriate host name, share and mount point 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 SystemTo 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 vmnet8switch, 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 Workstation).
Connecting to a Linux Host from a Windows GuestIf 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:
On the Linux host operating system, copy the smb.conf file to a file called something likesmb.conf.orig.
cd /etc/vmware/vmnet1/smb
cp smb.conf smb.conf.orig
Modify Samba on the Linux host system. Edit the following lines in
/etc/vmware/vmnet1/smb/smb.conf.
Comment out the line starting with interfaces=<IP addresses>.
If you do not want to use the standard DNS name for the Linux system, setnetbiosname=<Linux system name>.
You can leave security=user, unless you cannot connect, in which case usesecurity=share.
In the [global] section, define a different shared memory access key. Add this line:
sysv shm key=/dev/vmnet8
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
Note: This setting must be entered on one line.
To create the share, add the following:
[SHARE_NAME]
path = /home/user/shared
public = no
writable = yes
printable = no (since you want to share files, not a printer)
Save this file and create a backup copy to protect these changes when you upgrade VMware Workstation.
Restart the Samba services to load the new settings.
If VMware Workstation is running on the Linux host system, suspend or shut down all running virtual machines and close all VMware Workstation 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 Workstation 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 on 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 before you can browse the file system. If you need to install NetBEUI, you may need your Windows installation CD-ROM.
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.
To share the directory /home/user/shared, for example, on a Linux guest operating system with a Windows host operating system, follow these steps:
On the Linux guest operating system, copy the smb.conf file to a file called something likesmb.conf.orig.
cp /etc/smb.conf /etc/smb.conf.orig
Modify Samba on the Linux system to share the directory. To create the share, add the following to /etc/smb.conf.
[SHARE_NAME]
path = /home/user/shared
public = no
writable = yes
printable = no (since you want to share files, not a printer)
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.
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).