转载自:http://blog.csdn.net/gogor/article/details/5353788
在前文中,我们已经建立了一个虚拟机,且在其上安装了Ubuntu系统,为了要在该Ubuntu虚拟机上进行Linux开发还需要解决如下两个问题:
1. 主机与虚拟机相互间能够ping通,且均能访问英特网。
2. 主机与虚拟机能够简单方便地共享文件。
先说问题2的解决方法
要做到主机与虚拟机进行文件共享,其实方法很多,比如利用VMware Tools等,但在这里我选用的是samba。
先简单介绍一下samba:
Samba是Linux和Unix上实现SMB(server message block)协议的一个免费软件,用于Linux和Windows主机之间共享文件之用;Samba 既可以用于Windows和Linux之间的共享文件,也可用于Linux和Linux之间的共享文件;不过对于Linux和Linux之间共享文件有更好的网络文件系统NFS。
在Windows 网络中的每台机器既可以是文件共享的服务器,也可以是客户机;Samba 也一样,比如一台Linux的机器,如果架了Samba Server 后,它能充当共享服务器,同时也能做为客户机来访问其它网络中的Windows共享文件系统,或其它Linux的Sabmba 服务器。
我们在Windows网络中,可以直接把共享文件夹当做本地硬盘来使用。在Linux中,就是通过Samba向网络中的机器提供共享文件的,也可以把网络中其它机器的共享文件挂载在本地机器上使用。
Samba 主要是在Windows和Linux 系统共存的网络中使用;如果一个网络环境里都是Linux或Unix类的系统,就没有必要用Samba,可直接用NFS。
下面再接着记录samba的安装和配置过程:(有些命令仅适用于Ubuntu系统,其他Linux系统可能不一样,但步骤都是一样的)
第一步:安装samba
#sudo apt-get install samba //
#sudo apt-get install smbfs //
第二步:添加Linux用户(在安装完成Linux系统后,一般已经有一个Linux用户了,即在安装过程中创建的那个,本例中为jack。在一个
Linux系统中当然可创建多个用户,因为Linux系统本身就是多用户系统。如果只需要一个用户的话,此步骤可略)
#sudo useradd rose //rose为新添加的用户名
#sudo passwd rose //为用户名rose设置密码,该命令回车后系统会提示你输入密码。
第三步:创建共享目录:
#sudo mkdir /home/jack/share //创建共享目录:jack为登陆Linux系统的用户名;当然也可为上一步创建的用户名rose创
//建一个共享目录,如sudo mkdir /home/rose/rose/share
#sudo chmod 777 /home/jack/share //为创建的共享目录设置权限
第四步:为samba服务器添加用户
#sudo smbpasswd -a jack //添加并给用户jack访问samba服务器设置密码;注:登陆samba服务器的用户必须已是Linux的用户
第五步:创建samba配置文件:
1. 备份现有的配置文件
#sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
2. 创建新的配置文件
#sudo vim /etc/samba/smb.conf
[global]
workgroup = mygroup //创建工作组
security = share //设置samba的安全等级,user代表需要输入用户名和密码;share则不需要输入用户名和密码
guest ok = yes //是否允许guest用户访问:yes or no
[share] //方框号中的share这个名字可以随便取,它只是在windows的网上邻居中显示的共享文件夹名
path = /home/jack/share //设置共享文件夹的路径,该路径下的共享文件夹在第二步中已经建立。
valid users = jack //说明这个share共享目录只允许用户jack访问
public = no //no表示除了jack这个用户外,其他用户进入samba服务器后看不见该共享目录;如果为yes,虽然能看
//见,但除了jack外其他用户还是进不去。
browseable = yes //设置该共享文件的读权限:yes or no
writeable = yes //设置该共享文件的写权限:yes or no
//最后存盘退出
#testparm //检查一下语法错误
第六步:重启samba服务
#sudo /etc/init.d/samba restart
经过以上几步后,不出意外的话samba的安装于配置就算完成了。下面就该看如何使用samba来进行主机与虚拟机之间共享文件了:
1. 主机(windows)访问虚拟机(Ubuntu):
可直接在浏览器的地址栏中输入虚拟机的IP,如://192.168.227.129(我的虚拟机的IP),回车后就可以看到虚拟机上的共享文件了(如上述步骤中的share),如果该虚拟机上的samba服务器添加了多个用户,则会弹出一个登陆框,要求你输入用户名和密码。
2. 虚拟机(Linux)访问主机(windows):
这个可以通过Linux下的mount命令或者samba的命令smbmount来实现。
(1)mount命令
加载网络中的共享文件夹到本地机器,mount就是用于挂载文件系统的,SMB做为网络文件系统的一种,也能用mount挂载。
mount 挂载smbfs的用法;
mount -t smbfs -o codepage=cp936,username=用户名,password=密码 //主机ip地址/共享文件夹名 /home/jack(挂载点)
或
mount -t smbfs -o codepage=cp936 //主机ip地址/共享文件夹名 /home/jack(挂载点)
smbmount -o username=用户名,password=密码 //主机ip地址/共享文件夹名 /home/jack(挂载点)
或
smbmount //ip地址或计算机名/共享文件夹名 //主机ip地址/共享文件夹名 /home/jack(挂载点)
例子:smbmount //172.16.80.28/network //home/jack/test_smbmount
注意:
如果您的samba服务器是以share共享方式配置的,则无需用户名和密码就能挂载,如果出现要密码的提示,直接回车就行;您也可以用smbmount 来挂载,这样就无需用mount -t smbfs来指定文件系统的类型了。对于挂载点,我们要自己建立一个文件夹,比如/home/jack/test,这由自己决定。在mount的命令中,我们发现有这样的一个参数codepage=cp936,这是服务器端文件系统的编码的指定,cp936 就是简体中文,当然您可以用utf8等。如果您挂载了远程的smbfs文件系统出现的是简体中文乱码,就要考虑挂载时要指定编码了。
至此,我们就可以很方便地在主机(windows)和虚拟机(Linux)之间进行文件共享了。
注明:要选用桥接方式
要为sab添加用户