[NFS] #2 在 Windows 上掛載 NFS

在 Windows 上掛載 NFS

  1. Windows 版本要求

    • 專業版或企業版:Windows 10 和 Windows 11 的專業版或企業版可以直接使用 NFS 客戶端功能。
    • 家用版:Windows 家用版不支持直接使用 NFS 客戶端。
  2. 安裝 NFS 客戶端(僅適用於專業版或企業版)

    • 打開“控制台”。
    • 點擊“程式集”。
    • 選擇“開啟或關閉 windows 功能”。
    • 勾選 “Service for NFS” 和 “Client for NFS”。
    • 點選”確定”。
  3. 掛載 NFS 檔案系統

    • 打開“命令提示符”或“PowerShell”。

    • 使用以下命令掛載 NFS 檔案系統:

      mount -o anon \\<NFS 伺服器 IP>\<共享名稱> <本地驅動器:>
      

      例如,假設 NFS 伺服器的 IP 是 192.168.1.100,NFS 共享名稱是 /shared,並且你想將它掛載到本地的 Z: 驅動器,命令如下:

      mount -o anon \\192.168.1.100\shared Z:
      

Windows 家用版的限制

Windows 家用版不支持內建的 NFS 客戶端,因此無法像專業版或企業版那樣直接掛載 NFS 檔案系統。

使用 WSL 作為替代

一個解決方案是使用 Windows Subsystem for Linux (WSL) 作為替代。WSL 允許你在 Windows 上運行 Linux 環境,從而可以使用 Linux 的 NFS 工具來掛載 NFS 檔案系統。

  1. 安裝 WSL

    • 打開“命令提示符”或“PowerShell”並輸入以下命令來安裝 WSL:

      wsl --install
      
    • 這個命令將安裝 WSL 和一個預設的 Linux 發行版(通常是 Ubuntu)。

  2. 安裝 NFS 客戶端

    • 打開 WSL 終端。

    • 安裝 NFS 客戶端工具:

      sudo apt update
      sudo apt install nfs-common
      
  3. 創建掛載點

    • 在你的 WSL 文件系統中創建一個目錄,作為掛載點。例如:

      sudo mkdir -p /mnt/nfs_share
      
  4. 掛載 NFS 檔案系統

    • 使用以下命令掛載 NFS 檔案系統:

      sudo mount -t nfs <NFS 伺服器 IP>:<共享名稱> <本地掛載點>
      

      例如:

      sudo mount -t nfs 192.168.1.100:/shared /mnt/nfs_share
      
    • 這樣,你就可以在 /mnt/shared 路徑下訪問 NFS 共享檔案。

掛載失敗解決方法

情況 1: 不知道NFS分享的資料夾是哪一個

方法 1: 使用 showmount 命令

  1. 使用 showmount 命令查詢 NFS 伺服器共享的目錄

    showmount -e <NFS 伺服器 IP>
    

    這將顯示 NFS 伺服器上共享的目錄列表。例如:

    Export list for 192.168.1.100:
    /export/nfs_share  *
    /another/share     192.168.1.0/24
    

方法 2: 檢查伺服器配置(如果有權限)

  1. 使用 SSH 連線到 NFS 伺服器

    ssh username@192.168.1.100
    
  2. 查看 /etc/exports 文件

    cat /etc/exports
    

    這將顯示 NFS 伺服器上配置的所有 NFS 共享。例如:

    /export/nfs_share  *(rw,sync,no_subtree_check)
    /another/share     192.168.1.0/24(rw,sync,no_subtree_check)
    

掛載共享目錄

sudo mkdir -p /mnt/nfs_share
sudo mount -t nfs 192.168.1.100:/export/nfs_share /mnt/nfs_share

情況 2: access denied by server while mounting

如果你有 SSH 存取權限,可以直接登入 NFS 伺服器並查看或修改其配置。以下是詳細步驟:

1. 使用 SSH 登入 NFS 伺服器

使用提供的使用者名稱和密碼透過 SSH 登入 NFS 伺服器。

ssh admin@192.168.1.100

2. 查看 NFS 配置

登入後,查看 NFS 伺服器的配置,特別是 /etc/exports 文件,以確保你的客戶端 IP 位址在允許範圍內。

cat /etc/exports

3. 新增或修改 NFS 共享配置

如果用戶端 IP 位址不在允許範圍內,可以編輯 /etc/exports 檔案以新增或修改共用設定。

編輯 /etc/exports 檔案:

sudo nano /etc/exports

新增或修改共用配置,確保你的客戶端 IP 位址在允許範圍內。例如,新增如下行:

/fsm 192.168.XXX.X(rw,sync,no_root_squash)

儲存並退出編輯器(在 nano 中按 Ctrl+O 儲存,Ctrl+X 退出)。

4. 重新導出 NFS 共享

使變更生效,重新匯出 NFS 共用:

sudo exportfs -rav

5. 確保必要的服務正在運作

確保 NFS 和 rpcbind 服務正在運作:

sudo systemctl start nfs-kernel-server
sudo systemctl enable nfs-kernel-server
sudo systemctl start rpcbind
sudo systemctl enable rpcbind

接著同之前一樣嘗試掛載。

6. 若依然無法掛載可採取的方法

編輯 /etc/exports 檔案:

sudo nano /etc/exports

將剛剛新增的配置改為:

/fsm 192.168.XXX.X(rw,sync,no_root_squash,insecure)

儲存並退出編輯器(在 nano 中按 Ctrl+O 儲存,Ctrl+X 退出)。

7. 終極方法

編輯 /etc/exports 檔案:

sudo nano /etc/exports

將剛剛新增的配置改為:

/fsm *(rw,sync,no_root_squash,insecure)

儲存並退出編輯器(在 nano 中按 Ctrl+O 儲存,Ctrl+X 退出)。

注意:這樣的配置意味著任何人只要知道你的 NFS 伺服器的 IP 地址和共享目錄路徑,都可以以 root 權限連接並進行讀寫操作,這可能帶來安全風險。