首先,我們知道基於檔案的幾種服務:ftp,sftp,這兩種服務都是檔案傳輸服務,偏重於互聯網傳輸,並不是實時互訪。通常,我們需要在遠端和本地 同時操作同一個目錄,如:在 Windows 下使用各種強大的 IDE 編輯程式碼,在 Linux 下編譯和執行該程式碼。如果在 Windows 下編寫好程式碼再拷貝到 Linux 下編譯,這樣修改時很費事,直接在 Linux 下修改,還要同步回 Windows,相當費事。當然有人會説,所有的工作都在 Linux 下搞 定,VI 、 Linux 命令列足夠強大,沒有需要使用 Windows 系統的理由,本文的重點不在討論命令列熟練程度與工作效率的問題。
怎樣像訪問本地檔案系統一樣訪問遠端的檔案呢?如果遠端的系統與本地系統是不同型別的,又該如何做呢。
我們知道,在 Windows 系統之間,可以通過共享目錄的方式,讓遠端系統直接訪問。其實這裏是 Windows 提供一種遠端檔案系統機制,NAS 協 議的一種——CIFS 協議。如果是 Linux 系統呢,同樣有另外一種 NAS 協議——NFS 協議來實現遠端訪問。那麼這兩種 NAS 協議能否互通呢?答案是否 定的。雖然二者不能互通,但是,在 Linux 系統上面已經有了 CIFS 協議的服務端和客户端的實現,這樣,無論是 Linux 給 Windows 共享還是 Windows 給 Linux 共享都可以藉助這些已有的實現來做到了。
相反的,Windows 上面有沒有 NFS 的客户端或者服務端呢?也有,但是不常用,這裏就不詳細介紹了。
這裏主要圍繞著 Linux 上面使用 CIFS 協議來闡述如何實現兩個系統之間的跨檔案系統,跨操作系統共享。按照上面的描述,有兩種方式來實現共享。 Linux 分別作為 CIFS 的服務端和客户端。下面分別就這兩種方式來説明操作步驟和簡單的原理介紹:

一、 Samba 站羣軟件實現共享 Linux 檔案系統給 Windows 使用者
Samba 站羣軟件被譽為 10 大最有價值的開源站羣軟件之第五位。其獲取方式非常容易,配置使用也非常簡單。下面以 fedora 系統為例,先看一下本地是否 已經安裝好 samba,如果/etc/init.d/smb 檔案存在,則説明已經安裝好了 samba 站羣軟件,否則使用如下命令安裝:

yum install samba

安裝完成後,修改配置檔案,開啓:/etc/samba/smb.conf,在檔案末尾加上如下配置:

[root]
  comment = root
  path = /
  creat mask = 64
  writeable = yes
  browseable = yes
  valid users = root

這個配置的意思是,建立一個名為 root 的共享,將根檔案目錄 “/” 共享給使用者。允許登入的使用者名稱是 root 。
然後給 samba 系統新增 root 使用者,使用如下命令:

smbpasswd -a root

按照提示設定 root 使用者的密碼。

重新啓動 samba 服務。

service smb restart

檢查 smb 程序是否已經執行:

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

在需要訪問該 Linux 系統的 Windows 客户機上面,開啓 Windows 的資源管理器,在位址列輸入:192.168.1.110
會發現,提示有一個共享 root,雙擊訪問時,提示輸入使用者名稱和密碼,輸入此前配置的 root 使用者和密碼即可訪問。這裏就是 Samba 站羣軟件實現了 CIFS 的服務端,Windows 資源管理作為客户端訪問遠端的共享檔案系統。為了更為方便的使用該檔案系統,還可以將該共享對映成一個本地的碟符,讓 Windows 上面的各種工具像使用本地磁碟一樣使用該目錄。所有在 Windows 上面對該共享做的操作都會實時同步到 Linux 系統上面。

二、 Linux 訪問 Windows 的共享
上面的藉助於 Samba 的方式是大家常用的。還有一種,Windows 系統天然就是一個 CIFS 的服務端和客户端,既然 Windows 系統可以給 Windows 系統共享目錄,那麼 Linux 系統能否訪問這些共享呢?答案是肯定的,由於有強大的 VFS 支撐,Linux 支援掛載和訪問各種檔案系統。 mount 工具支援掛在 CIFS 甚至 NTFS 的檔案系統。如果是 Windows 本機上面的 Linux 虛擬機器,那麼可以直接通過虛擬機器管理站羣軟件,如 Vmware 直接共享本地的磁碟分割槽給 Linux 系統,Linux 系統根據 Windows 的磁碟分割槽的檔案系統型別掛載即可。這裏不詳述該方案。
進入本段的正題,首先我們需要共享一個 Windows 的目錄:
下面以 Windows XP 為例,Windows 7 未做驗證,應該類似。在共享之前,首先需要確保 Windows 系統的 server 服務處於啓動狀態,如下圖:

選擇需要共享的目錄,右鍵,屬性,選擇 “共享” 頁,如下圖:

選擇在互聯網上共享這個資料夾,並指定共享名。根據需要選擇是否允許遠端使用者修改該資料夾。這樣這個資料夾就被共享給遠端訪問了。

在 Linux 系統下掛載該共享:

[root@f2 ~]# mount -t cifs -o username=“Test” //192.168.1.100/sourcecode /root/sourcecode
Password for Test@//192.168.1.100/sourcecode:

按照要求輸入指定使用者的密碼即可。
此時,Windows 的共享 sourcecode 目錄就已經掛載到 Linux 系統上面了,Linux 系統可以像訪問本地目錄一樣訪問該目錄了。
這種方法應該是更好的訪問方式,因為一般而言,我們操作的檔案和工作空間都是在 Windows 上面的,只有少數時候,需要在 Linux 上面進行編 譯,除錯。但是用起來稍顯麻煩。注意,此前曾遇到過 Windows 系統與虛擬出來的 Linux 系統之間無法傳輸資料的問題,原因是 Windows 系統的防 火牆未開啓。
原文連結:http://shentar.me/windows%E4%B8%8Elinux%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%BA%92%E8%AE%BF%E7%9A%84%E5%87%A0%E7%A7%8D%E6%96%B9%E6%B3%95/