讓虛擬機與宿主機跨平臺資源共享
虛擬機的使用的確給Linux的學(xué)習(xí)者提供了很大的方便。不過在Linux學(xué)習(xí)過程中,當涉及到應(yīng)用軟件的使用時,雖然可以直接從網(wǎng)上下載程序包或源碼,但用慣了迅雷,對Linux中的下載速度簡直無法忍受,且原有的很多資源本應(yīng)該可以直接使用,沒有必要重新下載。因而虛擬機與宿主機跨平臺資源共享成為亟待解決的問題。
在網(wǎng)上搜索了大量相關(guān)信息,介紹兩個系統(tǒng)間信息共享的不少,但是提供虛擬機host-guest機不同系統(tǒng)之間資源共享解決方案的不多。在朋友的幫助下,經(jīng)過多次嘗試和摸索,終于有了一些搜獲?,F(xiàn)提供一套包括局域網(wǎng)配置在內(nèi)的較為詳細的解決方案,供初學(xué)者參考。
環(huán)境介紹:
虛擬機:VMware Workstation 5.5
Host機系統(tǒng):Windows 2000 Server
Guest機系統(tǒng):Red Hat Enterprise Linux 4
其實實現(xiàn)虛擬機與宿主機跨平臺資源共享的方法很多,最初我嘗試了使用mount命令掛載文件系統(tǒng)。從命令本身來看,想要掛載一個Windows下的文件系統(tǒng)或驅(qū)動盤似乎沒有什么問題。
首先在Linux系統(tǒng)/mnt空目錄下,建立掛載點:#mkdir /mnt/mystudy
/mnt目錄是專門用來當作掛載點的目錄。mystudy是自定義的專用掛載點名稱。
然后我們看一下mount命令的使用方法:
命令格式: mount [-t vfstype] [-o options] device dir
主要參數(shù):
① -t vfstype 指定文件系統(tǒng)的類型,通常不必指定。mount 會自動選擇正確的類型,Windows NT ntfs文件系統(tǒng):ntfs
② -o options 主要用來描述設(shè)備或檔案的掛接方式。
③ device:要掛接(mount)的設(shè)備。Linux中,設(shè)備名通常存放在/dev中,設(shè)備名遵循一些規(guī)則,如:/dev/hda1中,hd指Hard Disk,a代表第一個硬盤設(shè)備,1代表第一個硬盤的第一主分區(qū)。
④ dir:設(shè)備在系統(tǒng)上的掛接點(mount point)。如,我們剛剛建立的掛載點:/mnt/mystudy
遵循此規(guī)則,希望掛載硬盤的第二個主分區(qū)
鍵入命令: #mount -t ntfs /dev/hda2 /mnt/mystudy
返回信息: Mount:fs type ntfs not supported by kernel
竟然無法找到ntfs格式的分區(qū)?那么我的Windows系統(tǒng)跑到哪里去了?查看一下查看一下分區(qū)情況:#fdisk –L
得到如下結(jié)果發(fā)現(xiàn)根本沒有找到Windows的分區(qū)。
我的Linux裝在虛擬機里,虛擬機分配給Linux系統(tǒng)的設(shè)備僅僅是8G大小的虛擬硬盤分區(qū),所以根本沒有辦法掛載Windows系統(tǒng)所在的分區(qū)以及其他的硬盤分區(qū)。那么在虛擬機環(huán)境下,想要共享資源,mount命令基本上派不上用場了,只能從聯(lián)機的方式來考慮了。
提供最常用的兩種方案:
1. FTP訪問
2. Samba服務(wù)
不管是FTP還是Samba,首先都需要分析虛擬機環(huán)境下的Host-Guest網(wǎng)絡(luò)連接。基本上我們可以把Host機與Guest機之間當作局域網(wǎng)中的兩臺機器來實現(xiàn)互聯(lián)。那么現(xiàn)在需要重新考慮關(guān)于《虛擬機的網(wǎng)絡(luò)配置》一文中提到過的網(wǎng)絡(luò)連接方式。
當時我們選擇以NAT模式進行網(wǎng)絡(luò)連接,這是一種使用DHCP服務(wù)進行網(wǎng)絡(luò)連接的方式,也就是說,Guest機并沒有自己的固定IP地址,這個地址是在啟動 了系統(tǒng)之后,從Host機上取得的、一個暫時提供給Guest機使用的IP地址。在這種網(wǎng)絡(luò)連接方式下,設(shè)置Guest機中系統(tǒng)的IP獲取方式為自動獲 取,不管Host機聯(lián)網(wǎng)的方式如何,只要Host能上網(wǎng),Guest機也可以上網(wǎng)。
雖然選擇這種方式,外網(wǎng)連接是很方便,可是在Host-Guest之間的局域網(wǎng)連接真的讓人傷透了腦筋,虛擬網(wǎng)卡VMnet8的IP與Host機的IP不 在同一網(wǎng)段,折騰了一個晚上也沒有找到好的解決辦法,最后舍棄了NAT模式。將Linux虛擬機的網(wǎng)連方式改為了Bridge。
Bridge模式將虛擬主機的虛擬網(wǎng)卡橋接到一個Host主機的物理網(wǎng)卡上,可以理解為Guest機和Host主機處于對等的地位,在網(wǎng)絡(luò)關(guān)系上是平等的,對于我這種對路由的事情比較白癡的人來說,這是最易理解的一種局域網(wǎng)互聯(lián)方式。
我的使用網(wǎng)絡(luò)服務(wù)是小區(qū)LAN網(wǎng),IP自然是自動獲取的,不用花心思改動它,將Guest機的網(wǎng)絡(luò)也設(shè)置成為自動獲取IP:
應(yīng)用程序-->系統(tǒng)設(shè)置-->網(wǎng)絡(luò)-->編輯eth0設(shè)備
Host和Guest在同一網(wǎng)段,基本上就像局域網(wǎng)里面的兩臺機器。Host設(shè)置一下FTP, FTP算是實現(xiàn)對Host機資源的訪問了,可文件的管理似乎不那么方便。
另一種共享Windows資源的方法是很多Linux用戶都非常青睞的Samba。Samba 是一套讓UNIX系統(tǒng)能夠應(yīng)用Microshoft網(wǎng)絡(luò)通訊協(xié)議的軟件。它使執(zhí)行UNIX系統(tǒng)的計算機能與執(zhí)行Windows系統(tǒng)的計算機分享驅(qū)動器與打 印機。非常適用于Windows和Linux系統(tǒng)并存的網(wǎng)絡(luò)。Red Hat AS 4.0內(nèi)附Samba Server,但默認并不是在系統(tǒng)啟動時自動運行的。可通過service命令查看和控制Samba服務(wù):
查看Samba服務(wù)運行狀態(tài):# service smb status
啟動Samba服務(wù):# service smb start
停止Samba服務(wù):# service smb stop
也可設(shè)置系統(tǒng)重啟時,自動啟動Samba服務(wù):# chkconfig --level 345 smb on
首先我們在Windows系統(tǒng)中設(shè)置文件夾或驅(qū)動器Web共享,并對其設(shè)置別名,如:/study
然后在Linux中,以用戶身份登錄smb服務(wù):
常見的錯誤提示:
1.防火墻問題
使用Samba服務(wù)時,Host和Guest都應(yīng)關(guān)閉防火墻。Linux系統(tǒng)下關(guān)閉防火墻的方法:系統(tǒng)設(shè)置-->服務(wù)器設(shè)置-->服務(wù)-->iptable-->停止
2.登錄用戶名或密碼錯誤
驗證用戶名密碼即可。
成功登錄smb
可用LS命令查看當前目錄下的共享文件
用get命令可從服務(wù)器上下載某文件:
Smb:\> get file1 file2(從服務(wù)器上下載file1,以file2為名保存在本地——默認為root主目錄)
Exit命令可退出smb服務(wù)器
如果仍然覺得文件的管理不方便,可以使用smbmount 命令,掛載Windows的共享文件夾或驅(qū)動器:
# smbmount //192.168.0.162/study /mnt/mystudy –o username=admin
其中,192.168.0.162為Host機IP;study為共享文件夾別名;/mnt/mystudy為掛載點,可由#mkdir /mnt/mystudy創(chuàng)建;admin為Host機登錄用戶名。
打開掛載目錄。
這樣看起來習(xí)慣多了吧?跟Windows里面的文件管理界面幾乎相同了。
至此,虛擬機Linux共享宿主機Windows資源基本實現(xiàn),完成時候覺得很簡單,但是一路摸索過來的確遇到了不少問題
【編輯推薦】