在windows下与linux虚拟机进行文件共享
在windows下与linux虚拟机进行文件共享
虚拟机与主机的文件共享
方法一:使用虚拟机的共享文件夹功能
使用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查看
在文本框“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资源基本实现,完成时候觉得很简单,但是一路摸索过来的确遇到了不少问题。