Windows與Linux文件系統互訪的幾種方法

首先,咱們知道基於文件的幾種服務:ftp,sftp,這兩種服務都是文件傳輸服務,偏重於網絡傳輸,並非實時互訪。一般,咱們須要在遠程和本地同時操做同一個目錄,如:在Windows下使用各類強大的IDE編輯代碼,在Linux下編譯和運行該代碼。若是在Windows下編寫好代碼再拷貝到Linux下編譯,這樣修改時很費事,直接在Linux下修改,還要同步回Windows,至關費事。固然有人會說,全部的工做都在Linux下搞定,VI、Linux命令行足夠強大,沒有須要使用Windows系統的理由,本文的重點不在討論命令行熟練程度與工做效率的問題。網絡

怎樣像訪問本地文件系統同樣訪問遠程的文件呢?若是遠程的系統與本地系統是不一樣類型的,又該如何作呢。app

咱們知道,在Windows系統之間,能夠經過共享目錄的方式,讓遠程系統直接訪問。其實這裏是Windows提供一種遠程文件系統機制,NAS協議的一種——CIFS協議。若是是Linux系統呢,一樣有另一種NAS協議——NFS協議來實現遠程訪問。那麼這兩種NAS協議可否互通呢?答案是否認的。雖然兩者不能互通,可是,在Linux系統上面已經有了CIFS協議的服務端和客戶端的實現,這樣,不管是Linux給Windows共享仍是Windows給Linux共享均可以藉助這些已有的實現來作到了。工具

相反的,Windows上面有沒有NFS的客戶端或者服務端呢?也有,可是不經常使用,這裏就不詳細介紹了。spa

這裏主要圍繞着Linux上面使用CIFS協議來闡述如何實現兩個系統之間的跨文件系統,跨操做系統共享。按照上面的描述,有兩種方式來實現共享。Linux分別做爲CIFS的服務端和客戶端。下面分別就這兩種方式來講明操做步驟和簡單的原理介紹:操作系統

1、Samba軟件實現共享Linux文件系統給Windows用戶

Samba軟件被譽爲10大最有價值的開源軟件之第五位。其獲取方式很是容易,配置使用也很是簡單。下面以fedora系統爲例,先看一下本地是否已經安裝好samba,若是/etc/init.d/smb 文件存在,則說明已經安裝好了samba軟件,不然使用以下命令安裝:命令行

  1. yum install samba 

安裝完成後,修改配置文件,打開:/etc/samba/smb.conf,在文件末尾加上以下配置:3d

  1. [root]  
  2.   comment = root 
  3.   path = /   
  4.   creat mask = 64 
  5.   writeable = yes   
  6.   browseable = yes 
  7.   valid users = root 

這個配置的意思是,建立一個名爲root的共享,將根文件目錄「/」共享給用戶。容許登陸的用戶名是root。調試

而後給samba系統添加root用戶,使用以下命令:rest

  1. smbpasswd -a root 

按照提示設置root用戶的密碼。code

從新啓動samba服務。

  1. service smb restart 

檢查smb進程是否已經運行:

  1. root      1787  0.0  0.4  33068  4784 ?        Ss   21:51   0:00 smbd  

  2. 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系統上面。

2、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服務處於啓動狀態,以下圖:

server服務啓動

選擇須要共享的目錄,右鍵,屬性,選擇「共享」頁,以下圖:

配置共享

選擇在網絡上共享這個文件夾,並指定共享名。根據須要選擇是否容許遠程用戶修改該文件夾。這樣這個文件夾就被共享給遠程訪問了。

共享目錄

在Linux系統下掛載該共享:

 
  1. [root@f2 ~]# mount -t cifs -o username="Test" //192.168.1.100/sourcecode /root/sourcecode  
  2. Password for Test@//192.168.1.100/sourcecode: 

按照要求輸入指定用戶的密碼便可。

此時,Windows的共享sourcecode目錄就已經掛載到Linux系統上面了,Linux系統能夠像訪問本地目錄同樣訪問該目錄了。

這種方法應該是更好的訪問方式,由於通常而言,咱們操做的文件和工做空間都是在Windows上面的,只有少數時候,須要在Linux上面進行編譯,調試。可是用起來稍顯麻煩。注意,此前曾遇到過Windows系統與虛擬出來的Linux系統之間沒法傳輸數據的問題,緣由是Windows系統的防火牆未開啓。

相關文章
相關標籤/搜索