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


首先,我們知道基於文件的幾種服務: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軟件,否則使用如下命令安裝:

  1. yum install samba 

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

  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用戶,使用如下命令:

  1. smbpasswd -a root 

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

重新啟動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系統上面。

二、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系統的防火牆未開啟。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM