方法一:使用虚拟机的共享文件夹功能
使用 vmware ( vmware workstation 5 )下 shared folders 功能实现 vmware 中 host 与 ghost 间文件传输,无需任何网络相关设置,不使用任何网络协议, host 和 ghost 可以是 linux 和 windows 操作系统,这里只介绍 host 是 windows , ghost 是 linux 下的设置,如果 ghost 是 windows ,请参考 vmware 帮助中 setting up shared folders 。
1. 安装 vmtools for linux:
选择 vmware workstation 程序菜单中 VM >install VMware tools...
启动 guest 电脑中的 linux ,执行:
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom ( vmtools 的安装文件放在 vmware 虚拟的 cdrom 中,首先要 mount 上这个光驱才能找到安装文件)
cd /mnt/cdrom
tar -zxvf VMwareTools-5.0.0-12124.i386.tar.gz -C /tmp (把安装文件解压到 /tmp )
cd /tmp/vmware-tools-distrib
./vmware-install.pl
(执行 vwware 的安装脚本,这个脚本是用 perl 编写的)
在这里,安装程序会询问安装文件存放位置和设置分辨率等一系列问题,在大多数情况下,安装默认配置 vmware tools 就可以正常工作,因此,这里对每一个问题按回车键选择默认配置。
安装完以后, vmware 会添加一个 vmhgfs 的模块到内核中,可以使用 lsmod 查看
2. 设置 host computer 共享的目录:
在 ghost computer 中切换到 windows 桌面,选择 vmware workstation 程序菜单中 VM>Settings>Options>Shared Folders >Properties
点击对话框右下的 “add” 按钮,点击 “ 下一步 ”
在文本框 “name” 中输入共享目录的名字(这里填写的目录名以后在 ghost computer 的 linux 系统中将显示出同样的目录名),假设为 fc4_iso ;在 “host folder” 中填入 host computer 中 windows 系统想要共享出来的目录,假设为 F:/linux-cd/RedHat/Fedora_Core_4/stentz-dvd-i386 ,然后点击完成
下一个对话框是选择共享的方式 :Enable this share 是指这个共享长期有效,目录可读写; Read-only 方式是指这个共享长期有效,目录只读; Disable after this session 方式是指下次 ghost computer 被关闭或挂起后,共享将会失效。一般情况下选择 Enable this share 然后点击 “ 完成 ”
自此, shared folder 设置完毕
3.shared folder 目录的使用
切换到 ghost computer 的 linux 系统,执行:
cd /mnt/hgfs
ls
可以看到 fc3_iso 的目录,并且可以用 cp 等指令实现 windows 到 linux , linux 到 windows 的读写操作了
4. 注意事项
在 vmware 软件里添加一个 shared folder 或对 shared folder 的参数进行版本是立刻生效的,也就是说立刻可以在 ghost computer 的 linux 系统中看到新加的共享目录和体验到参数的改变
结语:写这篇文章的目的是为了减少 CU linux 版上关于 vmware host/ghost computer 共享文件问题的新手重复发问和其他兄弟的重复回答,使版面更加简介些。另外,我看大家回答这个问题大多是使用 ftp , samba 甚至是 nfs (在 windows 上装 microsoft service for unix 就可以实现 nfs )来实现的,采用 vmware 自带的 shared folder 方式比使用网络协议实现文件传输要方便得多,并且对于新手来说,用 cp 命令拷贝文件比用 ftp 和 smbmount 命令要简单得多
两种其它常用方法
提供最常用的两种方案:
1. FTP 访问
2. Samba 服务
不管是 FTP 还是 Samba ,首先都需要分析虚拟机环境下的 Host-Guest 网络连接。基本上我们可以把 Host 机与 Guest 机之间当作局域网中的两台机器来实现互联。那么现在需要重新考虑关于《虚拟机的网络配置》一文中提到过的网络连接方式。
当时我们选择以 NAT 模式进行网络连接,这是一种使用 DHCP 服务进行网络连接的方式,也就是说, Guest 机并没有自己的固定 IP 地址,这个地址是在启动 了系统之后,从 Host 机上取得的、一个暂时提供给 Guest 机使用的 IP 地址。在这种网络连接方式下,设置 Guest 机中系统的 IP 获取方式为自动获 取,不管 Host 机联网的方式如何,只要 Host 能上网, Guest 机也可以上网。
虽然选择这种方式,外网连接是很方便,可是在 Host-Guest 之间的局域网连接真的让人伤透了脑筋,虚拟网卡 VMnet8 的 IP 与 Host 机的 IP 不 在同一网段,折腾了一个晚上也没有找到好的解决办法,最后舍弃了 NAT 模式。将 Linux 虚拟机的网连方式改为了 Bridge 。
Bridge 模式将虚拟主机的虚拟网卡桥接到一个 Host 主机的物理网卡上,可以理解为 Guest 机和 Host 主机处于对等的地位,在网络关系上是平等的,对于我这种对路由的事情比较白痴的人来说,这是最易理解的一种局域网互联方式。
我的使用网络服务是小区 LAN 网, IP 自然是自动获取的,不用花心思改动它,将 Guest 机的网络也设置成为自动获取 IP :
应用程序 --> 系统设置 --> 网络 --> 编辑 eth0 设备
Host 和 Guest 在同一网段,基本上就像局域网里面的两台机器。 Host 设置一下 FTP , FTP 算是实现对 Host 机资源的访问了,可文件的管理似乎不那么方便。
另一种共享 Windows 资源的方法是很多 Linux 用户都非常青睐的 Samba 。 Samba 是一套让 UNIX 系统能够应用 Microshoft 网络通讯协议的软件。它使执行 UNIX 系统的计算机能与执行 Windows 系统的计算机分享驱动器与打 印机。非常适用于 Windows 和 Linux 系统并存的网络。 Red Hat AS 4.0 内附 Samba Server ,但默认并不是在系统启动时自动运行的。可通过 service 命令查看和控制 Samba 服务:
查看 Samba 服务运行状态: # service smb status
启动 Samba 服务: # service smb start
停止 Samba 服务: # service smb stop
也可设置系统重启时,自动启动 Samba 服务: # chkconfig --level 345 smb on
首先我们在 Windows 系统中设置文件夹或驱动器 Web 共享,并对其设置别名,如: /study
然后在 Linux 中,以用户身份登录 smb 服务:
常见的错误提示:
1 .防火墙问题
使用 Samba 服务时, Host 和 Guest 都应关闭防火墙。 Linux 系统下关闭防火墙的方法:系统设置 --> 服务器设置 --> 服务 -->iptable--> 停止
2 .登录用户名或密码错误
验证用户名密码即可。
成功登录 smb
可用 LS 命令查看当前目录下的共享文件
用 get 命令可从服务器上下载某文件:
Smb:/> get file1 file2 (从服务器上下载 file1 ,以 file2 为名保存在本地——默认为 root 主目录)
Exit 命令可退出 smb 服务器
如果仍然觉得文件的管理不方便,可以使用 smbmount 命令,挂载 Windows 的共享文件夹或驱动器:
# smbmount //192.168.0.162/study /mnt/mystudy – o username=admin
其中, 192.168.0.162 为 Host 机 IP ; study 为共享文件夹别名; /mnt/mystudy 为挂载点,可由 #mkdir /mnt/mystudy 创建; admin 为 Host 机登录用户名。
打开挂载目录。
这样看起来习惯多了吧?跟 Windows 里面的文件管理界面几乎相同了。
至此,虚拟机 Linux 共享宿主机 Windows 资源基本实现,完成时候觉得很简单,但是一路摸索过来的确遇到了不少问题。
由于本人目前对于 linux 的学习还不够深入,所以选择了比较简单的 shared folder 来共享文件。至于 FTP 和 SAMBA 模式,先总结在这里,以后学习网络时好好学习下!哈哈!