在網上搜索了大量相關信息,介紹兩個系統間信息共享的不少,但是提供虛擬機host-guest機不同系統之間資源共享解決方案的不多。在朋友的幫助下,經過多次嘗試和摸索,終於有了一些搜獲。現提供一套包括局域網配置在內的較為詳細的解決方案,供初學者參考。
環境介紹:
虛擬機:VMware Workstation 5.5
Host機系統:Windows 2000 Server
Guest機系統:Red Hat Enterprise Linux 4
其實作為兩個系統而言,要進行資源的共享,方法很多,最初我嘗試了使用mount命令掛載文件系統。從命令本身來看,想要掛載一個Windows下的文件系統或驅動盤似乎沒有什麼問題。
首先在Linux系統/mnt空目錄下,建立掛載點:#mkdir /mnt/mystudy
/mnt目錄是專門用來當作掛載點的目錄。mystudy是自定義的專用掛載點名稱。
然後我們看一下mount命令的使用方法:
命令格式: mount [-t vfstype] [-o options] device dir
主要參數:
① -t vfstype 指定文件系統的類型,通常不必指定。mount 會自動選擇正確的類型,Windows NT ntfs文件系統:ntfs
② -o options 主要用來描述設備或檔案的掛接方式。
③ device:要掛接(mount)的設備。Linux中,設備名通常存放在/dev中,設備名遵循一些規則,如:/dev/hda1中,hd指Hard Disk,a代表第一個硬盤設備,1代表第一個硬盤的第一主分區。
④ dir:設備在系統上的掛接點(mount point)。如,我們剛剛建立的掛載點:/mnt/mystudy
遵循此規則,希望掛載硬盤的第二個主分區
鍵入命令: #mount -t ntfs /dev/hda2 /mnt/mystudy
返回信息: Mount:fs type ntfs not supported by kernel
竟然無法找到ntfs格式的分區?那麼我的Windows系統跑到哪裡去了?查看一下查看一下分區情況:#fdisk –L
得到如下結果發現根本沒有找到Windows的分區。
我的Linux裝在虛擬機裡,虛擬機分配給Linux系統的設備僅僅是8G大小的虛擬硬盤分區,所以根本沒有辦法掛載Windows系統所在的分區以及其他的硬盤分區。那麼在虛擬機環境下,想要共享資源,mount命令基本上派不上用場了,只能從聯機的方式來考慮了。
提供最常用的兩種方案:
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資源基本實現,完成時候覺得很簡單,但是一路摸索過來的確遇到了不少問題。