我們知道,在Windows系統(tǒng)之間,可以通過(guò)共享目錄的方式,讓遠(yuǎn)程系統(tǒng)直接訪問(wèn)。其實(shí)這里是Windows提供一種遠(yuǎn)程文件系統(tǒng)機(jī)制,NAS協(xié)議的一種——CIFS協(xié)議。如果是Linux系統(tǒng)呢,同樣有另外一種NAS協(xié)議——NFS協(xié)議來(lái)實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)。那么這兩種NAS協(xié)議能否互通呢?答案是否定的。雖然二者不能互通,但是,在Linux系統(tǒng)上面已經(jīng)有了CIFS協(xié)議的服務(wù)端和客戶端的實(shí)現(xiàn),這樣,無(wú)論是Linux給Windows共享還是Windows給Linux共享都可以借助這些已有的實(shí)現(xiàn)來(lái)做到了。
相反的,Windows上面有沒(méi)有NFS的客戶端或者服務(wù)端呢?也有,但是不常用,這里就不詳細(xì)介紹了。
這里主要圍繞著Linux上面使用CIFS協(xié)議來(lái)闡述如何實(shí)現(xiàn)兩個(gè)系統(tǒng)之間的跨文件系統(tǒng),跨操作系統(tǒng)共享。按照上面的描述,有兩種方式來(lái)實(shí)現(xiàn)共享。Linux分別作為CIFS的服務(wù)端和客戶端。下面分別就這兩種方式來(lái)說(shuō)明操作步驟和簡(jiǎn)單的原理介紹:
一、Samba軟件實(shí)現(xiàn)共享Linux文件系統(tǒng)給Windows用戶
Samba軟件被譽(yù)為10大最有價(jià)值的開源軟件之第五位。其獲取方式非常容易,配置使用也非常簡(jiǎn)單。下面以fedora系統(tǒng)為例,先看一下本地是否已經(jīng)安裝好samba,如果/etc/init.d/smb 文件存在,則說(shuō)明已經(jīng)安裝好了samba軟件,否則使用如下命令安裝:
安裝完成后,修改配置文件,打開:/etc/samba/smb.conf,在文件末尾加上如下配置:
復(fù)制內(nèi)容到剪貼板
- [root]
-
- comment = root
-
- path = /
-
- creat mask = 64
-
- writeable = yes
-
- browseable = yes
-
- valid users = root
-
這個(gè)配置的意思是,創(chuàng)建一個(gè)名為root的共享,將根文件目錄“/”共享給用戶。允許登錄的用戶名是root。
然后給samba系統(tǒng)添加root用戶,使用如下命令:
按照提示設(shè)置root用戶的密碼。
重新啟動(dòng)samba服務(wù)。
檢查smb進(jìn)程是否已經(jīng)運(yùn)行:
復(fù)制內(nèi)容到剪貼板
- root 1787 0.0 0.4 33068 4784 ? Ss 21:51 0:00 smbd
-
- root 1788 0.0 0.2 33068 2580 ? S 21:51 0:00 \_ smbd
-
在需要訪問(wèn)該Linux系統(tǒng)的Windows客戶機(jī)上面,打開Windows的資源管理器,在地址欄輸入:\\192.168.1.110
會(huì)發(fā)現(xiàn),提示有一個(gè)共享root,雙擊訪問(wèn)時(shí),提示輸入用戶名和密碼,輸入此前配置的root用戶和密碼即可訪問(wèn)。這里就是Samba軟件實(shí)現(xiàn)了CIFS的服務(wù)端,Windows資源管理作為客戶端訪問(wèn)遠(yuǎn)程的共享文件系統(tǒng)。為了更為方便的使用該文件系統(tǒng),還可以將該共享映射成一個(gè)本地的盤符,讓W(xué)indows上面的各種工具像使用本地磁盤一樣使用該目錄。所有在Windows上面對(duì)該共享做的操作都會(huì)實(shí)時(shí)同步到Linux系統(tǒng)上面。
二、Linux訪問(wèn)Windows的共享
上面的借助于Samba的方式是大家常用的。還有一種,Windows系統(tǒng)天然就是一個(gè)CIFS的服務(wù)端和客戶端,既然Windows系統(tǒng)可以給Windows系統(tǒng)共享目錄,那么Linux系統(tǒng)能否訪問(wèn)這些共享呢?答案是肯定的,由于有強(qiáng)大的VFS支撐,Linux支持掛載和訪問(wèn)各種文件系統(tǒng)。mount工具支持掛在CIFS甚至NTFS的文件系統(tǒng)。如果是Windows本機(jī)上面的Linux虛擬機(jī),那么可以直接通過(guò)虛擬機(jī)管理軟件,如Vmware直接共享本地的磁盤分區(qū)給Linux系統(tǒng),Linux系統(tǒng)根據(jù)Windows的磁盤分區(qū)的文件系統(tǒng)類型掛載即可。這里不詳述該方案。
進(jìn)入本段的正題,首先我們需要共享一個(gè)Windows的目錄:
下面以Windows XP為例,Windows 7未做驗(yàn)證,應(yīng)該類似。在共享之前,首先需要確保Windows系統(tǒng)的server服務(wù)處于啟動(dòng)狀態(tài),如下圖:
選擇需要共享的目錄,右鍵,屬性,選擇“共享”頁(yè),如下圖:
配置共享
選擇在網(wǎng)絡(luò)上共享這個(gè)文件夾,并指定共享名。根據(jù)需要選擇是否允許遠(yuǎn)程用戶修改該文件夾。這樣這個(gè)文件夾就被共享給遠(yuǎn)程訪問(wèn)了。
在Linux系統(tǒng)下掛載該共享:
復(fù)制內(nèi)容到剪貼板
- [root@f2 ~]# mount -t cifs -o username="Test"
- Password for Test@
-
按照要求輸入指定用戶的密碼即可。
此時(shí),Windows的共享sourcecode目錄就已經(jīng)掛載到Linux系統(tǒng)上面了,Linux系統(tǒng)可以像訪問(wèn)本地目錄一樣訪問(wèn)該目錄了。
這種方法應(yīng)該是更好的訪問(wèn)方式,因?yàn)橐话愣?,我們操作的文件和工作空間都是在Windows上面的,只有少數(shù)時(shí)候,需要在Linux上面進(jìn)行編譯,調(diào)試。但是用起來(lái)稍顯麻煩。注意,此前曾遇到過(guò)Windows系統(tǒng)與虛擬出來(lái)的Linux系統(tǒng)之間無(wú)法傳輸數(shù)據(jù)的問(wèn)題,原因是Windows系統(tǒng)的防火墻未開啟。
通過(guò)以上兩種方法解決如何實(shí)現(xiàn)Windows與Linux文件系統(tǒng)互訪的問(wèn)題,希望能幫到大家,謝謝閱讀。